数值分析-非线性方程数值解法


一、方程求根与二分法

1.引言

考虑单变量非线性方程 f ( x ) = 0 f(x)=0 f(x)=0的求根问题,其中 x ∈ R , f ( x ) ∈ C [ a , b ] x\in R,f(x)\in C[a,b] xRf(x)C[a,b]
非线性方程分两类:
1.代数方程
a 0 x n + a 1 x n − 1 + . . . + a n − 1 x + a n = 0 a_0x^n+a_1x^{n-1}+...+a_{n-1}x+a_n=0 a0xn+a1xn1+...+an1x+an=0
其中 a 0 ≠ 0 , a i ∈ R ( i = 0 , 1 , . . . , n ) . 如 : x 3 − x − 1 = 0 a_0\not= 0,a_i\in R(i=0,1,...,n).如:x^3-x-1=0 a0=0aiR(i=0,1,...,n).x3x1=0
2.超越方程,如: x − e − x = 0 x-e^{-x}=0 xex=0
如果 f ( x ) f(x) f(x)可以分解为 f ( x ) = ( x − x ∗ ) m g ( x ) f(x)=(x-x^*)^mg(x) f(x)=(xx)mg(x),其中 0 < ∣ g ( x ) ∣ < ∞ 0<\lvert g(x) \rvert<\infty 0<g(x)<, m m m为正整数,则称 x ∗ x^* x f ( x ) f(x) f(x) m m m重零点
此时 f ( x ∗ ) = f ′ ( x ∗ ) = . . . = f ( m − 1 ) ( x ∗ ) = 0 , f ( m ) ( x ∗ ) ≠ 0 f(x^*)=f^{'}(x^*)=...=f^{(m-1)}(x^*)=0,f^{(m)}(x^*)\not=0 f(x)=f(x)=...=f(m1)(x)=0f(m)(x)=0

2.二分法

f ( x ) f(x) f(x)在单调的情况下,在有根区间 [ a , b ] [a,b] [a,b]
判断: f ( a ) ⋅ f ( b ) < 0 f(a)\cdot f(b)<0 f(a)f(b)<0,取 x 0 = ( a + b ) / 2 x_0=(a+b)/2 x0=(a+b)/2假如 f ( x 0 ) f(x_0) f(x0) f ( x ) f(x) f(x)的零点,那么输出 x 0 x_0 x0,停止,假若不然
f ( a ) ⋅ f ( x 0 ) < 0 f(a)\cdot f(x_0)<0 f(a)f(x0)<0,则 a 1 = a , b 1 = x 0 , x 1 = ( a 1 + b 1 ) / 2 a_1=a,b1=x_0,x_1=(a_1+b_1)/2 a1=a,b1=x0,x1=(a1+b1)/2
否则 f ( b ) ⋅ f ( x 0 ) < 0 f(b)\cdot f(x_0)<0 f(b)f(x0)<0, a 1 = x 0 , b 1 = b , x 1 = ( a 1 + b 1 ) / 2 a_1=x_0,b_1=b,x_1=(a_1+b_1)/2 a1=x0b1=b,x1=(a1+b1)/2
判断:…

特点:必然收敛, x k = ( a k + b k ) / 2 → x ∗ x_k=(a_k+b_k)/2\rightarrow x^* xk=(ak+bk)/2x,速度慢

二、迭代法

1.不动点迭代

将非线性方程 f ( x ) = 0 f(x)=0 f(x)=0化为等式 x = φ ( x ) x=\varphi (x) x=φ(x)
f ( x ∗ ) = 0 ⇔ x ∗ = φ ( x ∗ ) f(x^*)=0\Leftrightarrow x^*=\varphi (x^*) f(x)=0x=φ(x)
则称 x ∗ x^* x为函数 φ ( x ) \varphi (x) φ(x)的一个不动点
步骤:给定初始近似值 x 0 x_0 x0,可以得到 x 1 = φ ( x 0 ) x_1=\varphi (x_0) x1=φ(x0)
如此反复,构造迭代公式 x k + 1 = φ ( x k ) , k = 0 , 1 , 2... x_{k+1}=\varphi (x_k),k=0,1,2... xk+1=φ(xk)k=0,1,2... φ ( x ) \varphi (x) φ(x)为迭代函数

2.不动点的存在性和迭代法的收敛性

定理一
φ ( x ) ∈ C [ a , b ] , \varphi (x)\in C[a,b], φ(x)C[a,b]并且
(1) ∀ x ∈ [ a , b ] \forall x \in[a,b] x[a,b],都有 φ ( x ) ∈ [ a , b ] \varphi (x) \in[a,b] φ(x)[a,b]
(2) ∃ 0 ≤ L ≤ 1 \exists 0 \leq L\leq 1 0L1,使得 ∀ x , y ∈ [ a , b ] \forall x ,y \in[a,b] x,y[a,b],都有 ∣ φ ( x ) − φ ( y ) ∣ ≤ ∣ x − y ∣ \lvert \varphi (x)-\varphi (y) \rvert \leq \lvert x-y \rvert φ(x)φ(y)xy,那么 φ ( x ) \varphi (x) φ(x) [ a , b ] [a,b] [a,b]上存在唯一的不动点
定理二
由迭代得到的迭代序列 { x k } \lbrace x_k\rbrace {xk}
∣ x k + 1 − x k ∣ ≤ L ∣ x k − x k − 1 ∣ \lvert x_{k+1}-x_k \rvert \leq L \lvert x_{k}-x_{k-1} \rvert xk+1xkLxkxk1
∣ x k − x ∗ ∣ ≤ 1 1 − L ∣ x k + 1 − x k ∣ \lvert x_k-x^* \rvert \leq \frac{1}{1-L} \lvert x_{k+1}-x_k \rvert xkx1L1xk+1xk
误差估计:
∣ x k − x ∗ ∣ ≤ L k 1 − L ∣ x 1 − x 0 ∣ \lvert x_k-x^* \rvert \leq \frac{L^k}{1-L} \lvert x_1-x_0 \rvert xkx1LLkx1x0
推论
φ ( x ) ∈ C 1 [ a , b ] , \varphi (x)\in C^1[a,b], φ(x)C1[a,b]并且
(1) ∀ x ∈ [ a , b ] \forall x \in[a,b] x[a,b],都有 φ ( x ) ∈ [ a , b ] \varphi (x) \in[a,b] φ(x)[a,b]
(2) ∃ 0 ≤ L ≤ 1 \exists 0 \leq L\leq 1 0L1,使得 ∀ x ∈ [ a , b ] \forall x \in[a,b] x[a,b],都有 φ ′ ( x ) ≤ L < 1 \varphi ^{'}(x) \leq L<1 φ(x)L<1 ,那么
1)方程 f ( x ) = 0 f(x)=0 f(x)=0 [ a , b ] [a,b] [a,b]上有唯一的根 x ∗ x^* x
2)对于任意初值 x 0 ∈ [ a , b ] x_0 \in[a,b] x0[a,b],迭代序列均收敛于 x ∗ x^* x
3)满足以上误差估计
定理三
只在不动点 x ∗ x^* x附近考察收敛性,称为局部收敛性。
x ∗ x^* x φ ( x ) \varphi (x) φ(x)的不动点, φ ′ ( x ) \varphi ^{'}(x) φ(x)在x的某个领域内连续,且 ∣ φ ′ ( x ∗ ) ∣ < 1 \lvert \varphi ^{'}(x^*) \rvert <1 φ(x)<1 ,那么d迭代法局部收敛
定理四
x k + 1 = φ ( x k ) x_{k+1}=\varphi (x_k) xk+1=φ(xk)收敛于 x ∗ x^* x,设误差 e k = x k − x ∗ e_k=x_k-x^* ek=xkx,若 lim ⁡ k → ∞ e k + 1 e k p = C \lim_{k \to \infty}\frac{e_{k+1}}{e^p_k}=C limkekpek+1=C,C是不等于0的常数,则称迭代过程为p阶收敛。
如果迭代函数 φ ( x ) \varphi (x) φ(x) x = φ ( x ) x=\varphi (x) x=φ(x)的根 x ∗ x^* x邻近具有p阶连续导数并且 φ ′ ( x ∗ ) = φ ′ ′ ( x ∗ ) = . . . = φ ( p − 1 ) ( x ∗ ) = 0 , φ p ( x ∗ ) ≠ 0 \varphi ^{'}(x^*)=\varphi ^{''}(x^*)=...=\varphi ^{(p-1)}(x^*)=0,\varphi ^{p}(x^*)\not=0 φ(x)=φ(x)=...=φ(p1)(x)=0φp(x)=0,那么迭代过程在 x ∗ x^* x附近是p阶收敛的( φ ( x k ) \varphi (x_k) φ(xk)泰勒展开式可证)

三、迭代收敛的加速方法

1.埃特金加速收敛方法

已知
x 1 − x ∗ = φ ( x 0 ) − φ ( x ∗ ) x_1-x^*=\varphi (x_0)-\varphi (x^*) x1x=φ(x0)φ(x)
x 2 − x ∗ = φ ( x 1 ) − φ ( x ∗ ) x_2-x^*=\varphi (x_1)-\varphi (x^*) x2x=φ(x1)φ(x)
φ ′ ( x ) \varphi^{'} (x) φ(x)变化不大, φ ′ ( x ) ≈ L \varphi^{'} (x)\approx L φ(x)L,则
x 1 − x ∗ = φ ( x 0 ) − φ ( x ∗ ) ≈ L ( x 0 − x ∗ ) x_1-x^*=\varphi (x_0)-\varphi (x^*)\approx L(x_0-x^*) x1x=φ(x0)φ(x)L(x0x) (1)
x 2 − x ∗ = φ ( x 1 ) − φ ( x ∗ ) ≈ L ( x 1 − x ∗ ) x_2-x^*=\varphi (x_1)-\varphi (x^*)\approx L(x_1-x^*) x2x=φ(x1)φ(x)L(x1x) (2)
由(1)(2)消去L得
x 1 − x ∗ x 2 − x ∗ ≈ x 0 − x ∗ x 1 − x ∗ \frac{x_1-x^*}{x_2-x^*}\approx \frac{x_0-x^*}{x_1-x^*} x2xx1xx1xx0x可得 x ∗ x^* x的表达式
x ∗ ≈ x 0 x 2 − x 1 2 x 2 − 2 x 1 + x 0 = x 0 − ( x 1 − x 0 ) 2 x 0 − 2 x 1 + x 2 x^*\approx \frac{x_0x_2-x^2_1}{x_2-2x_1+x_0}=x_0- \frac{(x_{1}-x_{0})^2}{x_{0}-2x_{1}+x_{2}} xx22x1+x0x0x2x12=x0x02x1+x2(x1x0)2
转化为通式
x ˉ k + 1 = x k − ( x k + 1 − x k ) 2 x k − 2 x k + 1 + x k + 2 \bar{x}_{k+1}=x_k- \frac{(x_{k+1}-x_{k})^2}{x_{k}-2x_{k+1}+x_{k+2}} xˉk+1=xkxk2xk+1+xk+2(xk+1xk)2

2.斯特芬森迭代法

埃特金加速收敛方法是不管原序列 x k {x_k} xk是怎样产生的,对 x k {x_k} xk进行加速计算,得到 x ˉ k {\bar{x}_k} xˉk序列,斯特芬森迭代法将埃特金加速收敛方法和不动点迭代结合,得:
f ( n ) = { y k = φ ( x k ) , z k = φ ( y k ) x k + 1 = x k − ( y k − x k ) 2 z k − 2 y k + x k k = 0 , 1 , . . . , f(n) = \begin{cases} y_k=\varphi (x_k), z_k=\varphi (y_k)\\ x_{k+1}=x_k- \frac{(y_{k}-x_{k})^2}{z_{k}-2y_{k}+x_{k}}\\ \end{cases} k=0,1,..., f(n)={yk=φ(xk),zk=φ(yk)xk+1=xkzk2yk+xk(ykxk)2k=0,1,...,
将上式写为不动点迭代形式
x k + 1 = φ ( x k ) , k = 0 , 1 , . . . , x_{k+1}=\varphi (x_k),k=0,1,..., xk+1=φ(xk)k=0,1,...,
其中
ψ ( x ) = x − ( φ ( x ) − x ) 2 φ ( φ ( x ) ) − 2 φ ( x ) + x \psi(x)=x- \frac{(\varphi (x)-x)^2}{\varphi(\varphi (x))-2\varphi (x)+x} ψ(x)=xφ(φ(x))2φ(x)+x(φ(x)x)2
定理五
x ∗ x^* x ψ ( x ) \psi(x) ψ(x)函数的不动点,则 x ∗ x^* x φ ( x ) \varphi (x) φ(x)函数的不动点;反之若 x ∗ x^* x φ ( x ) \varphi (x) φ(x)函数的不动点,设 φ ′ ′ ( x ) \varphi ^{''}(x) φ(x)存在,且 φ ′ ( x ) ≠ 1 \varphi ^{'}(x)\not=1 φ(x)=1,则 x ∗ x^* x ψ ( x ) \psi(x) ψ(x)函数的不动点,且斯特芬森迭代法是二阶收敛的,粗略理解一下二阶收敛,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍
斯特芬森迭代法可以让不原本不收敛的迭代法可能收敛,例如 x k + 1 = x k 3 − 1 , φ ( x ) = x 3 − 1 x_{k+1}=x_k^{3}-1,\varphi (x)=x^3-1 xk+1=xk31φ(x)=x31

四、牛顿法

1.牛顿法及其收敛性

思想:将非线性方程 f ( x ) = 0 f(x)=0 f(x)=0逐步归结为某种线性方程来求解
设已知方程的近似根 x k x_k xk(假定 f ′ ( x ) ≠ 0 f^{'}(x)\not=0 f(x)=0),将函数 f ( x ) f(x) f(x)在点 x k x_k xk展开,有
f ( x ) ≈ f ( x k ) + f ′ ( x k ) ( x − x k ) f(x)\approx f(x_k)+f^{'}(x_k)(x-x_k) f(x)f(xk)+f(xk)(xxk)
于是方程可以近似的表示为
f ( x k ) + f ′ ( x k ) ( x − x k ) = 0 f(x_k)+f^{'}(x_k)(x-x_k)=0 f(xk)+f(xk)(xxk)=0
方程变为了线性格式,将方程修改为迭代格式
x k + 1 = x k − f ( x k ) f ′ ( x k ) , k = 0 , 1 , 2... , x_{k+1}=x_{k}- \frac{f(x_k)}{f^{'}(x_k)},k=0,1,2..., xk+1=xkf(xk)f(xk)k=0,1,2...,
x = φ ( x ) x=\varphi (x) x=φ(x)其中, φ ( x ) = x − f ( x k ) f ′ ( x k ) \varphi (x)=x- \frac{f(x_k)}{f^{'}(x_k)} φ(x)=xf(xk)f(xk)
假定 x ∗ 是 f ( x ) x^*是f(x) xf(x)的一个单根,即 f ( x ∗ ) = 0 f(x^*)=0 f(x)=0 f ′ ( x ∗ ) ≠ 0 , f ′ ′ ( x ∗ ) ≠ 0 f^{'}(x^*)\not=0,f^{''}(x^*)\not=0 f(x)=0f(x)=0 φ ′ ( x ∗ ) = 0 , φ ′ ′ ( x ∗ ) ≠ 0 \varphi ^{'}(x^*)=0,\varphi ^{''}(x^*)\not=0 φ(x)=0φ(x)=0,由定理四可得牛顿法在根邻近是平方收敛。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值