用matlab写牛顿迭代法,牛顿迭代法的MATLAB实现

20 牛顿迭代法的MATLAB实现 云 磊 (襄樊学院,湖北 襄阳 441053) 摘要:牛顿迭代法是方程求根中的一种较快捷的迭代方法,但遇到较复杂的方程时计算量较大。文章采用了MATLAB编程来实现牛顿迭代法,并给出了具体的计算例子。关键词:牛顿迭代法;MATLAB;方程求根 中图分类号:O242.23 文献标识码:A 文章编号:1673-1131(2011)06-0020-2 Abstract: Newton's method is a good way to fi nd a root for an equation,however, when it comes to a complex equation,the calculation is a hardwork. In this paper, by using matlab, Newton's method is easily realized,and it also gives some demonstration. Keywords:Newton's method ; MATLAB ;root a.选定初始值。在MATLAB中输入如下程序:x=-1:0.01:1; y=x.^2+2*x.*exp(x)+exp(2*x); plot(x,y),grid on 得到下图 由图知,该方程的根在-1~0之间,可设迭代初始值为0。b.求出迭代函数 用MATLAB求出f'(x): syms x diff(x^2+2*x*exp(x)+exp(2*x),x,1) ans = 2*x+2*exp(x)+2*x*exp(x)+2*exp(2*x) 故迭代函数为y=x-(x.^2+2*x.*exp(x)+exp(2*x))/(2*x+2* exp(x)+2*x.*exp(x)+2*exp(2*x)) c.用MATLAB实施迭代,程序为: clear; x=0.0; for i=1:20 x=x-(x.^2+2*x.*exp(x)+exp(2*x))/(2*x+2*exp(x)+2*x.* exp(x)+2*exp(2*x)) end 可算得迭代数列的前20项为-0.2500,-0.3986,-0.4802, -0.5230,-0.5449,-0.5560,-0.5615,-0.5643,-0.5657,-0.5664,- 0.5668,-0.5670,-0.5671,-0.5671,-0.5671,说明迭代是收敛的,且第五次迭代时误差就不超过10-3。 牛顿迭代法是方程求根中的一种重要方法,适用范围广泛,步骤简单。但如同所有的迭代法一样,它需要大量计算。而MATLAB是一种强大的计算工具,利用MATLAB来实施牛顿法的计算可以大大节省时间。 1 牛顿迭代法原理及收敛性 (1)设已知方程f(x)=0,要求其根,现考虑用迭代法。将其化为等价方程x=g(x),令g(x)=x+h(x)f(x),h(x)≠0为待定函数。x=g(x)和f(x)=0应有共同的根,设此根为s,利用条件g'(x)=0来确定h(x),有g'(x)=1+h'(x)f(x)+h(x)f'(x)=1+h(x) f'(x)=0,由此知h(x)应该满足 ,显然取 就可以满足此条件且有h(s)≠0。于是g(x)确定为 ,它满足g'(s)=0。 由此得到迭代格式xn+1= n=0,1,2...这就是著名的牛顿迭代公式。 (2)计算可得 ,设 x*是 f ( x )=0的单根,有 f(x*)=0,f'(x*)≠0,则 ,故在x*附近, 有 。根据不 。 2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值