1 / 4
文档名称:

用区间二分法求方程的根.doc

格式:doc   大小:30KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用区间二分法求方程的根.doc

上传人:花开一叶 2019/3/5 文件大小:30 KB

下载得到文件列表

用区间二分法求方程的根.doc

文档介绍

文档介绍:用区间二分法求方程的根一、。。。二、参数说明functionroot=HalfInterval(f,a,b,eps)方程表达式:f区间左端点:a区间右端点:b根的精度:eps求得的根:①计算函数f(x)在区间[a,b]中点的函数值f((a+b)/2),并做下面的判断:如果f(a)f((a+b)/2)<0,转到②;如果f(a)f((a+b)/2)>0,令a=(a+b)/2,转到①;如果f(a)f((a+b)/2)=0,则x=(a+b)/2为一个根。②如果|a-(a+b)/2|<p(预先给定的精度),则x=(b+3a)/4为一个根,否则令b=(a+b)/2,转到①。=HalfInterval('x^3-x-1',1,)r=、源程序及流程图源程序:functionroot=HalfInterval(f,a,b,eps)%方程表达式:f%区间左端点:a%区间右端点:b%根的精度:eps%求得的根:rootif(nargin==3)eps=-4;endf1=subs(sym(f),findsym(sym(f)),a);%两端点的函数值f2=subs(sym(f),findsym(sym(f)),b);if(f1==0)root=a;endif(f2==0)root=b;endif(f1*f2>0)disp('两端点函数值乘积大于0!');return;elseroot=FindRoots(f,a,b,eps);%调用求解子程序endfunctionr=FindRoots(f,a,b,eps)f_1=subs(sym(f),findsym(sym(f)),a);f_2=subs(sym(f),findsym(sym(f)),b);mf=subs(sym(f),findsym(sym(f)),(a+b)/2);%中点函数值if(f_1*mf>0)t=(a+b)/2;r=FindRoots(f,t,b,eps);%右递归elseif(f_1*mf==0)r=(a+b)/2;elseif(abs(b-a)<=eps)r=(b+3*a)/4;%输出根elses=(a+b)/2;r=FindRoots(f,a,s,