2017-07-11 68 views
1

如何求解三角方程而不丟失matlab中的所有解?例如:求解所有解的三角方程

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

將返回0但我想知道所有的解決方案,不僅是第一個。

+2

你知道有到無限的解決方案,對不對? ;) – gnovice

+0

對於我發佈的特定方程,是的。但是對於更復雜的方程,事情會變得更加奇怪和不可預測,而且只有一種解決方案是很危險的。至少我想知道有很多解決方案。沒有密謀。在大多數情況下,只需要-2pi和2pi之間的解決方案。 – RobPazzuzu7

回答

3

您可以在公式中添加一些條件。

例如開始通過聲明一個符號變量THETA:

syms theta 

而現在,你需要添加儘可能多的條件:

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

您還可以設置假設上象徵性的變量,它更在我看來很清楚。

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

在這兩種情況下,輸出將是:

out = 

    0 
    pi 
    -pi 
-2*pi 
    2*pi 

如果需要,您可以訂購的結果:

sym(sort(double(out)))