Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Die nicht zu kurze Kurzeinführung in MATLAB

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Kommando für Termumformung in Symbolic Toolbox

 

helmat
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 18.12.11
Wohnort: ---
Version: R2020a
     Beitrag Verfasst am: 21.08.2020, 21:19     Titel: Kommando für Termumformung in Symbolic Toolbox
  Antworten mit Zitat      
In Wolfram Alpha bekommt man für eingegebene Terme (z. B. sin(x)*sin(y)) ohne besondere Aufforderung "alternate forms". Gibt es in der Symbolic Toolbox Kommandos, die Ähnliches leisten?
_________________

Herzliche Grüße
helmat

p.s.
Hard work beats talent if talent doesn't work hard.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 21.991
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.08.2020, 22:25     Titel:
  Antworten mit Zitat      
Hallo,

wie sehen diese "alternate forms" denn aus?
Für mich liefert die Anforderung, dass etwas umgeschrieben werden soll, keinerlei Hinweis darauf, wie es umgeschrieben werden soll.
Mein erster Gedanke ist immer vereinfachen ( simplify ), aber was soll in dem Beispiel noch vereinfacht werden?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
helmat
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 18.12.11
Wohnort: ---
Version: R2020a
     Beitrag Verfasst am: 21.08.2020, 23:39     Titel:
  Antworten mit Zitat      
Z. B, erscheint nach Eingabe von
sin(x+a)*sin(x+b)
das Folgende (und Weiteres):
1/2*(cos(a-b) - cos(a+b+2*x))

Einfach mal auf https://www.wolframalpha.com ausprobieren!

simplify bringt hier (verständlicherweise) nichts.
_________________

Herzliche Grüße
helmat

p.s.
Hard work beats talent if talent doesn't work hard.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.991
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.08.2020, 08:31     Titel:
  Antworten mit Zitat      
Hallo,

ich sehe jetzt dadurch, dass Wolfram Alpha für diesen Ausdruck drei verschiedene alternate forms ausgibt. Mir ist aber weder klar, welche der drei nun das Ergebnis sein soll noch nach welcher Vorgabe dieses Ergebnis ermittelt werden soll.

Mit rewrite kann man z.B. erzwingen, dass exp statt sin verwendet wird.
Mit expand kann man das so umformen, dass keine trig. Funktionen von Summen oder Differenzen vorkommen.
Das sind andere Darstellungsformen als die auf Wolfram Alpha, aber mir ist jetzt nicht klar, warum das eine besser oder schlechter sein sollte als das andere.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
helmat
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 18.12.11
Wohnort: ---
Version: R2020a
     Beitrag Verfasst am: 22.08.2020, 11:58     Titel:
  Antworten mit Zitat      
Danke für die Antwort!

Es geht mir nicht um besser oder schlechter. Wolfram liefert ein "Überraschngsei" und formt sin(x)^2 (unt. And.) in 1/2 *(1 - cos(2*x)) um. Das ist genau das, was ich suchte. Mit Matlabs expand (und danach simplify) kriege ich das nicht hin. Hast du dafür einen Weg? Aber prinzipiell ist expand nahe an dem dran, was mir fehlt.
_________________

Herzliche Grüße
helmat

p.s.
Hard work beats talent if talent doesn't work hard.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.991
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.08.2020, 12:57     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Das ist genau das, was ich suchte.

Und wie entscheidest du das? Warum das und nicht z.B. 1-cos(x)^2 ?

Ich verstehe immer noch nicht, wie aus der Eingabe der gleichwertige Ausdruck erzeugt werden soll. Ob es dann in MATLAB eine Funktion gibt, die genau das liefert, ist die andere Frage. Der erste Schritt ist für mich aber zu verstehen, was du über dieses konkrete Beispiel hinausgehend eigentlich willst.
Jetzt könntest du natürlich sagen "dasselbe wie in Wolfram Alpha", was mir aber wenig hilft, weil ich nicht weiß, was Wolfram Alpha macht, um diese alternate forms zu erzeugen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
helmat
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 18.12.11
Wohnort: ---
Version: R2020a
     Beitrag Verfasst am: 22.08.2020, 14:15     Titel:
  Antworten mit Zitat      
Hallo Harald,
der gleichwertige Ausdruck, den Matlab liefern soll, soll im Argument der Sinus- oder Kosinusfunktion nicht x sondern 2*x enthalten. Das liegt für die Zielform hier m. E. nahe.

Kennst du eine Matlab-Lösung für diese jetzt eingeengte Frage?
_________________

Herzliche Grüße
helmat

p.s.
Hard work beats talent if talent doesn't work hard.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.991
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.08.2020, 14:40     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Das liegt für die Zielform hier m. E. nahe.

Für mich nicht. Die ursprüngliche Form ist für mich die nahe liegendere. Das sieht auch MATLAB so, indem es dein Ergebnis in die ursprüngliche Form vereinfacht, wenn man ausreichend viele Schritte zulässt:
Code:
simplify(1/2*(1-cos(2*x)), 'Steps', 10)


Eine Funktion, die so gesehen also verkompliziert, ist mir nicht bekannt.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
helmat
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 18.12.11
Wohnort: ---
Version: R2020a
     Beitrag Verfasst am: 22.08.2020, 15:12     Titel:
  Antworten mit Zitat      
Hallo Harald,
ss geht mir nicht ums Vereinfachen, sondern um eine bestimmte Zielform. Wer mit Produkten von sin- und cos-Schwingungen verschiedener oder gleicher Frequenz umgeht, erwartet harmonische Terme mit Summen- und Differenzfrequenz. Das soll ein m-file leisten.

Eine (etwas umwegiger) Code für sin(x)^2 ist:

Code:

clc
syms  x  a
z=expand(sin(x)*sin(x+a));
z=subs(simplify(z),a,0)
 

_________________

Herzliche Grüße
helmat

p.s.
Hard work beats talent if talent doesn't work hard.
Private Nachricht senden Benutzer-Profile anzeigen
 
helmat
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 18.12.11
Wohnort: ---
Version: R2020a
     Beitrag Verfasst am: 23.08.2020, 19:23     Titel:
  Antworten mit Zitat      
Frage als beantwortet eingestuft. Danke an Harald für expand!
_________________

Herzliche Grüße
helmat

p.s.
Hard work beats talent if talent doesn't work hard.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2020 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.