二分法和割线法求非线性方程的解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
041cos(sin )0[23]101
2x d πθθπ-=⎰用二分法和割线法求非线性方程在,中的解,使误差不超过, 可按如下方法进行:()用区间法确定一个包含解的小区间;()用割线法求该方程在此区间中的根。
主程序为:
%计算方法上机第八题
clc;clear;
syms x a f
f=cos(x*sin(a)); %定义积分函数
t1=0;t2=pi;l1=2;l2=3;e1=10^-5;e2=10^-4;e3=10^-3;
f1=subs(f,x,l1);f2=subs(f,x,l2);
s1=romberg(t1,t2,f1,e1); %调用Romberg 积分函数
s2=romberg(t1,t2,f2,e1);
if s1*s2>0
disp('There is no root in the range of [2,3].');
else
while (l2-l1)>e3 %二分法确定包含解的小区间 l3=(l1+l2)/2;
f3=subs(f,x,l3);
s3=romberg(t1,t2,f3,e1);
if s1*s3<0
l2=l3;s2=s3;
else
l1=l3;s1=s3;
end
end
disp(['The root is in the range of [',num2str(l1),',',num2str(l2),'].']); while (l2-l1)>e2 %割线法确定具体的解
l3=l2;
l2=l2-(l2-l1)*s2/(s2-s1);
f2=subs(f,x,l2);
s2=romberg(t1,t2,f2,e1);
l1=l3;s1=s2;
end
disp(['The approximate solution is :',num2str(l2)]); %输出解 end