二分法求解非线性方程的近似解:M-文件funn1+fun
程序:
function [x0 fval]=funn1(fun,a,b,D)
if nargin<3
error('a and b should redefinated');
else if nargin==3
D=1e-6;
end
end
fa=feval(fun,a);
fb=feval(fun,b);
if fa*fb>0
error('this equation has no answer');
1 / 4
else if fa==0
m=a;
fm=fa;
else if fb==0
m=b;
fm=fb;
else
while abs(b-a)>D
m=(a+b)/2;
fm=feval(fun,m); if fa*fm>0
a=m; fa=fm; else if fb*fm>0
2 / 4
b=m; fb=fm;
else if fm==0
break;
end
end
end
end
end
end
end
x0=m;%用x0来表示非线性方程的最终近似解,如果没有准确解,则取最终区间的中点作为近似解。
fval=fm;%fval来表示近似解处的函数值。
if nargout==2
3 / 4
fval=fm;
end
M-文件定义函数fun:
function f=fun(x)
f=x^3*cos(x)+2*x^2-2*sin(x);结果
x0 =
2.3978
fval =
-4.1724e-006
4 / 4
因篇幅问题不能全部显示,请点此查看更多更全内容