题目
1.修改程序2.5和程序2.6,使得程序在下列情况下能够适当地显示错误信息:\
(a)在式(4)或(27)中分别发生被零除。\
(b)超过迭代次数max1
代码
function Proj_2_4()
end
function [p0,err,k,y]=newton(f,df,p0,delta,epsilon,max1)
for k=1:max1
if feval(df,p0)==0
'被零除错误'
break
else
p1=p0-feval(f,p0)/feval(df,p0);
err=abs(p1-p0);
relerr=2*err/(abs(p1)+delta);
p0=p1;
y=feval(f,p0);
end
if (err<delta)|(relerr<delta)|(abs(y)<epsilon),break
else if k==max1
'达到最大迭代次数'
end
end
end
end
function [p1,err,k,y]=secant(f,p0,p1,delta,epsilon,max1)
for k=1:max1
if (feval(f,p1)-feval(f,p0))==0
'出现被零除错误'
break
end
p2=p1-feval(f,p1)*(p1-p0)/feval(f,p1)-feval(f,p0));
err=abs(p2-p1);
relerr=2*err/(abs(p2)+delta);
p0=p1;
p1=p2;
y=feval(f,p1);
if (err<delta)|(relerr<delta)|(abs(y)<epsilon),break
else if k==max1
'达到最大迭代次数'
end
end
end
end