您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页牛顿迭代法及其应用

牛顿迭代法及其应用

来源:华佗小知识
重庆理工大学毕业论文 (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世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x)0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x)0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。

利用牛顿迭代法来解决问题需要做好的工作:

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

(2)建立迭代关系式。所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。

(3)对迭代过程进行控制。在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。不能让迭代过程无休止地重复执行下去。迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件。

1.2 牛顿迭代法的优点及缺点

迭代法是求方程近似根的一个重要方法,也是计算方法中的一种基本方法,它的算法简单,是用于求方程或方程组近似根的一种常用的算法设计方法。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x)0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。牛顿法是方程求根的一个有力方法,常常能快速求出其他方法求不出或者难以求出的解。假定有一个函数yf(x),方程f(x)0在xr处有一个根,对于此

.

精品文档

根,先估计一个初始值 x0(可以是猜测的)。得到一个更好的估计值x1。为此f(x)x0处作该曲线切线,并将其延长与x轴相交。切线与x轴的交点通常很接近r,我们用它作为下一个估计值x1,求出x1后,用x1代替x0。重复上述过程,在xx1处作曲线的另一条切线,并将其延长至与x轴相交,用切线的x轴截距作为下一个近似值x2……这样继续下去,所得出的这个x轴截距的序列通常迅速接近根r。

缺点:选定的初值要接近方程的解,否则有可能的不到收敛的结果。再者,牛顿迭代法计算量比较大。因每次迭代除计算函数值外还要计算微商值。

二、Newton Raphson 算法的基本原理

2.1 Newton Raphsn算法

牛顿迭代法(Newton method)又称为牛顿-拉夫森方法(Newton-Rapfson method),它是牛顿在17世纪提出的一种近似求解方程的方法.多数方程不存在的求根公式,因此求精确根相当困难甚至不可能,从而寻找方程的近似根就会显得特别重要.方法在使用函数f(x)的泰勒级数的前面几项来寻找方程f(x)0的根.牛顿迭代法是求方程的根的重要方法之一,其最大的优点是在方程f(x)0的单根附近具有平方收敛性,而且该法还可以用来求方程的重根、复根.

牛顿迭代法方法简单,每次迭代都是简单的去重复运算,易于编制程序;与求解线性方程的精确法相比较,简单迭代法对于字长位数较少的计算机更加的适用,它可以用增加迭代的次数来弥补字长位数少的不足.初值可以任意的取,因而中间结果偶然的错误不影响最后结果的获得。

多数情况下是得不到一般的数学方法所需的函数表达式,或者难以找到原函数。线性方程组中的求解更是让人望而生畏,往往因为计算机的工作量太大而无法实施。对于这些问题,都可以利用数值的方法来求解,在计算机中实现的数值方法也被称之为数值算法。牛顿

.

精品文档

迭代法是数值分析中一个重要的计算方法和思想。迭代法的一个主要功能:计算方程时可以比较的快速。

解非线性方程f(x)0的Newton-Rapfson算法是把非线性的方程线性化为一种近似方法.把f(x)的x0点附近展开泰勒(Taylor)级

f''(x0)f(x)f(x0)f(xx0)f(x0)(xx0).

2!'2取其线性部分用来作为非线性方程f(x)0的近似方程,则有:

f(x0)f'(x0)(xx0)0.

设f'(x0)0,则其解为:

x1x0f(x0). 'f(x0)再把f(x)在x1附近展开泰勒(Taylor)级数,取其现行部分作为f(x)0的近似方程.若

f'(x0)0,则得:

x2x1f(x1). 'f(x1) 这样,得到牛顿(Newton-Rapfson)算法的一个迭代的序列:

xn1xnf(xn). 'f(xn)牛顿迭代法有十分明显的几何意义,如下图所示:

.

精品文档

当选取初值x0以后,过(x0,f(x0))做f(x)的切线,其切线的方程为:

图1

yf(x0)f'(x0)(xx0).

求此切线方程和x轴的交点,即得:

x1x0f(x0). 'f(x0) 牛顿迭代法正因为有这一明显的几何意义,所以也叫切线法.:

2.2 一种修正的Newton Raphsn算法

给出了牛顿(Newton-Rapfson)算法的一种修正的形式,并证明了当r(Newton-Rapfson)算法是二阶收敛的,当参数r1时修正的牛顿21时是三阶收敛时,数值实验得出结果,2与经典牛顿迭代法相比,该修正牛顿(Newton-Rapfson)算法具有一定的优势.众所周知的,数值求解非线性方程f(x)0的根的方法很多.经典的牛顿迭代法是非线性方程组求根的一个基本的方法,它二次收敛到单根,线性收敛到重根.牛顿法因收敛速度快而得到广泛应用,也倍受学者的重视,近年来很多文献中提出各种改进的牛顿方法.文献[8]中利用Newton-Rapfson迭代法和微分中值定理“中值点”的渐进性,提出的一种多点迭代的算法.

设f(x)满足下述条件:

.

精品文档

f(x)c2a,b,f(a)f(b)0.

f'(x)0,f''(x)在a,b上保号。 (A)

根据微分中值定理,即存在(a,b),使得:因此,当b与a的距离无限接近时有:

f(b)f(a)a1f'(),而lim.

bababa2y A P O D C 图2

x

121a(ba)附近,并随区间变小而趋于其渐近的位置.图所示的迭代算法构造图本方案

2a(ba).也就是说,在区间(a,b)不甚大的时候,中值点一定在其渐近的位置

基于上述考虑,给出一种通过迭代点而选取另一个点,利用两个点进行迭代求近似根的新方法.这种方法虽然在迭代中又只利用了一个其它的点,但其计算精度却相当的高,它的某一种特殊情形恰是通常的Newton-Rapfson迭代算法.为了更加直观起见,我们通过几何直观图来构造这种迭代算法.设f(x)满足条件(A),当选定初值x0

(仅要求f(x0)f''(x)0),如图所示,作交点的切线交x轴于Bx0f(x0),0 , AQ'f(x0)线段的斜率为:

.

精品文档

f(x0)f(x0)fx0f'(x)0.

f(x0)x0x0f'(x)0由微分中值定理得知,存在x0f(x0),x0使得: 'f(x0)f(x0)f(x0)fx0f'(x)0f'(x0).

f(x0)x0x0f'(x)0 而x0f(x0)1f(x0)1,因此,我们取数xr,1,在点 0'f'(x0)2f(x)20f(x0)作切线PC,图中AD平行于PC.即用点P的fx(1r)'0f(x0)f(x0)Px(1r),'0f(x0)0x(1r)导数f'取代点A的导数,而继续用点A的迭代格式得到的点D的坐标 0'f(x0)f(x)

f(x0)Dx0,0.

f(x0)'fx(1r)'0f(x0)

重复上述过程,得到多点迭代公式: xk1xkf(xk)f(xk)f'x(1r)'kf(xk). (1)

其中xka,b,k1,2,.

下面我们对上述事实,从理论上加以严格的证明.

.

精品文档

定理 设f(x)满足条件(A),则由多点迭代公式(1)产生的序列{xn}必收敛于a,b上的唯一a,这里xna,b,f(a)0.

证明: 函数f(x)在a,b上连续,由连续函数根的存在定理,从f(a)f(b)0知道f(x)在a,b上的根存在,又由条件f'(x)0以及f''(x)保号知道,f'(x)在a,b上不变号,故

f(x)在a,b上是单调函数,因此f(x)在a,b上的根a存在且唯一.由定理条件曲线

yf(x)可有如下四种不同的情况:

(1)f(a)0,f(b)0,f''(x)0,则f'(x)单调上升,f'(a)f'(b)0; (2)f(a)0,f(b)0,f''(x)0,则f'(x)单调下降,f'(a)f'(b)0; (3)f(a)0,f(b)0,f''(x)0,则f'(x)单调上升,f'(a)f'(b)0; (4)f(a)0,f(b)0,f''(x)0,则f'(x)单调下降,f'(a)f'(b)0.

通过对自变量的变号或者对函数的变号可将四种情况归结为一种情况,所以我们只需对其情况(一)证明迭代过程(1)收敛就可以了.

若初值xna,b,x0a,所以f(x0)0,故有

x1x0f(x0)f(x0)'fx0(1r)'f(x0)

x0

x1x0f(x0)f(x0)f'x(1r)'0f(x)0 x0f(a)f'()(x0a)f(x0)f'x(1r)'0f(x)0.

x0f'()(x0a)f(x0)f'x(1r)'0f(x0)f(x)0一方面,(a,x0),且f(x0)f'(x0a).下证f'(x)f'x(1r)0'.若f(x)0.

精品文档

f(x0)f(x0)',由的单调性有:,xf'(x)f'x(1r)x(1r),又因f(x)0''0f(x0)f(x0)x0(1r)f(x0)f(x0)f(x0)'xf'(),与Newton迭代算法的,因此就有fx0'0''f(x0)f(x0)f(x0)收敛性矛盾.

0由(一)的假设及f'()f'x(1r)0'可得: f(x)0f(x)f'()(x0a)x1x0x0(x0a)a.

f(x0)f'x(1r)'0f(x0)一般地,若xna,同样可以证明由式(1)得到xn1满足axn1xn.依极限理论的必有极限.对式(1)两边取极限,由极限理论可求得f(a')0.再由f'(x)0,xna,b,可知函数方程f(x)0在a,b上的根是唯一的,因此有a'a.

当r1时,式(1)即为Newton-Rapfson迭代公式.

本文给出的这种多点迭代方法不仅可以广泛应用于方程的近似求根,更重要的是它为人们提供了一种新的迭代算法思想,拓宽人们求方程近似求根方面的思路.

2.3 另外一种Newton Raphsn算法的修正

Newton-Rapfson迭代算法是方程求根的一种简单而直观的近似方法,但在实际运用中,我们常常发现到,这种方法仅是利用了迭代点及该点的导数值,而没有充分利用其他点及其导数的值.是否存在可利用的点,这些点我们应怎样的去确定.文[1]给出了一种新的方法,但这种方法求根的关键在适当地去选取x0和r或rn.选取不适当时,就会出现某次迭代的值不是迭代序列中的值.因此,我们会问这些值特别是x0能否不依靠人为选取,而通过迭代点来选取,本文将利用Newton-Rapfson迭代算法和微分中值定理“中值点”的渐近性,来寻找除迭代点以外的可以利用点,给出一种多点迭代方法.

设f(x)满足下列叙述条件:

f(x)c2a,b,f(a)f(b)0;

.

精品文档

f'(x)0,f'(x)在a,b上保号. (A)

根据微分中值定理,存在(a,b),使

f(b)f(a)a1f'()而lim.因此,当

bababa21b与a的距离无限接近时就有:a(ba).也就是说,在区间a,b不甚大的时候,中

21值点一定在其渐近的位置a(ba)附近,并随区间变小而趋于其渐近的位置.本方

2案基于上述考虑,给出一种通过其迭代点选取另一个点,利用两个点去迭代求近似根的新方法.

设f(x)满足下列的条件(A):

(1) f(x)在区间在区间a,b上存在二阶导数; (2) f'(x)在a,b上不等于零; (3) f''(x)在a,b上不变号; (4) f(a)f(b)0;

为了更为直观,我们通过几何直观图来构造多点迭代算法.设f(x)满足条件(A),当选定初值x0(仅要求f(x0)f''(x)0)后,如图所示:

y A P Q O D C B 图3

x

.

精品文档

f(x0)f(x0)fx0'f(x0)f(x0);x,0做A点的切线交X轴于B,AQ线段斜率为:0'f(x0)f(x0)x0x0f'(x)0由微分中值定理可知,存在x0f(x0),x0使得: 'f(x0)

f(x0)f(x0)fx0f'(x)0f'(x0).

f(x0)x0x0f'(x)0

f(x0)1f(x0)1而x0',因此,我们可以取数x0'r,1,就在点

f(x0)2f(x0)2f(x0)Px(1r),'0f(x0)f(x0)作切线PC,图中的AD平行于PC.即用点P的导fx(1r)'0f(x0)0数f'x0(1r)f'(x)代替点A的导数,而仍用点A的迭代格式去得到点D的坐标

0f(x)f(x0)Dx0,0 (2)

f(xk)'fx(1r)'0f(x)kf(xk)主要对(2)式的分子f(x0)用f(xk)与fxk的和取代,这样就f(xk)'fx(1r)'kf(xk)能得到新的迭代公式:

f(xk)f(xk)fxkf(x)'kfxk(1r)f'(x)k xk1xk. (3)

f(xk)f'x(1r)'kf(xk).

精品文档

如果令(x)x(1r)f(xk)f(xk) ..则: xw(x)xk1kkf'(xk)f'()fxk1. xk1xk1'f(x)从而可知(3)式中迭代函数为:(x)w(x)fw(x). f'w(x)引理1[5] 对于迭代公式xk1(xk),如果p在所求根x*的邻近连续并且:

(p)(x*)0,'(x)''(x)kp1(x)0,则该公式在x*的邻近是p阶收敛的.

定理1 设方程f(x)的根为x*,函数f(x)在x*的的邻域内有至少四阶连续的导数,且

f'(x)0,则就迭代公式(3)在的x*邻近至少是三阶收敛的.

证明 迭代公式(3)的迭代函数为:(x)w(x)f(xk)f(w(x)),在其中,w(x)xkk''f(w(x))f()由于方程f(x)的根为x*所以f(x*)0,从而可知w(x*)x*,w'(x*)0;

f((x))fw(x)w(x)f(x)fw(x)fu(x)u(x)(x)w(x)(x)0;

fu(x)''*3w(x)''*f'(x*)'(x*)对(x)求导数得:

'''''''''''*''2同理可得:''(x)'(x)''(x*)w''(x*)w''(x*)0. 由引理可知迭代公式(3)在x邻近至少是三阶收敛的.

引理2[4] 假设函数f(x)在区间a,b上存在二阶导数,且满足下列条件 (1)f'(x) 在a,b上不等于零; (2)f''(x) 在a,b上不变号; (3) f(a)f(b)0;

''(4) 设xa,b,且满足条件f(x)f(x)0;

'*.

精品文档

则由Newton-Rapfson迭代法xn1xnf(xn)得到序列xn收敛于f(x)0的惟一根'f(x0)x*.

定理2 假设函数f(x)在区间a,b上存在二阶导数,且满足下列条件 (1) f'(x)在a,b上不等于零; (2) f''(x)在a,b上不变号; (3) f(a)f(b)0;

(4) 设xa,b,且满足条件f(x)f''(x)0.

则由多点迭代公式(3)得到的序列xn收敛于f(x)0的惟一根x*.

证明 函数f(x)在a,b上连续,由连续函数根的存在的定理,从f(a)f(b)0知道

f(x)在a,b上的根存在,又由条件f'(x)0及f''(x)的保号性可以知道,f'(x)在a,b上

不变号,因此f(x)在a,b上是单调函数,因此f(x)在a,b上的根x*存在并且惟一.

由定理条件,曲线yf(x)可有如下四种不同的情况:

''(a)f(a)0,f(b)0,f''(x)0 ,则f'(x)单调上升,f(b)f(a)0; ''(b) f(a)0,f(b)0,f''(x)0,则f'(x)单调下降,f(a)f(b)0; ''(c)f(a)0,f(b)0,f''(x)0 ,则f'(x)单调上升,f(a)f(b)0; ''(d)f(a)0,f(b)0,f''(x)0 ,则f'(x)单调下降,f(b)f(a)0.

通过对自变量的变号或着对函数的变号可以将四种情况归结为一种情况,所以我们只需对其中一种情况证明迭代过程(3)是收敛的就可以了.

下面仅就情况(a)证明定理2,其余情况的证明也就类似.对情况(a)来说此时f(x)0在

a,b上的根存在并且惟一,且f(x)在a,b上单调递增.首先证明,对任何初始的近似

x(x*,b),由迭代公式(3)求出的逐次近似xk都属于x*,b,并且单调递减. 事实上,由引

f(xk)*(x,b),就有xk1(x*,b),即理2的证明我们可以知道,只要(xk)xk(1r)'f(xk).

精品文档

xk1u(xk)xk,再由(2)式可以得xk1xk1,另一方面(2)式可化为:

fxk1f(x*)x*k1xxk1x*f'(xk)xk1x*f'()*f'(x)xk1x . kxk1x*f'()1f'(xk)其中的x*,xk1x*,(x'且f'(x)0知f'()1k).由f(x)单调递增f'(x1,k)xk1x*0因而由(3)式产生的序列xn单调递减并且有下界,故limnxn存在.

设limnxnx,(3)式两边当k时求极限可得:

fxfxxf'xxfxfx(1r)f0.

'xf'fxx(1r)f'x

fxfxffxxf'x(1r)fxf'x(1rf'.

x)f'x.

精品文档

fx 可知 fxfx0. fx'fx(1r)'fx x,xfxfxf'x(1r)'fxx*,b ,f(x)在a,b上单调递增,且f(x*)0

fx*0;因此得:xx. 所以:fx0,fxfxf'x(1r)'fx本方法代方法比Newton-Rapfson算法的收敛速度明显要快,而且对于r,1,r越大

2效果越差!当r11时,在xkx*0之前迭代格式会产生负值.所以,格式(3)的收敛速度2和r的选取有关.

三、Newton Raphson 算法在计算方程中的应用

非线性方程求根最为常用的是迭代法。 迭代法是计算方法中的一种基本方法,主要有简单迭代法、牛顿迭代法和弦割法。本文主要通过借助非线性方程求解,介绍优化程序的方法,能够提高数值计算程序的质量。它对处理科学工程问题或企事业管理中的数值计算问题有一定的启发意义。

首先,常用非线性方程解法的对比与分析对于收敛的迭代过程,只要迭代足够多次,就

.

精品文档

可以得到满足制定精度要求的结果。但有时迭代过程收敛缓慢,计算效率很低。如何改进迭代法使之加快收敛速度,是实际应用中需要解决的问题。

弦截法与牛顿迭代法都是线性化方法;但两者有本质的区别。牛顿迭代法与一般迭代法在计算xk1时只用到前一步的值,故称之为单点迭代法;而弦截法在求xk1时要用到前两步的结果xk1和xk,使用这种方法必须给出两个初始近似根x0,x1,这种方法称为多点迭代法。另外,弦截法比牛顿迭代法收敛速度较慢,但它的计算量比牛顿迭代法小。 3.1 Newton Raphson 算法求解方程的根

例1:用牛顿法求下面方程的根

fxx32x210x200; 解:因为f'x3x24x10,所以其迭代公式为:

xn1xnx32x210x203x24x10;

选取x01计算结果列表如下: N 0 1 2 3 4 5 6 7 牛顿法 1 1.4117705882353 1.3693370588235 1.368808188617532 1.369808107821375 1.368808107821373 1.368808107821373 弦位法 1 1.500000000000000 1.354430379746836 1.368270259654687 1.368810350393887 1.368808107472217 1.368808107821373 1.368808107821373 抛物线法 1 1.500000000000000 1.250000000000000 1.368535857721367 1.368807906820180 1.368808107821681 1.368808107821373 1.368808107821373 从结果可以看出,牛顿法的收敛是明显很快的,x5误差1015.但用牛顿法计算工作量会比较大,因每次计算迭代除了计算函数值外还要计算微商值.为此我们提出了简化的牛顿迭代算法:其公式为xn1xnfxnf'x0;用上面的公式计算,不再需要每步重新去计算微商值,所以计算量要小一些,但收敛也要慢一些.为了避免计算导数还可以采用差商代导数的方案来算:

xn1xnfxnxnxn1;

fxnfxn1关于牛顿迭代算法的收敛有下面结果:如果fx在零点附近存在的连续的二阶微商,.

精品文档

是fx的一重零点,并且初始x0充分接近于,那么牛顿迭代算法是收敛的,并且有

xn1f''/2f'•xn;

2这表明牛顿法是二阶收敛的(平方收敛的).

最后考虑fx是多项式的特殊的情况,而此时fx,f'x在某个x值,比如xc时的计算可以用综合除法.

设 fxaxna1xn1an1xan,除以xc,得商qx,余r:

fxqxxcr; (4)

其中:

qxb0xn1b1xn2bn2xbn1;

rbnfc;

比较(4)式两边xk的系数便知这些bk可以按下表来进行:

a0 a1 b0c b1a1b0c a2 b1c b2a2b1c an1 bn2c an bn1c b0a0 bn1an1bn2c bnanbn1c 这一过程就是秦九韶算法,计算多项式值的嵌套算法:

fca0a1ca2ccan1can;

每个括号的值就是这里的b1bn. 至于导数的计算,我们注意到(4)式可得:

f'xqxq'xxc;

于是:

f'cqc;

因此再对b1bn进行上述的过程,或者再用一次秦九韶算法即可.

例2:计算fxx32x50在(2,3)区间内的一个实根.

.

精品文档

我们已知fx0有一个精确到十二位有效数字的实根a2.09455148154. 取x03,以Newton迭代法计算(记作x1n),取x03, r其结果列表如表1. 表1 计算结果: 迭代次数N 1以式(4)计算(记作x2n),2x1n 0 3 1 2.360000000000 2 2.127196780159 3 2.095136036934 4 2.094551673824 5 2.094551482154 从这个数值例子,我们能看出,式(4)比Newton迭代算法的收敛速度快得多,只进行三次迭代就可以得到满足精度要求的值了,而Newton迭代算法需迭代5次才可以得到满足精度要求的值.式(4)可以被广泛应用,特别是编成数学软件后,用计算机求解方程近似根时效果会更加显著.

例3:计算0.78265的近似值。106 x00.88

解: 令x0.78265问题转化为求f(x)x20.782650的正根 由牛顿迭代公式

xk1xk 迭代结果 迭代次数 0 1 2 3 4 5 6 7

.

fxkxk0.78265 'f(xk)22xk迭代结果 0.880000 0.883630 0.884446 0.884625 0.8846 0.884673 0.884675 0.884675 精品文档

满足了精度要求0.78265 =0.884675

例4:用牛顿迭代法球方程x2=a(a>0)的近似正实根。由此我们建立一种求平方根的计算方法。

解:首先计算可知迭代公式为xn10.5(xnaxn)

通过编写matlab程序计算得出, 比如5的平方根,初始值取做2,只需输入命令: it(5,2),立即可得结果y=2.2361

四、利用牛顿迭代法计算附息国债的实时收益率

随着证券市场规模的扩大和机构投资者的增多,加上市场格局的变化,国债在证券市场中的地位和作用逐渐提高,许多投资者逐渐把目光转向国债市场。国债实时收益率是反映市场利率变化和衡量国债投资价值的重要指标,但是许多投资者对附息国债的实时收益率计算却无从下手。本文将介绍利用牛顿迭代法计算附息国债的实时收益率。

4.1附息国债实时收益率的理论计算公式

附息国债实时收益率也就是附息国债的内含收益率(或内部收益率,IRR ),内含收益率以下面的公式为基础计算10:

Pbc1ywc1yw1c1yw2c1ywn1M1ywn1. (5)

式中:y:附息国债实时收益率(内含收益率);w:交易结算日至下一利息支付日的天数以上一利息支付日(LIPD)至下一利息支付日(NIPD)之间的天数,即:

w交易结算日至下一利息支付日的天数.

365天(366天)c:每次支付的利息额;n:剩余的利息支付次数;Pb:交易结算日的市场价格(全价,即:净价+累积利息)。

4.2附息国债实时收益率的实际计算方法

下面以696券(696券于1996年6月14日发行,10年期,票面年利率为11. 83%,附息国债)为例,介绍附息国债实时收益率的具体计算方法。设1997年6月14日之前的某一天购入696券的价格为P0,每百元每年的实时收益率为x,离第一次发放利息(1997年6月14日)的时间为t(年数),则:

.

精品文档

发行一年后的除权价:p1p0(1x)t11.83

发行二年后的除权价:p2p1(1x)11.83

发行九年后的除权价:p9p8(1x)11.83

最后一年的到期本息为:100p9(1x)11.83 上面一共10个方程可决定10个未知数:p0,p1, p2, 消去p1, p2,

, p9得到

, p9,将以上10个方程整理,

p011.831xt11.831x1t11.831x2t11.831x9t1001x9t.

从以上例子可以看出,设距离兑付期为n年(取整数)的附息国债到期本金为M,每年票面利息为:,购入价格为P0的国债的到期收益率为x,那么:

p0i0nc1xitM1xnt.

此方程式中已知购入价格P0,每年票面利息为c,到期本金M,剩余年数取整为n(注:这里的n和(5)式中的n有区别),t为当前交易日至下一附息日的天数除以上一次利息支付日至下次利息支付日的天数,即t为当前日至下一个利息支付日的年数。

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

4.3利用牛顿迭代法计算

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

给定方程f(x) =0。以及根的初始近似值x0,并假设函数f (x)在x0的邻域内导数存在。设x0x是方程f(x) =0。的根,即fx0xf()0成立,将其在x0处按泰勒公式展开得:

x2f(x0)xf(x0)''2!f(x0)''略去含x2及以后各项得近似等式:f(x0)xf(x0)0

0.

.

精品文档

因而得x的近似表达式:xf(x0) f'(x0)f(x0) 'f(x0)以x作为初始近似根x0的改正值得:x1x0xx0重复应用以上做法可得:

xn1xn此即为牛顿迭代公式。 对于方程:p0f(xn)(n0,1,2,). 'f(xn)i0nc1xitM1xnt,设y=1+x,整理得:

p0yntcyncyn1设:f(y)p0yntcyncyn1cy2cyMc0.

cy2cyMc

2cyc

则:f'(y)(nt)p0ynt1ncyn1(n1)cyn2应用牛顿迭代公式:yn1ynf(yn),选取误差wc,y的初始近似值为y0,有: f'(yn)y1y0f(y0). 'f(y0)若y1y0wc,则停止迭代,取yy1,否则继续迭代

y2y1f(y1). 'f(y1)

对于ynyn1f(yn1)f(yn)yy,如果则继续,否则停止迭代,得yywn1nnn1cf'(yn1)f'(yn)到方程的根yyn1,国债收益率xy1。

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

程序编写如下(C语言) #include #include

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\}

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;ify=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)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.

.

精品文档

[14] Kup-Sze Cho,i Hanqiu Sun. Pheng-AnnHeng and Jun Zou De2formable simulation using

force propagationmodelwith finite element optimization[J]. Computers& Graphics, 2004, 28(4): 559-568

[15] WuWenTsun.Mathematics and Mechanization[M].Beijing:Science Press ,2000.

.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务