早教吧 育儿知识 作业答案 考试题库 百科 知识分享

利用matlab求方程时如果限定未知数范围,比如x*sin(x)-1/2=0,求解方程在-10到10上的解?>> x=solve('sin(x)*cos(x)-x*x=0')x =matrix([[0]])这个方程只有两个解,为什么答案是这样?

题目详情
利用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