习题2.4.8 - 1

题目

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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值