求解非线性方程的二分法的matlab程序,1-matlab-二分法求解非线性方程的近似解.doc...

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

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

你可能感兴趣的:(求解非线性方程的二分法的matlab程序,1-matlab-二分法求解非线性方程的近似解.doc...)