1——matlab——二分法求解非线性方程的近似解_共3页
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二分法求解非线性方程的近似解: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');
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
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
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