牛顿迭代法及其应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

重庆理工大学毕业论文(Newton Raphson算法及其应用)
编号
毕业设计(论文)
题目 Newton Raphson 算法及其应用
二级学院数学与统计学院
专业信息与计算科学
班级 108010101
学生姓名侯杰学号10801010106
指导教师职称
时间
目录
摘要 (3)
Abstract (3)
一、绪论 (4)
1.1 选题的背景和意义 (4)
1.2 牛顿迭代法的优点及缺点 (4)
二、Newton Raphson 算法的基本原理 (5)
2.1 Newton Raphsn算法 (5)
2.2 一种修正的Newton Raphsn算法 (7)
2.3 另外一种Newton Raphsn算法的修正 (11)
三、Newton Raphson 算法在计算方程中的应用 (18)
四、利用牛顿迭代法计算附息国债的实时收益率 (21)
4.1附息国债实时收益率的理论计算公式 (22)
4.2附息国债实时收益率的实际计算方法 (22)
4.3利用牛顿迭代法计算 (23)
五、结论 (26)
致谢 (27)
参考文献 (28)
摘要
牛顿在17世纪提出的一种近似求解方程的方法,即牛顿拉夫森迭代法.迭代法是一种不断的用变量的旧值递推新值的过程.跟迭代法相对应的是直接法或被称为一次解法,即一次性解决的问题.迭代法又分为精确迭代以及近似迭代.“牛顿迭代法”就属于近似迭代法,本文主要讨论的就是牛顿迭代法,方法本身的发现到演变到修正的过程,避免二阶导数计算的Newton迭代法的一个改进,以及用牛顿迭代法解方程,利用牛顿迭代法计算国债的实时收益率。

关键词:Newton Raphson迭代算法;近似解;收益率;
Abstract
In the 17th century,Newton raised by an approximate method of solving equations,that is Newton Iteration,a process of recursion new value constantly with the old value of variable. Correspond with the iterative method is a direct method or as a solution,that is a one-time problem solving. Iteration is divided into exact iterative and approximate iterative. "Newton Iterative Method" are approximate iterative method. This article mainly focuses on the Newton Iteration. The main contents of this article include the discovery,evolution and amendment process of this methods; an improve of avoiding calculating Newton Iteration with second-order derivative; Newton Raphson iterative method of solving equations and Calculating the real-time yield of government bonds.
Keywords: Newton Iterative Algorithm; approximate solution; Yield;
一、 绪论
1.1 选题的背景和意义
牛顿拉夫森迭代法是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。

多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。

方法使用函数)(x f 的泰勒级数的前面几项来寻找方程0)(=x f 的根。

牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程0)(=x f 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。

利用牛顿迭代法来解决问题需要做好的工作:
(1)确定迭代变量。

在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。

(2)建立迭代关系式。

所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。

迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。

(3)对迭代过程进行控制。

在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。

不能让迭代过程无休止地重复执行下去。

迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。

对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件。

1.2 牛顿迭代法的优点及缺点
迭代法是求方程近似根的一个重要方法,也是计算方法中的一种基本方法,它的算法简单,是用于求方程或方程组近似根的一种常用的算法设计方法。

牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程0)(=x f 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。

牛顿法是方程求根的一个有力方法,常常能快速求出其他方法求不出或者难以求出的解。

假定有一个函数)(x f y =,方程0)(=x f 在r x =处有一个根,对于此
根,先估计一个初始值 0x (可以是猜测的)。

得到一个更好的估计值1x 。

为此0)(x x f =处作该曲线切线,并将其延长与x 轴相交。

切线与x 轴的交点通常很接近r ,我们用它作为下一个估计值1x ,求出1x 后,用1x 代替0x 。

重复上述过程,在1x x =处作曲线的另一条切线,并将其延长至与x 轴相交,用切线的x 轴截距作为下一个近似值2x ……这样继续下去,所得出的这个x 轴截距的序列通常迅速接近根r 。

缺点:选定的初值要接近方程的解,否则有可能的不到收敛的结果。

再者,牛顿迭代法计算量比较大。

因每次迭代除计算函数值外还要计算微商值。

二、Newton Raphson 算法的基本原理
2.1 Newton Raphsn 算法
牛顿迭代法(Newton method )又称为牛顿-拉夫森方法(Newton-Rapfson method ),它是牛顿在17世纪提出的一种近似求解方程的方法.多数方程不存在的求根公式,因此求精确根相当困难甚至不可能,从而寻找方程的近似根就会显得特别重要.方法在使用函数)(x f 的泰勒级数的前面几项来寻找方程0)(=x f 的根.牛顿迭代法是求方程的根的重要方法之一,其最大的优点是在方程0)(=x f 的单根附近具有平方收敛性,而且该法还可以用来求方程的重根、复根.
牛顿迭代法方法简单,每次迭代都是简单的去重复运算,易于编制程序;与求解线性方程的精确法相比较,简单迭代法对于字长位数较少的计算机更加的适用,它可以用增加迭代的次数来弥补字长位数少的不足.初值可以任意的取,因而中间结果偶然的错误不影响最后结果的获得。

多数情况下是得不到一般的数学方法所需的函数表达式,或者难以找到原函数。

线性方程组中的求解更是让人望而生畏,往往因为计算机的工作量太大而无法实施。

对于这些问题,都可以利用数值的方法来求解,在计算机中实现的数值方法也被称之为数值算法。

牛顿
迭代法是数值分析中一个重要的计算方法和思想。

迭代法的一个主要功能:计算方程时可以比较的快速。

解非线性方程0)(=x f 的Newton-Rapfson 算法是把非线性的方程线性化为一种近似方法.把)(x f 的0x 点附近展开泰勒(Taylor )级
+-+-+=!2)()()()()()(0''2
00'00x f x x x f x x f x f x f . 取其线性部分用来作为非线性方程0)(=x f 的近似方程,则有:
0))(()(00'0=-+x x x f x f .
设0)(0'≠x f ,则其解为: )
()(0'001x f x f x x -=. 再把)(x f 在1x 附近展开泰勒(Taylor )级数,取其现行部分作为0)(=x f 的近似方程.若0)(0'≠x f ,则得:
)
()(1'112x f x f x x -=. 这样,得到牛顿(Newton-Rapfson )算法的一个迭代的序列:
)
()('1n n n n x f x f x x -=+. 牛顿迭代法有十分明显的几何意义,如下图所示:
当选取初值0x 以后,过(0x ,)(0x f )做)(x f 的切线,其切线的方程为: ))(()(00'0x x x f x f y -=-.
求此切线方程和x 轴的交点,即得:
)
()(0'001x f x f x x -=. 牛顿迭代法正因为有这一明显的几何意义,所以也叫切线法.:
2.2 一种修正的Newton Raphsn 算法
给出了牛顿(Newton-Rapfson )算法的一种修正的形式,并证明了当21≠
r 时修正的牛顿(Newton-Rapfson )算法是二阶收敛的,当参数2
1=r 时是三阶收敛时,数值实验得出结果,与经典牛顿迭代法相比,该修正牛顿(Newton-Rapfson )算法具有一定的优势.众所周知的,数值求解非线性方程0)(=x f 的根的方法很多.经典的牛顿迭代法是非线性方程组求根的一个基本的方法,它二次收敛到单根,线性收敛到重根.牛顿法因收敛速度快而得到广泛应用,也倍受学者的重视,近年来很多文献中提出各种改进的牛顿方法.文献[8]中利用Newton-Rapfson 迭代法和微分中值定理“中值点”的渐进性,提出的一种多点迭代的算法.
设)(x f 满足下述条件:
图1
[]b a c x f ,)(2∈,0)()(<b f a f .
0)('≠x f ,)(''x f 在[]b a ,上保号。

(A)
根据微分中值定理,即存在),(b a ∈ξ,使得:
)()()('ξf a b a f b f =--,而2
1lim =--→a b a a b ξ. 因此,当b 与a 的距离无限接近时有:
)(2
1
a b a -+≈ξ.也就是说,在区间),(b a 不甚大的时候,中值点ξ一定在其渐近的位置
)(21a b a -+≈ξ附近,并随区间变小而趋于其渐近的位置.图所示的迭代算法构造图本方案基于上述考虑,给出一种通过迭代点而选取另一个点,利用两个点进行迭代求近似根的新方法.这种方法虽然在迭代中又只利用了一个其它的点,但其计算精度却相当的高,它的某一种特殊情形恰是通常的Newton-Rapfson 迭代算法.为了更加直观起见,我们通过几何直观图来构造这种迭代算法.设)(x f 满足条件(A),当选定初值0x
(仅要求0)()(''0>⋅x f x f ),如图所示,作交点的切线交x 轴于B ⎪⎪⎭
⎫ ⎝⎛
-0,)()(0'00x f x f x , AQ 线段的斜率为:
图2
⎪⎪⎭⎫ ⎝
⎛--⎪⎪⎭⎫ ⎝⎛--)()()()()(0'0000'000x f x f x x x f x f x f x f . 由微分中值定理得知,存在⎪⎪⎭
⎫ ⎝⎛
-∈00'00,)()(x x f x f x ξ使得: ⎪⎪⎭⎫ ⎝
⎛--⎪⎪⎭⎫ ⎝⎛--)()()()()(0'0000'000x f x f x x x f x f x f x f )(0'x f =. 而⎪⎪⎭⎫ ⎝
⎛-+-≈)()(21)()(0'000'00x f x f x x f x f x ξ,因此,我们取数⎪⎭⎫ ⎝⎛∈1,21r ,在点 ⎪⎪⎭⎫ ⎝
⎛⎪⎪⎭⎫ ⎝⎛----)()()1(,)()()1(0'000'00x f x f r x f x f x f r x P 作切线PC ,图中AD 平行于PC.即用点P 的导数⎪⎪⎭⎫
⎝⎛--)()()1(0'00'x f x f r x f 取代点A 的导数,而继续用点A 的迭代格式得到的点D 的坐标
⎪⎪⎪⎪⎪⎭⎫ ⎝
⎛⎪⎪⎭⎫ ⎝⎛---0,)()()1()(0'00'00x f x f r x f x f x D .
重复上述过程,得到多点迭代公式: ⎪⎪⎭⎫ ⎝⎛---=+)()()1()
(''1k k k k k k x f x f r x f x f x x . (1)
其中[]b a x k ,∈, ,2,1=k .
下面我们对上述事实,从理论上加以严格的证明.
定理 设)(x f 满足条件(A),则由多点迭代公式(1)产生的序列{n x }必收敛于[]b a ,上的唯一a ,这里[]b a x n ,∈,0)(=a f .
证明: 函数)(x f 在[]b a ,上连续,由连续函数根的存在定理,从0)()(<b f a f 知道)(x f 在[]b a ,上的根存在,又由条件0)('≠x f 以及)(''x f 保号知道,)('x f 在[]b a ,上不变号,故)(x f 在[]b a ,上是单调函数,因此)(x f 在[]b a ,上的根a 存在且唯一.由定理条件曲线)(x f y =可有如下四种不同的情况:
(1)0)(<a f ,0)(>b f ,0)(''>x f ,则)('x f 单调上升,0)()(''>b f a f ;
(2)0)(<a f ,0)(>b f ,0)(''>x f ,则)('x f 单调下降,0)()(''>b f a f ;
(3)0)(>a f ,0)(<b f ,0)(''>x f ,则)('x f 单调上升,0)()(''>b f a f ;
(4)0)(>a f ,0)(<b f ,0)(''<x f ,则)('x f 单调下降,0)()(''>b f a f .
通过对自变量的变号或者对函数的变号可将四种情况归结为一种情况,所以我们只需对其情况(一)证明迭代过程(1)收敛就可以了.
若初值[]b a x n ,∈,a x >0,所以0)(0>x f ,故有
00'00'001)()()1()
(x x f x f r x f x f x x <⎪⎪⎭
⎫ ⎝⎛---= ⎪⎪⎭⎫ ⎝
⎛---=)()()1()
(0'00'001x f x f r x f x f x x ⎪⎪⎭
⎫ ⎝⎛----=⎪⎪⎭⎫ ⎝⎛---+-=)()()1()
)(()()()1()
)(()(0'00'0'00'00'0'0x f x f r x f a x f x x f x f r x f a x f a f x ξξ.
一方面,),(0x a ∈ξ,且)()(0'0a x f x f -=.下证⎪⎪⎭⎫ ⎝
⎛--<)()()1()(0'00''x f x f r x f x f .若
⎪⎪⎭⎫ ⎝
⎛-->)()()1()(0'00''x f x f r x f x f ,由)('
x f 的单调性有:x ,ξ<--)()()1(0'00x f x f r x ,又因)()()()()
1(0'000'00x f x f x x f x f r x ->--,因此就有)()()('0'00'ξf x f x f x f <⎪⎪⎭⎫ ⎝
⎛-,与Newton 迭代算法的收敛性矛盾.
由(一)的假设及⎪⎪⎭⎫

⎛--<)()()1()(0'0
0''x f x f r x f f ξ可得: a a x x x f x f r x f a x f x x =->⎪⎪⎭
⎫ ⎝⎛----=)()()
()1()
)((000'00
'0'01ξ.
一般地,若a x n =,同样可以证明由式(1)得到1+n x 满足n n x x a <<+1.依极限理论的必有极限.对式(1)两边取极限,由极限理论可求得0)('=a f .再由0)('≠x f ,[]b a x n ,∈,可知函数方程0)(=x f 在[]b a ,上的根是唯一的,因此有a a ='.
当1=r 时,式(1)即为Newton-Rapfson 迭代公式.
本文给出的这种多点迭代方法不仅可以广泛应用于方程的近似求根,更重要的是它为人们提供了一种新的迭代算法思想,拓宽人们求方程近似求根方面的思路.
2.3 另外一种Newton Raphsn 算法的修正
Newton-Rapfson 迭代算法是方程求根的一种简单而直观的近似方法,但在实际运用中,我们常常发现到,这种方法仅是利用了迭代点及该点的导数值,而没有充分利用其他点及其导数的值.是否存在可利用的点,这些点我们应怎样的去确定.文[1]给出了一种新的方法,但这种方法求根的关键在适当地去选取0x 和r 或n r .选取不适当时,就会出现某次迭代的值不是迭代序列中的值.因此,我们会问这些值特别是0x 能否不依靠人为选取,而通过迭代点来选取,本文将利用Newton-Rapfson 迭代算法和微分中值定理“中值点”的渐近性,来寻找除迭代点以外的可以利用点,给出一种多点迭代方法.
设)(x f 满足下列叙述条件:
[]b a c x f ,)(2∈,0)()(<b f a f ;
0)('≠x f ,)('x f 在[]b a ,上保号. (A)
根据微分中值定理,存在),(b a ∈ξ,使
)()()('ξf a b a f b f =--而2
1
lim =--→a b a a b ξ.因此,当
b 与a 的距离无限接近时就有:)(21
a b a -+≈ξ.也就是说,在区间()b a ,不甚大的时候,中
值点ξ一定在其渐近的位置)(2
1
a b a -+≈ξ附近,并随区间变小而趋于其渐近的位置.本方
案基于上述考虑,给出一种通过其迭代点选取另一个点,利用两个点去迭代求近似根的新方法.
设)(x f 满足下列的条件(A):
(1) )(x f 在区间在区间[]b a ,上存在二阶导数; (2) )('x f 在[]b a ,上不等于零; (3) )(''x f 在[]b a ,上不变号; (4) 0)()(<b f a f ;
为了更为直观,我们通过几何直观图来构造多点迭代算法.设)(x f 满足条件(A),当选定初值0x (仅要求0)()(''0>x f x f )后,如图所示:
图3
做A 点的切线交X 轴于B ⎪⎪⎭⎫ ⎝⎛-0,)()(0'00x f x f x ,AQ 线段斜率为:⎪⎪⎭⎫ ⎝
⎛--⎪⎪⎭⎫
⎝⎛--)()()()()(0'0000'000x f x f x x x f x f x f x f ;由微分中值定理可知,存在⎪⎪⎭
⎫ ⎝⎛-
∈00'
00,)()
(x x f x f x ξ使得:
)()()()()()(0'0'0000'000x f x f x f x x x f x f x f x f =⎪
⎪⎭⎫ ⎝
⎛--⎪
⎪⎭⎫
⎝⎛--.
而⎪⎪⎭
⎫ ⎝⎛-+-≈)()(21)()(0'000'00x f x f x x f x f x ξ,因此,我们可以取数⎪⎭⎫ ⎝⎛∈1,21r ,就在点
⎪⎪⎭
⎫ ⎝
⎛⎪⎪⎭⎫ ⎝⎛----)()()1(,)()
()1(0'000'00
x f x f r x f x f x f r x P 作切线PC ,图中的AD 平行于PC.即用点P 的导数⎪⎪⎭⎫


--)()()1(0'0
0'x f x f r x f 代替点A 的导数,而仍用点A 的迭代格式去得到点D 的坐标
⎪⎪⎪⎪⎪⎭

⎝⎛⎪⎪⎭⎫ ⎝⎛---0,)()()1()('0'00k k x f x f r x f x f x D (2)
主要对(2)式的分子)(0x f 用)(k x f 与⎪⎪⎪
⎪⎪⎭⎫ ⎝
⎛⎪⎪⎭⎫ ⎝⎛---)()()1()
(''k k k k k x f x f r x f x f x f 的和取代,这样就能得到新的迭代公式:
⎪⎪⎭

⎝⎛--⎪⎪⎪⎪⎪⎭⎫
⎝⎛⎪⎪⎭⎫ ⎝⎛---+-=+)()()1()()()1()
()(''''1k k k
k k k k k k k k x f x f r x f x f x f r x f x f x f x f x x . (3)
如果令)()()
1()('k k x f x f r x x --=μ .)
()
()('1μf x f x x w x k k
k k -==+.则: ()
)('111x f x f x x k k k μ⎪⎭⎫

⎛-=+-+-
+. 从而可知(3)式中迭代函数为:()()
)()()()('x w f x w f x w x -
=Φ. 引理1[5] 对于迭代公式)(1k k x x Φ=+,如果p Φ在所求根*x 的邻近连续并且:
0)()()(1'''=Φ==Φ=Φ*+**x k x x p ,0)(*)(≠Φx p ,则该公式在*x 的邻近是p 阶收敛的.
定理1 设方程)(x f 的根为*x ,函数)(x f 在*x 的的邻域内有至少四阶连续的导数,且
0)('≠x f ,则就迭代公式(3)在的*x 邻近至少是三阶收敛的.
证明 迭代公式(3)的迭代函数为:))(())
(()()('x w f x w f x w x -
=Φ,在其中)
()()('
μf x f x x w k k k -=,由于方程)(x f 的根为*x 所以0)(*=x f ,从而可知**)(x x w =,0)(*'=x w ;
()
3
*
'
'
*'*'*
''))(()
()()(x f x x f x w μμ=
对)(x Φ求导数得:
()()()()()
0)()()
()()()()()()()(*
'2
'
''
'''
'
'
''''=Φ⇒--=Φx x u f x u x u f x w f x f x w x w f x w x μ;
同理可得:()
0)()()()()(*''*''*'''
'''=-=Φ⇒Φ=Φx w x w x x x . 由引理可知迭代公式(3)在*
x 邻近至少是三阶收敛的.
引理2[4] 假设函数)(x f 在区间[]b a ,上存在二阶导数,且满足下列条件 (1))('x f 在[]b a ,上不等于零; (2))(''x f 在[]b a ,上不变号; (3) 0)()(<b f a f ;
(4) 设[]b a x ,∈,且满足条件0)()('
'>x f x f ;
则由Newton-Rapfson 迭代法)
()
(0'
1x f x f x x n n n -
=+得到序列{}
n x 收敛于0)(=x f 的惟一根*x .
定理2 假设函数)(x f 在区间[]b a ,上存在二阶导数,且满足下列条件 (1) )('x f 在[]b a ,上不等于零; (2) )(''x f 在[]b a ,上不变号; (3) 0)()(<b f a f ;
(4) 设[]b a x ,∈,且满足条件0)()(''>x f x f .
则由多点迭代公式(3)得到的序列{}
n x 收敛于0)(=x f 的惟一根*x .
证明 函数)(x f 在[]b a ,上连续,由连续函数根的存在的定理,从0)()(<b f a f 知道
)(x f 在[]b a ,上的根存在,又由条件0)('≠x f 及)(''x f 的保号性可以知道,)('x f 在[]b a ,上
不变号,因此)(x f 在[]b a ,上是单调函数,因此)(x f 在[]b a ,上的根*x 存在并且惟一.
由定理条件,曲线)(x f y =可有如下四种不同的情况:
(a)0)(,0)(,0)(''>><x f b f a f ,则)('x f 单调上升,0)()('
'>≥a f b f ; (b) 0)(,0)(,0)(''>><x f b f a f ,则)('x f 单调下降,0)()('
'>≥b f a f ; (c)0)(,0)(,0)(''><>x f b f a f ,则)('x f 单调上升,0)()('
'<≥b f a f ; (d)0)(,0)(,0)(''<<>x f b f a f ,则)('x f 单调下降,0)()('
'<≥a f b f .
通过对自变量的变号或着对函数的变号可以将四种情况归结为一种情况,所以我们只需对其中一种情况证明迭代过程(3)是收敛的就可以了.
下面仅就情况(a)证明定理2,其余情况的证明也就类似.对情况(a)来说此时0)(=x f 在
[]b a ,上的根存在并且惟一,且)(x f 在[]b a ,上单调递增.首先证明,对任何初始的近似
),(*b x x ∈,由迭代公式(3)求出的逐次近似k x 都属于()
b x ,*,并且单调递减. 事实上,由引
理2的证明我们可以知道,只要),()
()()1()(*
'
b x x f x f r x x k k k k ∈--=μ,就有),(*1b x x k ∈+-,即
k k k x x u x <<+-)(1,再由(2)式可以得11+-
+<k k x x ,另一方面(2)式可化为:
()
()()⎪⎪⎭
⎫ ⎝⎛-⎪⎭⎫ ⎝⎛-=⎪⎭
⎫ ⎝⎛---=-⎪⎭
⎫ ⎝⎛--=-+-+-+-
+-+-
+)()(1)()()()(''*1*1''*
1'*1*1*
1k k k k k k k k k x f f x x x x x f f x x x f x f x f x x x x μξμξμ . 其中的()
)(,,*1*1k k x x x x μξ⊂⎪⎭
⎫ ⎝⎛∈+-.由)('
x f 单调递增且0)('>x f 知()1)()(''<k x f f μξ,故
0*1>-+-
x x k 因而由(3)式产生的序列{}n x 单调递减并且有下界,故n n x ∞
→lim 存在.
设-

→=x x n n lim ,(3)式两边当∞→k 时求极限可得:
''''(1)0(1)f x f x x x f x f x f x r f x f x f x r f x -------
--
-
-
⎛⎫
⎪ ⎪
⎛⎫
⎛⎫⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪⎛⎫⎝⎭⎝⎭=-+---= ⎪ ⎪ ⎪⎛⎫⎛⎫⎝⎭⎛⎫ ⎪ ⎪ ⎪ ⎪
⎪ ⎪ ⎪⎝⎭⎝⎭⎝
⎭-- ⎪ ⎪⎛⎫ ⎪ ⎪ ⎪
⎪⎝⎭⎝⎭⎝
⎭.
''''(1)(1)f x f x f x f x f x r f x f x f x r f x -----
--
-
-
⎛⎫
⎪ ⎪
⎛⎫
⎛⎫⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪⎛⎫⎝⎭⎝⎭+--- ⎪ ⎪ ⎪⎛⎫⎛⎫⎝⎭⎛⎫ ⎪ ⎪ ⎪ ⎪
⎪ ⎪ ⎪⎝⎭⎝⎭⎝
⎭-- ⎪ ⎪⎛⎫ ⎪ ⎪ ⎪
⎪⎝⎭⎝⎭⎝
⎭.
可知 ''0(1)f x f x f x f x f x r f x ----
-
-
⎛⎫ ⎪ ⎪
⎛⎫ ⎪ ⎪ ⎪⎛⎫⎝⎭
+-= ⎪ ⎪⎛⎫⎝⎭⎛⎫ ⎪ ⎪ ⎪ ⎪⎝⎭-- ⎪ ⎪⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭
. ()
b x x f x f r x f x f x x ,)1(,*''∈⎪⎪⎪⎪⎭⎫

⎛⎪⎭⎫ ⎝⎛⎪⎭⎫ ⎝⎛--⎪⎭⎫
⎝⎛-
--
-
--
- ,)(x f 在[]b a ,上单调递增,且0)(*=x f
所以:0)1(,0''=⎪⎪⎪
⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝
⎛⎪⎪⎪⎪⎭⎫
⎝⎛⎪⎭⎫ ⎝⎛⎪⎭⎫ ⎝⎛--⎪⎭⎫
⎝⎛-=⎪⎭⎫ ⎝⎛---
---x f x f r x f x f x f x f ;因此得:-
=x x *. 本方法代方法比Newton-Rapfson 算法的收敛速度明显要快,而且对于⎥⎦
⎤⎢⎣⎡∈1,21r ,r 越大
效果越差!当2
1
<
r 时,在0*=→x x k 之前迭代格式会产生负值.所以,格式(3)的收敛速度和r 的选取有关.
三、Newton Raphson 算法在计算方程中的应用
非线性方程求根最为常用的是迭代法。

迭代法是计算方法中的一种基本方法,主要有简单迭代法、牛顿迭代法和弦割法。

本文主要通过借助非线性方程求解,介绍优化程序的方法,能够提高数值计算程序的质量。

它对处理科学工程问题或企事业管理中的数值计算问题有一定的启发意义。

首先,常用非线性方程解法的对比与分析对于收敛的迭代过程,只要迭代足够多次,就
可以得到满足制定精度要求的结果。

但有时迭代过程收敛缓慢,计算效率很低。

如何改进迭代法使之加快收敛速度,是实际应用中需要解决的问题。

弦截法与牛顿迭代法都是线性化方法;但两者有本质的区别。

牛顿迭代法与一般迭代法在计算1k x +时只用到前一步的值,故称之为单点迭代法;而弦截法在求1k x +时要用到前两步的结果1k x -和k x ,使用这种方法必须给出两个初始近似根0x ,1x ,这种方法称为多点迭代法。

另外,弦截法比牛顿迭代法收敛速度较慢,但它的计算量比牛顿迭代法小。

3.1 Newton Raphson 算法求解方程的根
例1:用牛顿法求下面方程的根
()32210200f x x x x =++-=; 解:因为()'23410f x x x =++,所以其迭代公式为:
())3221210203410n n x x x x x x x +=-++-++;
选取01x =计算结果列表如下:
从结果可以看出,牛顿法的收敛是明显很快的,5x 误差1510-.但用牛顿法计算工作量会比较大,因每次计算迭代除了计算函数值外还要计算微商值.为此我们提出了简化的牛顿迭代算法:其公式为()()'10n n n x x f x f x +=-;用上面的公式计算,不再需要每步重新去计算微商值,所以计算量要小一些,但收敛也要慢一些.为了避免计算导数还可以采用差商代导数的方案来算:
()
()()
()111n n n n n n n f x x x x x f x f x +--=-
--;
关于牛顿迭代算法的收敛有下面结果:如果()f x 在零点附近存在的连续的二阶微商,ξ
是()f x 的一重零点,并且初始0x 充分接近于ξ,那么牛顿迭代算法是收敛的,并且有
()()()2
'''1/2n n x f f x ξξξξ+-≈•-;
这表明牛顿法是二阶收敛的(平方收敛的).
最后考虑()f x 是多项式的特殊的情况,而此时()f x ,()'f x 在某个x 值,比如x c =时的计算可以用综合除法.
设 ()111n n n n f x ax a x a x a +-=++
+,除以x c -,得商()q x ,余r :
()()()f x q x x c r =-+; (4)
其中:
()120121n n n n q x b x b x b x b ----=++
++;
()n r b f c ==;
比较(4)式两边k x 的系数便知这些k b 可以按下表来进行:
这一过程就是秦九韶算法,计算多项式值的嵌套算法:
()()()()
121n n f c a
a c a c c a c a -=
+++
++;
每个括号的值就是这里的n b b 1. 至于导数的计算,我们注意到(4)式可得:
()()()()''f x q x q x x c =+-;
于是:
()()'f c q c =;
因此再对n b b 1进行上述的过程,或者再用一次秦九韶算法即可.
例2:计算()3250f x x x =--=在(2,3)区间内的一个实根.
我们已知()0f x =有一个精确到十二位有效数字的实根 2.09455148154a =. 取03x =,以Newton 迭代法计算(记作1n x ),取03x =, 1
2
r =以式(4)计算(记作2n x ),其结果列表如表1. 表1
代就可以得到满足精度要求的值了,而Newton 迭代算法需迭代5次才可以得到满足精度要求的值.式(4)可以被广泛应用,特别是编成数学软件后,用计算机求解方程近似根时效果会更加显著.
例3:计算78265.0的近似值。

610-=ε 88.00=x
解: 令78265.0=x 问题转化为求078265.0)(2=-=x x f 的正根 由牛顿迭代公式
()k
k k k k k x x x f x f x x 278265
.02)('
1+=-
=+
迭代结果
满足了精度要求78265.0 =0.884675
例4:用牛顿迭代法球方程2x =a (a>0)的近似正实根。

由此我们建立一种求平方根的计算方法。

解:首先计算可知迭代公式为10.5()n n n x x a x +=+
通过编写matlab 程序计算得出, 比如5的平方根,初始值取做2,只需输入命令: it(5,2),立即可得结果y=2.2361
四、利用牛顿迭代法计算附息国债的实时收益率
随着证券市场规模的扩大和机构投资者的增多,加上市场格局的变化,国债在证券市场中的地位和作用逐渐提高,许多投资者逐渐把目光转向国债市场。

国债实时收益率是反映市场利率变化和衡量国债投资价值的重要指标,但是许多投资者对附息国债的实时收益率计算却无从下手。

本文将介绍利用牛顿迭代法计算附息国债的实时收益率。

4.1附息国债实时收益率的理论计算公式
附息国债实时收益率也就是附息国债的内含收益率(或内部收益率,IRR ),内含收益率以下面的公式为基础计[]
10算
:
()
()
()
()
()
b 1
2
1
1
11111w
w w w n w n c
c
c
c
M
P y y y y y +++-+-=
+
+++
++++++. (5)
式中:y :附息国债实时收益率(内含收益率);w :交易结算日至下一利息支付日的天数以上一利息支付日(LIPD)至下一利息支付日(NIPD)之间的天数,即:
365w =
交易结算日至下一利息支付日的天数
天(366天)
.
c:每次支付的利息额;n :剩余的利息支付次数;b P :交易结算日的市场价格(全价,即:净价+累积利息)。

4.2附息国债实时收益率的实际计算方法
下面以696券(696券于1996年6月14日发行,10年期,票面年利率为11. 83%,附息国债)为例,介绍附息国债实时收益率的具体计算方法。

设1997年6月14日之前的某一天购入696券的价格为0P ,每百元每年的实时收益率为x ,离第一次发放利息(1997年6月14日)的时间为t(年数),则:
发行一年后的除权价:10(1)11.83t p p x =+-
发行二年后的除权价:21(1)11.83p p x =+-
发行九年后的除权价:98(1)11.83p p x =+-
最后一年的到期本息为:9100(1)11.83p x =+- 上面一共10个方程可决定10个未知数:0p ,1p , 2p , , 9p ,将以上10个方程整理,
消去1p , 2p ,
, 9p 得到
()
()
()
()
()
0129911.83
11.83
11.83
11.83
100
11111t
t
t
t
t
p x x x x x ++++=
+
+
++
+
+++++.
从以上例子可以看出,设距离兑付期为n 年(取整数)的附息国债到期本金为M ,每年票面利息为:,购入价格为0P 的国债的到期收益率为x ,那么:
()
()
00
11n
i t
n t
i c
M
p x x ++==+
++∑
.
此方程式中已知购入价格0P ,每年票面利息为c ,到期本金M ,剩余年数取整为n(注:这里的n 和(5)式中的n 有区别),t 为当前交易日至下一附息日的天数除以上一次利息支付日至下次利息支付日的天数,即t 为当前日至下一个利息支付日的年数。

这是一个非线性代数方程,一般不能直接求解,只能采用逐次通近的迭代方法求解,即当知道解的某一初始近似值0x 后,从它开始逐步逼近所要求的解x ,我们选用牛顿迭代法解以上方程。

4.3利用牛顿迭代法计算
牛顿迭代法是迭代法的一种,是求解函数方程的一种有效方法,其基本特征是计算格式简单且收敛较快。

给定方程f(x) =0。

以及根ξ的初始近似值0x ,并假设函数f (x)在0x 的邻域内导数存在。

设0x x ξ+∆=是方程f(x) =0。

的根,即()0()0f x x f ξ+∆==成立,将其在0x 处按泰勒公式展开得:
2
'
00''
0()()02!()
x f x xf x f x ∆+∆++=.
略去含2x ∆及以后各项得近似等式:'
00()()0f x xf x +∆=
因而得x ∆的近似表达式:0'0()
()
f x x f x ∆=-
以x ∆作为初始近似根0x 的改正值得:0100'
0()
()
f x x x x x f x =+∆=--
重复应用以上做法可得:
1'
()
(0,1,2,)()
n n n n f x x x n f x +=-
=. 此即为牛顿迭代公式。

对于方程:()
()
00
11n
i t
n t
i c
M
p x x ++==
+
++∑
,设y=1+x ,整理得:
1200n t n n p y cy cy cy cy M c +----
----=.
设:120()n t n n f y p y cy cy cy cy M c +-=---
----
则:'1120()()(1)2n t n n f y n t p y ncy n cy cy c +---=+------
应用牛顿迭代公式:1'()
()
n n n n f y y y f y +=-
,选取误差c w ,y 的初始近似值为0y ,有: 010'
0()
()
f y y y f y =-
. 若10c y y w -<,则停止迭代,取1y y ≈,否则继续迭代
121'
1()
()
f y y y f y =-
.
对于11'1()()n n n n f y y y f y ---=-
,如果1n n c
y y w --≥则继续1'()
()
n n n n f y y y f y +=-,否则停止迭代,得到方程的根1n y y +≈,国债收益率1x y ≈-。

根据以上牛顿迭代公式编计算程序,可求得附息国债的实时收益率。

程序编写如下(C 语言) #include<math.h> #include<stdio.h>
float gznewton (float,float,float,int,float,float,float); void main()
{ float x;
float a,b,d,e,f,g;
int k;
a=155.45;
b=11.83;
d=100.0;
k=6;
e=0.85;
f=1.1;
g=0.00001;
x=gznewton(a,b,d,k,e,f,g)-1;
printf("SYL is %f\n",x);
}
float gznewton(float p0,float c,float m,int n,float t,float y0,float wc) {
int i,done=0;
float y=y0,fy,fy1,Newton;
//y=y0;
do
{
fy=p0*pow(y,n+t)-c-m;
fy1=p0*(n+t)*pow(y,n+t-1);
for(i=0;i<n;i++)
{
fy=fy-c*pow(y,n-i);
fy1=fy1-c*(n-i)*pow(y,n-i-1);
}
if (fy1!=0)
{
Newton=y-fy/fy1;
if (fabs(Newton-y)<wc || fabs(Newton-y0)>0.2)
done=1;
else
y = Newton;
}else
done=1;
}while(!done);
return (Newton);
}
运行结果如下显示:
五、结论
牛顿迭代算法是一种用途非常广泛的方法,本文不仅介绍了这个方法很好的诠释这个
方法,而且做了牛顿迭代法的两种修正,也做了牛顿迭代法与弦位法以及抛物线法的比较得出牛顿迭代法的收敛速度是明显要快的。

并且用牛顿迭代法计算附息国债的实时收益率,计算比较方便快捷。

致谢
本论文是在我的导师魏正元老师的支持,鼓励和精心指导下完成的。

在我本科生四年的学习过程中,魏老师渊博的专业知识,严谨的治学态度,以及敏锐的学术洞察力都让我受益匪浅。

在我学习中所取得的任何进步都离不开魏老师对我的悉心指导和亲切关怀。

在此特别表示我最深切的感谢。

感谢我院各老师四年来对我孜孜不倦的教诲。

老师们的深入浅出,细致入微的教学作风让我受益终身。

感谢数学与统计学院2008级全体同学,和你们相处的四年中,我们在学业上共同进步,在生活上互相关心,度过了很多快乐的时光,特别感谢和我同一个导师的同学杜长敏,郭晓倩,李伟洪,和你们共同的学习和讨论帮助我在学习中克服很多困难。

感谢我的班导师钟坚敏老师,感谢你四年来对我的帮助和关怀,你们是我学习和生活的良师。

感谢我的亲人,我的爸爸,妈妈,感谢他们多年来对我的照顾,正是他们从未改变够的信念和不倦的鼓励,才使得我的论文得以顺利完成。

再次感谢所有帮助过我的老师,同学和亲人!
参考文献
[1] 徐萃薇,孙绳武.计算方法引论(第三版)[M].北京:高等教育出版社,2007.
[2] 龙爱芳.避免二阶导数计算的迭代法[J].浙江工业大学学报,2005,33(5): 602-604.
[3] 罗翔肖尚辰侯凯湖《石油与天然气化工》 2010 第3期.
[4] 张新东,王秋华.避免二阶导数计算的Newton迭代法的一个改进[J].山东大学学报,
2007,42(7):72-76.
[5] 何吉欢.盈不足术与牛顿迭代算法的比较[J].应用数学和力学,2002,23(12):
1256-1259.
[6] 王晓峰.一种修正的牛顿迭代法[J],2010,33(1)长春理工大学学报,178-179.
[7] 罗佑新.耦合混沌映射牛顿迭代法与机构精确点运动综合[J].机械传
动,2007,31(1):28-30
[8] 钱宝琮.中国数学史[M].北京:科学出版社,1992.
[9] 陈俊杰金荣洪耿军平《上海交通大学学报》 2007 第8期.
[10] 霍文文主编.债券投资技巧[M].上海:上海科技出版社,2001年8月版.
[11] 杨迁力(Yang Qianli).机械系统基本理论k结构学、运动学、动力学(BasicTheory of
Mechanical System)[M].北京:机械工业出版社(Beijing:China MachinePress),1996 [12] M Speth, H Meyr. Synchronization requirements for COFDM systems with transmit diversity.
Global Telecommunications Conference, 2003, 3, pp: 1252-1256.
[13] HeJi-huan.Improvement of Newton interation menthod [J].International Journal of Nonlinear
Science and Numerical Simulation 2000,1(3):239-240.。

相关文档
最新文档