1 / 5
文档名称:

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

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

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

分享

预览

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

上传人:guoxiachuanyue012 2022/9/9 文件大小:32 KB

下载得到文件列表

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

文档介绍

文档介绍:用区间二分法求方程的根
前言
了解区间二分法求解方程基本方法。
学****掌握区间二分法求解方程根的过程。
学****掌握MATLAB软件有关的命令。
二、参数说明
functionroot=HalfInterval(f,a,b,eps)方用区间二分法求方程的根
前言
了解区间二分法求解方程基本方法。
学****掌握区间二分法求解方程根的过程。
学****掌握MATLAB软件有关的命令。
二、参数说明
functionroot=HalfInterval(f,a,b,eps)方程表达式:f区间左端点:a区间右端点:b根的精度:eps
求得的根:root
三、算法设计和运行结果
算法设计
计算函数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,转到①。
运行结果
r二HalfInterval('x“3-x-l',l,)
r=

四、源程序及流程图
源程序:
functionroot=HalfInterval(f,a,b,eps)
%方程表达式:f
%区间左端点:a
%区间右端点:b
%根的精度:eps
%求得的根:root
if(nargin==3)
eps=-4;
end
%两端点的函数值
f1=subs(sym(f),findsym(sym(f)),a);
f2=subs(sym(f),findsym(sym(f)),b);
if(f1==0)
root=a;
end
if(f2==0)
root=b;
end
if(f1*f2>0)
disp('两端点函数值乘积大于0!');return;
else
root=FindRoots(f,a,b,eps);
end
functionr=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);
else
if(f_1*mf==0)
r=(a+b)/2;
else
if(abs(b-a)<=eps)r=(b+3*a)/4;
else
s=(a+b)/2;
r=FindRoots(f,a,s,eps);