求解所有解的三角方程

时间:2017-07-11 19:38:14

标签: matlab

如何在不丢失matlab中的所有解法的情况下解决三角方程?例如:

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

将返回0,但我想知道所有解决方案,而不仅仅是第一个解决方案。

1 个答案:

答案 0 :(得分: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)))