利用matlab求方程时如果限定未知数范围,比如x*sin(x)-1/2=0,求解方程在-10到10上的解?

>> x=solve('sin(x)*cos(x)-x*x=0')

x =

matrix([[0]])
这个方程只有两个解,为什么答案是这样?

f=@(x)x.*sin(x)-1/2;
x=fsolve(f,[-10:1:10])
x =

Columns 1 through 6

-9.3714 -9.3714 -6.3619 -6.3619 -2.9726 -2.9726

Columns 7 through 12

-0.7408 0.7408 2.9726 2.9726 2.9726 6.3619

Columns 13 through 15

6.3619 9.3714 9.3714

剔除重复的值 有八个解
-9.3714 -6.3619 -2.9726 -0.7408 0.7408 2.9726 6.3619 9.3714
温馨提示:答案为网友推荐,仅供参考
相似回答