求函数零点matlab代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、%用牛顿法求f(x)=x-sin x 的零点,e=10^(-6)
disp('牛顿法')
i=1;
n0=180;
p0=pi/3;
tol=10^(-6);
for i=1:n0
p=p0-(p0-sin(p0))/(1-cos(p0));
if abs(p-p0)<=10^(-6)
%disp('|p-p0|=')
%disp(abs(p-p0))
disp('用牛顿法求得方程的根为')
disp(p);
disp('迭代次数为:')
disp(i)
break;
end
p0=p;
end
if i==n0
disp(n0)
disp('次计算后无法求出方程的解')
end
2、%用求重根的方法求f(x)的零点
disp('求重根方法一');
p0=pi/3;
for i=1:n0 p=p0-((p0-sin(p0)).*(1-cos(p0)))./((1-cos(p0)).^2-(p0-sin(p0)).*s
in(p0));
if(abs(p-p0) disp('用求重根的方法一求得方程的根p=') disp(p) disp('迭代次数为:') disp(i) break; else p0=p; end end if i==n0&&~(abs(p-p0) disp(n0) disp('次迭代后没有用求重根的方法求出方程的根') end 3、%用求重根的方法求f(x)的零点 disp('求重根方法二'); p0=pi/3; for i=1:n0 p=p0-1*(p0-sin(p0))/(1-cos(p0)); if(abs(p-p0) disp('用求重根的方法二求得方程的根p=') disp(p) disp('迭代次数为:') disp(i) break; end p0=p; end if i==n0&&~(abs(p-p0) disp(n0) disp('次迭代后没有求出方程的根') end