您的当前位置:首页正文

——matlab——二分法求解非线性方程的近似解

2020-02-02 来源:好走旅游网


二分法求解非线性方程的近似解: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

因篇幅问题不能全部显示,请点此查看更多更全内容