牛顿法与二分法的比较—matlab实现

本文探讨了牛顿迭代法和二分法在Matlab中的实现,通过示例展示了两种方法的收敛特性。使用Matlab编写了函数,用于计算迭代过程,并绘制了迭代结果的图形,直观地对比了两种方法的效率。
摘要由CSDN通过智能技术生成

刚学完牛顿迭代法,为了验证收敛的速率,用Matlab做了比较

首先是牛顿迭代法

%比较牛顿迭代法、
function [x,i]=newtonmethod(x0,f,ep,Nmax)%x0—初值,f—测试函数,ep—精度,Nmax—迭代的最大次数
i=1;
x(1)=x0;
while(i<=Nmax)
    [g1,g2]=f(x(i));
    if abs(g2)<=ep
        %error('error');
        disp('derivative is too smal')
        return
    end
    x(i+1)=x(i)-g1/g2;
    b=x(i+1)-x(i);
    if(abs(b)<ep)
        return;
    end
    i=i+1;
end
x

i

二分法

%二分法
function [x,k]=bisection(a,b,f,ep)%[a,b]区间,f—函数句柄,ep—最大二分次数
k=1;
eep=b-a;%eep区间长度
while(abs(eep)>ep)
    x(k)=a+eep./2;
    if(f(x(k)).*f(a)<0)
        b=x(k);
    else
        a=x(k);
    end
    eep=b-a;
    k=k+1;

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值