计算方法大作业非线性方程求根的新方法

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

计算方法大作业

题目:非线性方程求根的新方法

班级:xxx

学号:xxx

姓名:xxx

非线性方程求根的新方法

一、问题引入

在计算和实际问题中经常遇到如下非线性问题的求解:

F(x)=0 (1)

我们经常采用的方法是经典迭代法:

经典迭代方法

不动点迭代方法是一种应用广泛的方法,其加速方法较多,如Stiffensen加速方法的局部收敛阶(以下简称为收敛阶)为2阶;牛顿迭代方法的收敛阶亦为2阶,且与其相联系的一些方法如简化牛顿法、牛顿下山法、弦截法的收敛阶阶数介于1和2之间;而密勒法的收敛阶与牛顿法接近,但计算量较大且涉及零点的选择问题,同时收敛阶也不够理想。

因此本文介绍一种新的迭代方法

从代数角度看,牛顿法和密勒法分别是将f(x)在xk附近近似为一线性函数和二次抛物插值函数,一种很自然的想法就是能否利用Taylor展开,将f(x)在xk附近近似为其他的二次函数?答案是肯定的.其中的一种方法是将f(x)在Xk处展开3项,此时收敛阶应高于牛顿法,这正是本文的出发点.

二、算法推导

设函数f(x)在xk附近具有二阶连续导数,则可将f(x)在xk处进行二阶Taylor展开,方程(1) 可近似为如下二次方程:

f(xk)+f’(xk)(x-xk)+2^(-1)f’’(xk)(x-xk)^2=0,(2)

2^(-1)f’’(xk)x^2+(f’(xk)-xkf’’(xk))x+2^(-1)f’’(xk)xk^2-xkf’(xk)+f(xk)=0(3)

利用求根公式可得

X=xk-(f’’(xk))^(-1)(f’(xk))-sqrt((f’(xk)^2±2f’’(xk)f(xk)))(4)

其中±符号的选取视具体问题而定,从而可构造迭代公式

X k+1=xk-(f’’(xk))^(-1)(f’(xk))-sqrt((f’(xk)^2±2f’’(xk)f(xk)))(5)

确定了根号前正负号的迭代公式(5),可称为基于牛顿法和Taylor展开的方法,简记为BNT 方法.

为描述方便起见,以下将f(xk),f’(xk),f’’(xk)分别记为f,f’,f’’.首先,二次方程(3)对应于一条抛物曲线,其开口方向由f’’(xk),x∈U(xk)的符号确定,其中U(xk)为xk的某邻域,其顶点为

P(xk-(f’’)^(-1)f’,fk-(2f’’)^(-1)(f’)^2).为使(5)式唯一确定x k+1,须讨论根式前正负号的取舍问题.下面从该方法的几何意义分析(5)式中正负号的取舍.

1)当f(xk)=o时,z。即为所求的根.

2)当f(xk)>O时,根据y=f(x)的如下4种不同情形(见图1)确定(5)式中根号前的符号.

(a)当f’’(xk)o时,“±”取为“一”;(b)当f’’(xk)

(c)当f’’(xk)>o,f(xk)>o时,“±”取为“一”;(d)当f’’(xk)>o,f(xk)

3)当f(xk)<0时,可类似得到:(a)当f’’(xk)o时,“±”取为“+”;(b)当

f’’(xk)o,f(xk)>o时,“±”取为“+”;(d)当f’’(xk)>o,f(xk)

至此,BNT方法的迭代公式完全确定.下面给出利用BNT方法求根的算法描述.

算法1

Step 1:取初始迭代值z。,给出最大迭代次数N和精度£,并令累计迭代次数k=0.

Step 2:k=k+1.

Step 3:若f’’(xk)=0,则此时f(x)可近似为线性函数,采用牛顿法求之;否则计算△=

(f’(xk))^2—2f’’(xk)f(xk).

Step 4:判定△的符号,若△<0,则算法停止;否则利用(5)进行计算,得到x k+1.

Step 5:判定是否停止迭代,如果k>N或|x k+1-xk|≤£,则停止迭代;否则回到Step2.注:①当k>N时,非线性迭代不收敛,当Iz川一z。I≤£时,非线性迭代收敛;②当△<0时,该非线性方程在该区间不存在实根;③该方法可推广到非线性方程组的情形.

2.2局部收敛阶

类似于牛顿法,可将BNT方法视为一种不动点方法,则对应的迭代函数为

φx=x−(f′′(x))−1(f′(x)∓ f′x2−2f′′(x)f(x)_))(6)

利用迭代函数(6),通过计算与推导,可得BNT方法的局部收敛阶.

设f(x)∈c3[a,b],x为φx的不动点,BNT方法的局部收敛阶为3阶.

3 数值实验

为验证BNT方法的有效性,下面进行数值实验.

例:求方程f(x)=x3−x−1=0在区间[1,2]上的根.

首先,可构造两种不同的不动点迭代方法,分别为x k+1=(x k+1)1/3,x k+1=x k1/3−1,k=1,2,3,⋯,并简记为FPl,FP2.将BNT方法与FPl,FP2,FP2的Stenffensen加速、牛顿法和密勒法求根进行比较,数值实验中初始迭代值取x。=1.5,近似真解为x=1.324 7,结果如表l所示.由表1可知:

BNT方法的收敛速度最快,且较牛顿法快,从而验证了本文

方法的有效性.

相关文档
最新文档