各位大神,给露一手吧,题目、程序如下,修改一下程序,达到异曲同工的效果。
)8C02]TA%_9]X2_HLK]31BU.png (21.68 KB, 下载次数: 3)
2016-1-10 15:24 上传
x=-100:100;
y=6*(x.^5)-45*(x.^2)+20; %非线性方程组的表达式
g=[];
for i=-100:1:100 %确定根所在的区间
k=i+1;
if (y(x==i).*y(x==k)
g=[g i];
end
end
syms x;
f=6*x^5-45*x^2+20;
n=length(g); %确定根的个数
for j=1:n
x0=g(j); %求根区间左端点
x1=g(j)+1; %求根区间右端点
while (x1-x0)>=10^(-4)
if subs(f,x,x0)*subs(f,x,(x0+x1)/2)>eps
x0=(x0+x1)/2;
else
x1=(x0+x1)/2;
end
end
root=x0 %输出方程的根
end