计算方法:非线性方程和方程组的数值解法(第一部分)

非线性方程的单根、重根:

           \,\,\,\,\,\,\,\,\,\, 给定非线性方程 f ( x ) = 0 f(x)=0 f(x)=0:

  • 设有正整数 m 使得 f ( x ) = ( x − a ) m g ( x ) f(x)=(x-a)^mg(x) f(x)=(xa)mg(x) g ( a ) ≠ 0 g(a) \neq0 g(a)=0,则当 m≥2 时,称 α 为 f ( x ) = 0 f(x)=0 f(x)=0的 m重根;当 m =1 时,称 α 为 f ( x ) = 0 f(x)=0 f(x)=0的单根。
  • 若 α 为 f ( x ) = 0 f(x)=0 f(x)=0的 m重根的充要条件: f ( a ) = f ′ ( a ) = . . . = f m − 1 ( a ) = 0 , f m ( a ) ≠ 0 f(a)=f'(a)=...=f^{m-1}(a)=0,f^m(a)\neq 0 f(a)=f(a)=...=fm1(a)=0fm(a)=0

数值方法解非线性方程的根:

  • 二分法
  • 迭代法:
    • 单点迭代法(不动点迭代, Newton 迭代法等)
    • 多点迭代法(弦截法等)

(一)迭代法的基本理论:

           \,\,\,\,\,\,\,\,\,\, 迭代法是一种逐次逼近的方法,它的基本思想是通过构造一个递推关系式 迭代格式 ) ,计算出根的近似值序列 并要求该序列收敛于方程的根。

  • (一)单点迭代法的基本形式:(以Picard不动点迭代法为例)
               \,\,\,\,\,\,\,\,\,\, 1.建立迭代公式:将方程f(x)=0改写成等价形式x=φ(x),进而得 x k + 1 = φ ( x k ) x_{k+1}=φ(x_k) xk+1=φ(xk)
               \,\,\,\,\,\,\,\,\,\, 2.判断迭代序列是否收敛:由迭代公式 x k + 1 = φ ( x k ) x_{k+1}=φ(x_k) xk+1=φ(xk)可得序列 { x k } k = 0 ∞ \{x_k\}^\infty_{k=0} {xk}k=0。需要首先判断该序列是否收敛,即是否存在α使得 lim ⁡ k − > ∞ x k = α \lim \limits_{k->\infty} x_k=α k>limxk=α
               \,\,\,\,\,\,\,\,\,\, 3.求出根的数值解:因为有 x k + 1 = φ ( x k ) x_{k+1}=φ(x_k) xk+1=φ(xk),则方程两边同时对k趋近于无穷取极限,有 lim ⁡ k − > ∞ x k = α \lim \limits_{k->\infty} x_k=α k>limxk=α,而且 lim ⁡ k − > ∞ φ ( x k ) = φ ( α ) \lim\limits_{k->\infty} φ(x_k)=φ(α) k>limφ(xk)=φ(α)。进而可知α满足等式x=φ(x),从而α是迭代函数φ(x)的不动点(不断迭代的过程中,函数值在此处保持不动)。因此α也是方程f(x)=0的一个根。
  • (二)多点迭代法的基本形式
               \,\,\,\,\,\,\,\,\,\, 建立迭代公式时,迭代函数是一个n元函数。即 x k + 1 = φ ( x k , x k − 1 , x k − 2 , . . . , x k − n + 1 ) x_{k+1}=φ(x_k,x_{k-1},x_{k-2},...,x_{k-n+1}) xk+1=φ(xk,xk1,xk2,...,xkn+1)。其余与单点迭代法相似。
  • (三)迭代法的主要性能指标
    • 1.收敛
      • 全局收敛性:设α为 f ( x ) = 0 f(x)=0 f(x)=0的根,如果 ∀ x 0 ∈ [ a , b ] , [ a , b ] 是 f ( x ) 的 定 义 域 , x 0 是 迭 代 法 的 初 始 值 \forall x_0\in[a,b],[a,b]是f(x)的定义域,x_0是迭代法的初始值 x0[a,b][a,b]f(x)x0,由迭代法产生的序列都收敛于根α则称该迭代法是全局收敛的。
      • 局部收敛性: 设α为 f ( x ) = 0 f(x)=0 f(x)=0的根 , 如果存在α 的某个邻域Δ:|x-α|≤δ,对任意初值 x 0 x_0 x0迭代过程中所产生的序列均收敛于根 α ,则称该迭代法是局部收敛的。
    • 2.收敛速度
                 \,\,\,\,\,\,\,\,\,\, 设由迭代公式 x k + 1 = φ ( x k ) x_{k+1}=φ(x_k) xk+1=φ(xk)得到的序列 { x k } k = 0 ∞ \{x_k\}^\infty_{k=0} {xk}k=0收敛于根α,记 e k = α − x k e_k=α-x_k ek=αxk,则若有 lim ⁡ k − > ∞ ∣ e k + 1 ∣ ∣ e k ∣ p = C ≠ 0 , ( p > 0 ) \lim\limits_{k->\infty} \frac{|e_{k +1}|}{|e_k|^p}=C\neq0,(p>0) k>limekpek+1=C=0(p>0),称该迭代过程是p阶收敛的(特别地,当p=1时,C要<1才能收敛)。
                 \,\,\,\,\,\,\,\,\,\, p值越大,收敛的速度越快。且一般称p=1为线性收敛;p=2为平方收敛;p>1也统称为超线性收敛。
    • 3.计算效率
                 \,\,\,\,\,\,\,\,\,\, 使用收敛阶p,定义计算效率。EI= p 1 θ p^{\frac{1}{\theta}} pθ1为计算效率的表达式。p 表示迭代的收敛阶,θ表示每步迭代的计算量。EI越大,计算效率越高。

(二)不动点迭代法:

  • 不动点迭代法的全局收敛性质:
    • 定理:
                 \,\,\,\,\,\,\,\,\,\, 使用不动点迭代法 x k + 1 = φ ( x k ) x_{k+1}=φ(x_k) xk+1=φ(xk) f ( x ) = 0 f(x)=0 f(x)=0的根。如果迭代函数φ(x)在其定义域[a,b]上满足φ(x) ∈ \in [a,b]。而且满足 ∀ x 1 , x 2 ∈ [ a , b ] ; ∃ L < 1 : ∣ φ ( x 1 ) − φ ( x 2 ) ∣ ∣ x 1 − x 2 ∣ ≤ L , ( x 1 ≠ x 2 ) \forall x_1,x_2\in[a,b];\exist L<1:\frac{|φ(x_1)-φ(x_2)|}{|x_1-x_2|}≤L,(x_1\neq x_2) x1,x2[a,b];L<1:x1x2φ(x1)φ(x2)L,(x1=x2)。那么 { x k } k = 0 ∞ \{x_k\}^{\infty}_{k=0} {xk}k=0就对于任意选定的迭代初始值 x 0 x_0 x0,全局收敛到 f ( x ) = 0 f(x)=0 f(x)=0唯一根α。
    • 证明:
                 \,\,\,\,\,\,\,\,\,\, 首先证明序列 { x k } k = 0 ∞ \{x_k\}^{\infty}_{k=0} {xk}k=0全局收敛到 f ( x ) = 0 f(x)=0 f(x)=0的根α。不妨设 e k = ∣ x k − α ∣ e_k=|x_k-\alpha| ek=xkα。因为 φ ( α ) = α \varphi(\alpha)=\alpha φ(α)=α,从而有 e k = ∣ x k − α ∣ = ∣ φ ( x k − 1 ) − φ ( α ) ∣ e_k=|x_k-\alpha|=|\varphi(x_{k-1})-\varphi(\alpha)| ek=xkα=φ(xk1)φ(α).又因为根据已知的条件 ∣ φ ( x k − 1 ) − φ ( α ) ∣ < ∣ x k − 1 − α ∣ |φ(x_{k-1})-φ(\alpha)|<|x_{k-1}-\alpha| φ(xk1)φ(α)<xk1α。从而就有 e k < e k − 1 e_kek<ek1对于任意k都满足该关系。因为 e k e_k ek是严格单调递减的非负序列,因此它必将收敛到0。
                 \,\,\,\,\,\,\,\,\,\, 再证明根的唯一性:使用反证法,假设有两个不相等的根 α 1 , α 2 \alpha_1 ,\alpha_2 α1,α2满足等式 φ ( x ) = x \varphi(x)=x φ(x)=x。那么根据定理的条件,就一定有 ∣ φ ( α 1 ) − φ ( α 2 ) ∣ < ∣ α 1 − α 2 ∣ |\varphi(\alpha_1)-\varphi(\alpha_2)|<|\alpha_1-\alpha_2| φ(α1)φ(α2)<α1α2。于是得出矛盾,因而证得根的唯一性。
    • 补充:(k次迭代后的误差分析)
                 \,\,\,\,\,\,\,\,\,\, 不妨设误差 δ k = ∣ x k − x k − 1 ∣ \delta_k=|x_k-x_{k-1}| δk=xkxk1。因为根据已知的条件 ∣ φ ( x k − 1 ) − φ ( x k − 2 ) ∣ ≤ L ∣ x k − 1 − x ∗ k − 2 ∣ |φ(x_{k-1})-φ(x_{k-2})|\leq L|x_{k-1}-x_{*k-2}| φ(xk1)φ(xk2)Lxk1xk2。则有 δ k ≤ L ( e k − 1 ) \delta_k \leq L(e_{k-1}) δkL(ek1)
                 \,\,\,\,\,\,\,\,\,\, 那么,设p是一个正整数, ∣ x k + p − x k ∣ = ∣ x k + p − x k + p − 1 ∣ + ∣ x k + p − 1 − x k + p − 2 ∣ + . . . + ∣ x k + 1 − x k ∣ = ∑ i = k + 1 k + p δ i = ( L p + L p − 1 + . . . + L ) δ k |x_{k+p}-x_{k}|=|x_{k+p}-x_{k+p-1}|+|x_{k+p-1}-x_{k+p-2}|+...+|x_{k+1}-x_{k}|=\sum\limits_{i=k+1}^{k+p}\delta_i=(L^p+L^{p-1}+...+L)\delta_k xk+pxk=xk+pxk+p1+xk+p1xk+p2+...+xk+1xk=i=k+1k+pδi=(Lp+Lp1+...+L)δk。进而根据等比序列的求和公式,有 ∣ x k + p − x k − 1 ∣ = L − L p + 1 1 − L δ k |x_{k+p}-x_{k-1}|=\frac{L-L^{p+1}}{1-L}\delta_k xk+pxk1=1LLLp+1δk
                 \,\,\,\,\,\,\,\,\,\, 对p取极限,就有 lim ⁡ p − > ∞ ∣ x k + p − x k ∣ = L 1 − L δ k = ∣ α − x k ∣ = L k 1 − L ∣ x 1 − x 0 ∣ \lim\limits_{p->\infty}|x_{k+p}-x_{k}|=\frac{L}{1-L}\delta_k=|\alpha-x_k|=\frac{L^k}{1-L}|x_1-x_0| p>limxk+pxk=1LLδk=αxk=1LLkx1x0
  • 不动点迭代法的局部收敛性质:
    • 定理:
                 \,\,\,\,\,\,\,\,\,\, 不动点迭代法 x k + 1 = φ ( x k ) x_{k+1}=φ(x_k) xk+1=φ(xk)在函数 f ( x ) = 0 f(x)=0 f(x)=0的根α的邻域是p阶收敛的冲要条件是:迭代函数φ(x)在α的邻域上有着充分阶连续的导数使得 φ ′ ( α ) = 0 , φ ′ ′ ( α ) = 0 , . . . , φ p − 1 ( α ) = 0 ; φ p ( α ) ≠ 0 \varphi'(\alpha)=0,\varphi''(\alpha)=0,...,\varphi^{p-1}(\alpha)=0;\varphi^p(\alpha)\neq0 φ(α)=0,φ(α)=0,...,φp1(α)=0;φp(α)=0
    • 证明:
                 \,\,\,\,\,\,\,\,\,\, 先证明条件的充分性:因为要证明迭代法在函数 f ( x ) = 0 f(x)=0 f(x)=0的根α的邻域是p阶收敛。就是要证明 lim ⁡ k − > ∞ ∣ α − x k + 1 ∣ ∣ α − x k ∣ p = C ≠ 0 \lim\limits_{k->\infty}\frac{|\alpha-x_{k+1}|}{|\alpha-x_k|^p}=C\neq0 k>limαxkpαxk+1=C=0。因为迭代函数φ(x)在α的邻域上有着充分阶连续的导数,则可以在x=α处写出迭代函数φ(x)的带有佩亚诺余项的泰勒展开式: x k + 1 = φ ( x k ) = φ ( α ) + φ ′ ( α ) 1 ! ( x k − α ) + φ ′ ′ ( α ) 2 ! ( x k − α ) 2 + . . . + φ p − 1 ( α ) ( p − 1 ) ! ( x k − α ) p − 1 + φ p ( α ) ( p ) ! ( x k − α ) p + o [ ( x k − α ) p ] x_{k+1}=\varphi(x_k)=\varphi(\alpha)+\frac{\varphi'(\alpha)}{1!}(x_k-\alpha)+\frac{\varphi''(\alpha)}{2!}(x_k-\alpha)^2+...+\frac{\varphi^{p-1}(\alpha)}{(p-1)!}(x_k-\alpha)^{p-1}+\frac{\varphi^{p}(\alpha)}{(p)!}(x_k-\alpha)^{p}+o[(x_k-\alpha)^p] xk+1=φ(xk)=φ(α)+1!φ(α)(xkα)+2!φ(α)(xkα)2+...+(p1)!φp1(α)(xkα)p1+(p)!φp(α)(xkα)p+o[(xkα)p]。而因为函数φ(x)的前p-1阶导数都是0,可得: lim ⁡ k − > ∞ ∣ α − x k + 1 ∣ ∣ α − x k ∣ p = φ p ( α ) ( p ) ! ≠ 0 \lim\limits_{k->\infty}\frac{|\alpha-x_{k+1}|}{|\alpha-x_k|^p}=\frac{\varphi^{p}(\alpha)}{(p)!}\neq0 k>limαxkpαxk+1=(p)!φp(α)=0。进而可知迭代函数在α邻域上是p阶收敛的。
                 \,\,\,\,\,\,\,\,\,\, 再证明条件的必要性:因为 lim ⁡ k − > ∞ ∣ α − x k + 1 ∣ ∣ α − x k ∣ p = C ≠ 0 \lim\limits_{k->\infty}\frac{|\alpha-x_{k+1}|}{|\alpha-x_k|^p}=C\neq0 k>limαxkpαxk+1=C=0,因为k趋近于无穷的极限过程亦即 x k x_k xk趋近α的过程,从而有 ( ∣ φ ( α ) − φ ( x k ) ∣ = ∣ α − x k + 1 ∣ = C ( ∣ α − x k ∣ p ) + o [ ∣ α − x k ∣ p ] (|\varphi(\alpha)-\varphi(x_k)|=|\alpha-x_{k+1}|=C(|\alpha-x_k|^p)+o[|\alpha-x_k|^{p}] (φ(α)φ(xk)=αxk+1=C(αxkp)+o[αxkp]。进而有 φ ( x k ) = ± φ ( α ) + C ( ∣ α − x k ∣ p ) + o [ ∣ α − x k ∣ p ] ( α 邻 域 内 成 立 ) \varphi(x_k)=\pm \varphi(\alpha)+C(|\alpha-x_k|^p)+o[|\alpha-x_k|^{p}](\alpha邻域内成立) φ(xk)=±φ(α)+C(αxkp)+o[αxkp](α)。从而可以得到 φ ′ ( α ) = 0 , φ ′ ′ ( α ) = 0 , . . . , φ p − 1 ( α ) = 0 ; φ p ( α ) = C p ! ≠ 0 \varphi'(\alpha)=0,\varphi''(\alpha)=0,...,\varphi^{p-1}(\alpha)=0;\varphi^p(\alpha)=Cp!\neq0 φ(α)=0,φ(α)=0,...,φp1(α)=0;φp(α)=Cp!=0。(PS:必要性也可以通过反证法结合充分性进行证明。)

你可能感兴趣的:(计算方法基础)