2017-07-11 9 views
1

Wie kann ich trigonometrische Gleichungen lösen, ohne alle Lösungen in Matlab zu verlieren? Zum Beispiel:Lösen von trigonometrischen Gleichungen unter Verwendung aller Lösungen

solve(sin(theta) == 0, theta) 

kehrt 0 aber ich will alle Lösungen kennen, nicht nur die erste.

+2

Sie wissen, dass es unendlich viele Lösungen zu, dass, nicht wahr? ;) – gnovice

+0

Für die einzelnen Gleichungen habe ich ja gepostet. Aber für komplexere Gleichungen werden Dinge seltsamer und unberechenbarer und es ist gefährlich, nur eine Lösung zu sehen. Zumindest möchte ich wissen, dass es viele Lösungen gibt. Ohne zu plotten. In den meisten Fällen werden nur Lösungen zwischen -2pi und 2pi benötigt. – RobPazzuzu7

Antwort

3

Sie können Ihrer Gleichung einige Bedingungen hinzufügen.

Zum Beispiel Anfang durch eine symbolische Variable Theta erklärt:

syms theta 

Und jetzt so viele Bedingungen hinzufügen, wie Sie benötigen:

solve(sin(theta) == 0,theta>=-2*pi,theta<=2*pi, theta) 

Sie auch Annahme auf symbolische Variable kann, ist es mehr klar meiner Meinung nach.

assume(-2*pi <= theta <= 2*pi) 
out = solve(sin(theta) == 0, theta) 

In beiden Fällen die Ausgang wird:

out = 

    0 
    pi 
    -pi 
-2*pi 
    2*pi 

Bei Bedarf können Sie das Ergebnis bestellen mit:

sym(sort(double(out))) 
Verwandte Themen