数值分析(一)

基础知识

误差类型及传播

误差类型定义
绝对误差 e ( x ∗ ) = x ∗ − x e(x^*) = x^* - x e(x)=xx
绝对误差限 ∣ e ( x ∗ ) ∣ ≤ ε ( x ∗ ) \mid e(x^*)\mid \leq \varepsilon(x^*) e(x)∣≤ε(x)
相对误差$e_r(x^) = \cfrac{x^ - x}{x} $
相对误差限 ∣ e r ( x ∗ ) ∣ ≤ ε r ( x ∗ ) \mid e_r(x^*) \mid \leq \varepsilon_r(x^*) er(x)∣≤εr(x)
  • x x x的近似值 x ∗ x^* x有如下标准形式
    x ∗ = ± 1 0 m × 0. a 1 a 2 ⋯ a n ⋯ a p x^* = \pm 10^m \times 0.a_1a_2\cdots a_n\cdots a_p x=±10m×0.a1a2anap
    其中 m m m为整数, { a i } ∈ { 0 , 1 , 2 , ⋯   , 9 } \{a_i\} \in \{0,1,2,\cdots,9\} {ai}{0,1,2,,9} a 1 ≠ 0 , p ≥ n a_1 \neq 0,p \geq n a1=0,pn。如果 n n n满足
    ∣ e ∗ ∣ = ∣ x ∗ − x ∣ ≤ 1 2 × 1 0 m − n \mid e^* \mid = \mid x^* - x \mid \leq \frac12 \times 10^{m-n} e∣=∣xx∣≤21×10mn
    的最大正整数,则有效数字与相对误差的关系

    • x ∗ x^* x具有 n n n位有效数字,则(有省略,不要用)
      ∣ e r ∗ ∣ ≤ 1 2 a 1 × 1 0 1 − n \mid e_r^* \mid \leq \frac1{2a_1} \times 10^{1-n} er∣≤2a11×101n


    • ∣ e r ∗ ∣ ≤ 1 2 ( a 1 + 1 ) × 1 0 1 − n \mid e^*_r \mid \leq \frac1{2(a_1+1)} \times 10^{1-n} er∣≤2(a1+1)1×101n
      x ∗ x^* x至少具有 n n n位有效数字

    • 近似数的绝对误差限是末尾数位的一半

  • 数值运算的误差估计

    • 一元函数误差估计
      e ( y ∗ ) ≈ f ′ ( x ∗ ) e ( x ∗ ) e r ( y ∗ ) ≈ x ∗ f ′ ( x ∗ ) f ( x ∗ ) e r ( x ∗ ) \begin{aligned} &e(y^*) \approx f^\prime(x^*)e(x^*)\\ &e_r(y^*) \approx \cfrac{x^*f^\prime(x^*)}{f(x^*)}e_r(x^*) \end{aligned} e(y)f(x)e(x)er(y)f(x)xf(x)er(x)

    • 多元函数误差估计
      e ( y ∗ ) ≈ ∑ i = 1 n f i ′ ( x 1 ∗ , ⋯   , x n ∗ ) e ( x i ∗ ) e r ( y ∗ ) ≈ ∑ i = 1 n x i ∗ y ∗ f i ′ ( x 1 ∗ , ⋯   , x n ∗ ) e r ( x i ∗ ) \begin{aligned} &e(y^*) \approx \sum_{i=1}^n f^\prime_i(x_1^*,\cdots,x_n^*) e(x_i^*)\\ &e_r(y^*) \approx \sum_{i=1}^n \cfrac{x_i^*}{y^*} f^\prime_i(x_1^*,\cdots,x_n^*) e_r(x_i^*) \end{aligned} e(y)i=1nfi(x1,,xn)e(xi)er(y)i=1nyxifi(x1,,xn)er(xi)

    • 算术运算的误差估计
      ε ( x 1 ∗ ± x 2 ∗ ) ≈ ε ( x 1 ∗ ) + ε ( x 2 ∗ ) ε ( x 1 ∗ x 2 ∗ ) ≈ ∣ x 2 ∗ ∣ ε ( x 1 ∗ ) + ∣ x 1 ∣ ε ( x 2 ∗ ) ε ( x 1 ∗ x 2 ∗ ) ≈ ∣ x 2 ∗ ∣ ε ( x 1 ∗ ) + ∣ x 1 ∣ ε ( x 2 ∗ ) ∣ x 2 ∗ ∣ 2 \begin{aligned} &\varepsilon(x_1^* \pm x_2^*) \approx \varepsilon(x_1^*)+\varepsilon(x_2^*)\\ &\varepsilon(x_1^* x_2^*) \approx \mid x_2^* \mid\varepsilon(x_1^*) + \mid x_1\mid \varepsilon(x_2^*) \\ &\varepsilon\Big(\cfrac{x_1^*}{ x_2^*}\Big) \approx \frac{\mid x_2^* \mid\varepsilon(x_1^*) + \mid x_1\mid \varepsilon(x_2^*) }{\mid x_2^* \mid ^2} \end{aligned} ε(x1±x2)ε(x1)+ε(x2)ε(x1x2)≈∣x2ε(x1)+x1ε(x2)ε(x2x1)x22x2ε(x1)+x1ε(x2)

      ε r ( x 1 ∗ ± x 2 ∗ ) ≤ max ⁡ { ε r ( x 1 ∗ ) , ε r ( x 2 ∗ ) } ε r ( x 1 ∗ x 2 ∗ ) ≈ ε r ( x 1 ∗ ) + ε r ( x 2 ∗ ) ε r ( x 1 ∗ x 2 ∗ ) ≈ ε r ( x 1 ∗ ) + ε r ( x 2 ∗ ) \begin{aligned} &\varepsilon_r(x_1^* \pm x_2^*) \leq \max\{\varepsilon_r(x_1^*),\varepsilon_r(x_2^*)\}\\ &\varepsilon_r(x_1^* x_2^*) \approx \varepsilon_r(x_1^*) + \varepsilon_r(x_2^*) \\ &\varepsilon_r\Big(\cfrac{x_1^*}{ x_2^*}\Big) \approx \varepsilon_r(x_1^*)+ \varepsilon_r(x_2^*) \end{aligned} εr(x1±x2)max{εr(x1),εr(x2)}εr(x1x2)εr(x1)+εr(x2)εr(x2x1)εr(x1)+εr(x2)

误差定性分析及数值运算中的若干原则

病态问题与条件数

  • 病态问题:对一个数值问题,若由于问题本身而使计算结果绝对误差或相对误差的绝对值很大,这种问题称为绝对误差意义或相对意义下的病态问题

  • 条件数

    条件数较大,则表示自变量的微小扰动将引起函数值较大的变化

    • 绝对意义下计算函数值 f ( x ) f(x) f(x)的条件数: C o n d a ( f ) = ∣ f ′ ( x ) ∣ Cond_a(f) = \mid f^\prime (x) \mid Conda(f)=∣f(x)
    • 相对意义下计算函数值 f ( x ) f(x) f(x)的条件数: C o n d r ( f ) = ∣ x f ′ ( x ) f ( x ) ∣ Cond_r(f) = \mid x \cfrac{f^\prime(x)}{f(x)} \mid Condr(f)=∣xf(x)f(x)

算法的数值稳定性

一个算法,如果初始数据微小的误差仅使最终结果产生微小的误差,或在运算过程中舍入误差在一定条件下能够得到控制,则称该算法数值问题,否则不稳定

数值运算中若干原则

  • 避免大数吃掉小数
  • 避免用绝对值很小的数作除数
  • 避免两个相近数相减
  • 减小计算工作量

非线性方程求根

  • 如果有 α \alpha α使 f ( α ) = 0 f(\alpha) = 0 f(α)=0,则称 α \alpha α为方程 f ( x ) = 0 f(x)=0 f(x)=0的根或函数 f ( x ) f(x) f(x)的零点,如果函数 f ( x ) f(x) f(x)可分解为
    f ( x ) = ( x − α ) m g ( x ) f(x) = (x-\alpha)^m g(x) f(x)=(xα)mg(x)
    g ( α ) ≠ 0 g(\alpha) \neq 0 g(α)=0 m m m为正整数,则当 m = 1 m=1 m=1时,称 α \alpha α f ( x ) = 0 f(x)=0 f(x)=0的单根或 f ( x ) f(x) f(x)的单零点;当 m ≥ 2 m \geq 2 m2时,称 α \alpha α f ( x ) = 0 f(x)=0 f(x)=0 m m m重根或 f ( x ) f(x) f(x) m m m重零点
  • f ( x ) f(x) f(x) m m m阶连续导数,则 α \alpha α f ( x ) f(x) f(x) m m m重零点的充要条件为
    f ( α ) = 0 , f ′ ( α ) = 0 , ⋯   , f ( m − 1 ) ( α ) = 0 , f ( m ) ( α ) ≠ 0 f(\alpha)=0,f^\prime(\alpha) = 0,\cdots,f^{(m-1)}(\alpha) = 0,f^{(m)}(\alpha) \neq 0 f(α)=0,f(α)=0,,f(m1)(α)=0,f(m)(α)=0

二分法

α \alpha α为方程 f ( x ) = 0 f(x)=0 f(x)=0在区间 [ a , b ] [a,b] [a,b]内的唯一根,其中 f ( x ) f(x) f(x)为满足 f ( a ) f ( b ) < 0 f(a)f(b) < 0 f(a)f(b)<0的连续函数,则二分法计算过程中第 k k k个区间 [ a k , b k ] [a_k,b_k] [ak,bk]的中点 x k x_k xk满足不等式
∣ x k − α ∣ ≤ 1 2 ( b k − a k ) = 1 2 k ( b − a ) \mid x_k - \alpha \mid \leq \frac12 (b_k-a_k) = \frac1{2^k}(b-a) xkα∣≤21(bkak)=2k1(ba)
且二分法产生的序列 { x k } k = 1 ∞ \{x_k\}_{k=1}^\infty {xk}k=1收敛于 α \alpha α

不动点迭代的基本理论

f ( x ) = 0 f(x) = 0 f(x)=0改写为同解方程组 x = φ ( x ) x = \varphi(x) x=φ(x)的形式。如果 f ( α ) = 0 f(\alpha)=0 f(α)=0,则 α = φ ( α ) \alpha = \varphi(\alpha) α=φ(α),称 α \alpha α为函数 φ ( x ) \varphi(x) φ(x)的不动点,选取初始近似值 x 0 x_0 x0,并构造迭代格式
x k + 1 = φ ( x k ) x_{k+1} = \varphi(x_k) xk+1=φ(xk)
可产生序列 { x k } k = 0 ∞ \{x_k\}_{k=0}^\infty {xk}k=0,上述迭代式称为不动点迭代, φ ( x ) \varphi(x) φ(x)称为迭代函数。

  • 全局收敛性
    对于方程 x = φ ( x ) x = \varphi(x) x=φ(x),若 φ ′ ( x ) \varphi^\prime(x) φ(x) [ a , b ] [a,b] [a,b]上连续,且

    • 封闭性: x ∈ [ a , b ] , φ ( x ) ∈ [ a , b ] x \in [a,b], \varphi(x) \in [a,b] x[a,b],φ(x)[a,b]
    • 压缩性: ∃ L ∈ ( 0 , 1 ) , x ∈ [ a , b ] , ∣ φ ′ ( x ) ∣ ≤ L < 1 \exists L \in (0,1),x \in [a,b],\mid \varphi^\prime(x) \mid \leq L < 1 L(0,1),x[a,b],φ(x)∣≤L<1

    ⟹ \Longrightarrow

    • φ ( x ) \varphi(x) φ(x) [ a , b ] [a,b] [a,b]上有唯一的不动点 α \alpha α
    • ∀ x 0 ∈ [ a , b ] , x k + 1 = φ ( x k ) \forall x_0 \in [a,b],x_{k+1} = \varphi(x_k) x0[a,b],xk+1=φ(xk)收敛,且 lim ⁡ k → ∞ x k = α \lim_{k \rightarrow \infty} x_k =\alpha limkxk=α
    • 序列 { x k } k = 0 ∞ \{x_k\}_{k=0}^\infty {xk}k=0有误差估计式
      ∣ x k − α ∣ ≤ L 1 − L ∣ x k − x k − 1 ∣ (误差后验估计式) \mid x_k - \alpha \mid \leq \cfrac{L}{1-L} \mid x_k - x_{k-1} \mid \tag{误差后验估计式} xkα∣≤1LLxkxk1(误差后验估计式)
      ∣ x k − α ∣ ≤ L k 1 − L ∣ x 1 − x 0 ∣ (误差先验估计式) \mid x_k - \alpha \mid \leq \cfrac{L^k}{1-L} \mid x_1 - x_0 \mid \tag{误差先验估计式} xkα∣≤1LLkx1x0(误差先验估计式)
      lim ⁡ k → ∞ x k − α x k − 1 − α = φ ′ ( α ) (误差渐进表达式) \lim_{k \rightarrow \infty} \frac{x_k - \alpha}{x_{k-1}-\alpha} = \varphi^\prime(\alpha) \tag{误差渐进表达式} klimxk1αxkα=φ(α)(误差渐进表达式)
      设函数 φ ( x ) \varphi(x) φ(x)在区间 [ a , b ] [a,b] [a,b]内有不动点 α \alpha α,且当 x ∈ [ a , b ] x\in [a,b] x[a,b]时, ∣ φ ′ ( x ) ∣ ≥ 1 \mid \varphi^\prime (x) \mid \geq 1 φ(x)∣≥1,则对 ∀ x 0 ∈ [ a , b ] , x 0 ≠ α \forall x_0\in[a,b],x_0 \neq \alpha x0[a,b],x0=α,迭代格式 x k + 1 = φ ( x k ) x_{k+1} = \varphi(x_k) xk+1=φ(xk)发散
  • 局部收敛性
    设函数 φ ( x ) \varphi(x) φ(x)有不动点 α \alpha α,如果存在 α \alpha α的一个邻域 N ( α ) = [ α − σ , α + σ ] , σ > 0 N(\alpha) = [\alpha-\sigma,\alpha+\sigma],\sigma>0 N(α)=[ασ,α+σ],σ>0,使迭代格式 x k + 1 = φ ( x k ) x_{k+1} = \varphi(x_k) xk+1=φ(xk) ∀ x 0 ∈ N ( α ) \forall x_0 \in N(\alpha) x0N(α)均收敛,则称该迭代格式具有局部收敛性
    设函数 φ ( x ) \varphi(x) φ(x)有不动点 α \alpha α φ ′ ( x ) \varphi^\prime(x) φ(x) α \alpha α连续,则

    • ∣ φ ′ ( α ) ∣ < 1 ⇒ \mid \varphi^\prime(\alpha) \mid <1 \Rightarrow φ(α)∣<1迭代格式收敛
    • ∣ φ ′ ( α ) ∣ > 1 ⇒ \mid \varphi^\prime(\alpha) \mid >1 \Rightarrow φ(α)∣>1迭代格式发散
      设序列 { x k } k = 0 ∞ \{x_k\}_{k=0}^\infty {xk}k=0收敛到 α \alpha α。令 k k k次的迭代误差 e k = x k − α , x k ≠ α e_k=x_k-\alpha,x_k \neq \alpha ek=xkα,xk=α。如果存在实数 p ≥ 1 p\geq 1 p1及非零常数 c > 0 c>0 c>0,使得
      lim ⁡ k → ∞ ∣ e k + 1 ∣ ∣ e k ∣ p = c \lim_{k\rightarrow \infty}\frac{\mid e_{k+1} \mid }{\mid e_k \mid^p} = c klimekpek+1=c
      则称序列 { x k } k = 0 ∞ \{x_k\}_{k=0}^\infty {xk}k=0 p p p阶收敛
    • φ ( x ) \varphi(x) φ(x)在不动点 α \alpha α的领域内有 p p p阶连续导数,则当初值 x 0 x_0 x0取得充分靠近 α \alpha α时,迭代格式 x k + 1 = φ ( x k ) x_{k+1} = \varphi(x_k) xk+1=φ(xk) p p p阶收敛的充要条件是
      φ ( α ) = α , φ ′ ( α ) = φ ′ ′ ( α ) = ⋯ = φ ( p − 1 ) ( α ) = 0 , φ ( p ) ( α ) ≠ 0 \varphi(\alpha) = \alpha,\varphi^\prime(\alpha) = \varphi^{\prime \prime}(\alpha) = \cdots = \varphi^{(p-1)}(\alpha) = 0,\varphi^{(p)}(\alpha) \neq 0 φ(α)=α,φ(α)=φ′′(α)==φ(p1)(α)=0,φ(p)(α)=0
      且有
      lim ⁡ k → ∞ e k + 1 e k p = 1 p ! φ ( p ) ( α ) ≠ 0 \lim_{k\rightarrow \infty} \frac{e_{k+1}}{e_k^p} = \frac{1}{p!} \varphi^{(p)}(\alpha) \neq 0 klimekpek+1=p!1φ(p)(α)=0
      如果 p = 1 p=1 p=1时,要求 0 < ∣ φ ′ ( α ) ∣ < 1 0 < \mid \varphi^\prime (\alpha) \mid < 1 0<∣φ(α)∣<1

不动点迭代的加速

x k + 1 − α = φ ( x k ) − φ ( α ) = φ ′ ( ξ k ) ( x k − α ) , ξ k ∈ [ α , x k ] x k + 2 − α = φ ( x k + 1 ) − φ ( α ) = φ ′ ( ξ k + 1 ) ( x k + 1 − α ) , ξ k + 1 ∈ [ α , x k + 1 ] \begin{aligned} &x_{k+1} - \alpha = \varphi(x_k) - \varphi(\alpha) = \varphi^\prime(\xi_k) (x_k-\alpha) ,\xi_k \in [\alpha,x_k]\\ &x_{k+2} - \alpha = \varphi(x_{k+1}) - \varphi(\alpha) = \varphi^\prime(\xi_{k+1}) (x_{k+1}-\alpha) ,\xi_{k+1} \in [\alpha,x_{k+1}]\\ \end{aligned} xk+1α=φ(xk)φ(α)=φ(ξk)(xkα),ξk[α,xk]xk+2α=φ(xk+1)φ(α)=φ(ξk+1)(xk+1α),ξk+1[α,xk+1]
φ ′ ( ξ k ) ≈ φ ′ ( ξ k + 1 ) \varphi^\prime(\xi_k) \approx \varphi^\prime(\xi_{k+1}) φ(ξk)φ(ξk+1),则有
x k + 2 − α x k + 1 − α ≈ x k + 1 − α x k − α \frac{x_{k+2} - \alpha}{x_{k+1} - \alpha} \approx \frac{x_{k+1} - \alpha}{x_{k} - \alpha} xk+1αxk+2αxkαxk+1α
解出
x k + 1 = ψ ( x k ) = α ≈ x k − ( x k + 1 − x k ) 2 x k + 2 − 2 x k + 1 + x k = x k − [ φ ( x k ) − x k ] 2 φ ( φ ( x k ) ) − 2 φ ( x k ) + x k x_{k+1} = \psi(x_k) = \alpha \approx x_k - \frac{(x_{k+1}-x_k)^2}{x_{k+2}-2x_{k+1}+x_k} = x_k - \frac{[\varphi(x_k)-x_k]^2}{\varphi(\varphi(x_k))-2\varphi(x_k)+x_k} xk+1=ψ(xk)=αxkxk+22xk+1+xk(xk+1xk)2=xkφ(φ(xk))2φ(xk)+xk[φ(xk)xk]2
称其为 S t e f f e n s e n \rm Steffensen Steffensen迭代格式

  • ψ ( α ) = α ⇒ φ ( α ) = α \psi(\alpha) = \alpha \Rightarrow \varphi(\alpha) = \alpha ψ(α)=αφ(α)=α;反之$\varphi(\alpha) = \alpha ,且 ,且 ,且\varphi^\prime( x )$在 α \alpha α的邻域内连续, φ ′ ( α ) ≠ 1 \varphi^\prime(\alpha) \neq 1 φ(α)=1,则 ψ ( α ) = α \psi(\alpha) = \alpha ψ(α)=α
  • φ ( x ) \varphi(x) φ(x)在其不动点 α \alpha α的邻域内有二阶连续导数,且 φ ′ ( α ) = A ≠ 1 , ≠ 0 \varphi^\prime(\alpha)=A \neq 1,\neq 0 φ(α)=A=1,=0,则 S t e f f e n s e n \rm Steffensen Steffensen迭代局部收敛
  • φ ′ ′ ( α ) ≠ 0 \varphi^{\prime \prime}(\alpha) \neq 0 φ′′(α)=0,则 S t e f f e n s e n \rm Steffensen Steffensen迭代平方收敛;若 φ ′ ′ ( α ) = 0 \varphi^{\prime \prime}(\alpha) = 0 φ′′(α)=0,则 S t e f f e n s e n \rm Steffensen Steffensen迭代超平方收敛【可将线性收敛或不收敛的式子平方收敛】

Newton迭代

为了构造二阶收敛速度的迭代格式,令 φ ( x ) = x + h ( x ) f ( x ) \varphi(x) = x+ h(x)f(x) φ(x)=x+h(x)f(x),通过满足二阶收敛的条件求解设定函数。或者将原函数 f ( x ) f(x) f(x)进行泰勒展开,得到二阶收敛格式
φ ( x ) = x − f ( x ) f ′ ( x ) \varphi(x) = x - \frac{f(x)}{f^\prime(x)} φ(x)=xf(x)f(x)

  • 局部收敛性
    α \alpha α是方程 f ( x ) = 0 f(x)=0 f(x)=0的根, f ′ ( x ) f^\prime(x) f(x) α \alpha α的邻域内连续,则 Newton \text{Newton} Newton迭代局部收敛。且求单根时, Newton \text{Newton} Newton迭代至少二阶收敛;而求重根时, Newton \text{Newton} Newton迭代只有一阶收敛
    f ( x ) = ( x − α ) m g ( x ) , g ( α ) ≠ 0 f(x) = (x-\alpha)^mg(x),g(\alpha)\neq 0 f(x)=(xα)mg(x),g(α)=0时,有
    φ ′ ( α ) = 1 − 1 m \varphi^{\prime}(\alpha) = 1- \frac1m φ(α)=1m1

  • 全局收敛性判定 I \text{I} I
    给定 f ( x ) = 0 f(x)=0 f(x)=0,如果$f^{\prime \prime}(x) 在 在 [a,b]$上连续,且

    • f ( a ) f ( b ) < 0 f(a)f(b) < 0 f(a)f(b)<0
    • ∀ x ∈ [ a , b ] , f ′ ( x ) ≠ 0 , f ′ ′ ( x ) ≠ 0 \forall x\in [a,b], f^\prime(x) \neq 0,f^{\prime \prime}(x) \neq 0 x[a,b],f(x)=0,f′′(x)=0
    • x 0 ∈ [ a , b ] , f ( x 0 ) f ′ ′ ( x 0 ) > 0 x_0 \in [a,b],f(x_0) f^{\prime \prime}(x_0) > 0 x0[a,b],f(x0)f′′(x0)>0
      f ( x ) = 0 f(x)=0 f(x)=0 [ a , b ] [a,b] [a,b]内有唯一的根 α \alpha α,且由初值 x 0 x_0 x0 N e w t o n \rm Newton Newton迭代格式产生的序列收敛于 α \alpha α,并有
      lim ⁡ k → ∞ x k + 1 − α ( x k − α ) 2 = f ′ ′ ( α ) 2 f ′ ( α ) \lim_{k \rightarrow \infty} \frac{x_{k+1} - \alpha}{(x_k-\alpha)^2} = \frac{f^{\prime \prime}(\alpha)}{2f^\prime(\alpha)} klim(xkα)2xk+1α=2f(α)f′′(α)
      即迭代二阶收敛
  • 全局收敛性判定 II \text{II} II
    给定 f ( x ) = 0 f(x)= 0 f(x)=0,如果 f ′ ′ ( x ) f^{\prime \prime}(x) f′′(x) [ a , b ] [a,b] [a,b]上连续,且

    • f ( a ) f ( b ) < 0 f(a) f(b) <0 f(a)f(b)<0
    • ∀ x ∈ [ a , b ] , f ′ ( x ) ≠ 0 , f ′ ′ ( x ) ≠ 0 \forall x\in [a,b],f^\prime(x) \neq 0,f^{\prime \prime}(x) \neq 0 x[a,b],f(x)=0,f′′(x)=0
    • ∣ f ( a ) f ′ ( a ) ∣ ≤ b − a ∣ , f ( b ) f ′ ( b ) ∣ ≤ b − a \mid\cfrac{f(a)}{f^\prime(a)} \mid \leq b-a\mid,\cfrac{f(b)}{f^\prime(b)} \mid \leq b-a f(a)f(a)∣≤ba,f(b)f(b)∣≤ba

    ∀ x 0 ∈ [ a , b ] \forall x_0 \in [a,b] x0[a,b],由 Newton \text{Newton} Newton迭代格式产生的序列 { x k } k = 0 ∞ \{x_k\}_{k=0}^\infty {xk}k=0收敛于 f ( x ) = 0 f(x)=0 f(x)=0的根 α \alpha α

Newton迭代的变形

求重根的修正Newton法

α \alpha α f ( x ) = 0 f(x)=0 f(x)=0 m ≥ 0 m\geq0 m0重根时,将 Newton \text{Newton} Newton迭代法修正为
x k + 1 = x k − m f ( x k ) f ′ ( x k ) (修正的Newton迭代格式) x_{k+1} = x_k - m \frac{f(x_k)}{f^\prime(x_k)} \tag{修正的Newton迭代格式} xk+1=xkmf(xk)f(xk)(修正的Newton迭代格式)
该迭代方程局部收敛,且至少二阶收敛。
由于 m m m一般事先不知道,因此取
μ ( x ) = f ( x ) f ′ ( x ) \mu(x) = \frac{f(x)}{f^\prime(x)} μ(x)=f(x)f(x)
α \alpha α f ( x ) = 0 f(x)=0 f(x)=0 m m m重根时, α \alpha α μ ( x ) \mu(x) μ(x)的单重零点,则 Newton \text{Newton} Newton修正为
φ ( x ) = x − μ ( x ) μ ′ ( x ) = x − f ( x ) f ′ ( x ) ( f ′ ( x ) ) 2 − f ( x ) f ′ ′ ( x ) \varphi(x) = x - \frac{\mu(x)}{\mu^\prime(x)} = x - \frac{f(x)f^\prime(x)}{(f^\prime(x))^2 - f(x)f^{\prime\prime}(x)} φ(x)=xμ(x)μ(x)=x(f(x))2f(x)f′′(x)f(x)f(x)
可知其局部收敛,且至少二阶收敛
零点的重数 m m m可通过以下方式估计
由误差渐进表达式和牛顿法迭代式与 m m m的关系可得
lim ⁡ k → ∞ x k + 1 − α x k − α = 1 − 1 m ⇒ m ≈ α − x k x k + 1 − x k \lim_{k\rightarrow \infty} \frac{x_{k+1}-\alpha}{x_k -\alpha} = 1-\frac1m \Rightarrow m \approx \frac{\alpha-x_k}{x_{k+1}-x_k} klimxkαxk+1α=1m1mxk+1xkαxk

Newton下山法

由于 Newton \text{Newton} Newton迭代法对初值的选择要求比较苛刻,为了放宽初值的选择范围,将 N e w t o n \rm Newton Newton法的计算结果 x ‾ k + 1 = x k − f ( x k ) f ′ ( x k ) \overline{x}_{k+1} = x_k - \cfrac{f(x_k)}{f^\prime(x_k)} xk+1=xkf(xk)f(xk)与前一步的近似值 x k x_k xk进行加权后得到新的近似,即
x k + 1 = ( 1 − λ s ) x k + λ s x ‾ k + 1 = ( 1 − λ s ) x k + λ s [ x k − f ( x k ) f ′ ( x k ) ] = x k − λ s f ( x k ) f ′ ( x k ) , s = 0 , 1 , ⋯ \begin{aligned} x_{k+1} &= (1-\lambda_s) x_k + \lambda_s \overline x_{k+1}\\ &= (1-\lambda_s)x_k+\lambda_s\bigg[x_k-\frac{f(x_k)}{f^\prime(x_k)}\bigg] \\ &= x_k - \lambda_s \frac{f(x_k)}{f^\prime(x_k)} ,s=0,1,\cdots \end{aligned} xk+1=(1λs)xk+λsxk+1=(1λs)xk+λs[xkf(xk)f(xk)]=xkλsf(xk)f(xk),s=0,1,
λ s \lambda_s λs称为下山因子,通过选择适当下山因子,能使得产生的迭代序列 { x k } k = 0 ∞ \{x_k\}_{k=0}^\infty {xk}k=0满足
∣ f ( x k + 1 ) ∣ < ∣ f ( x k ) ∣ \mid f(x_{k+1}) \mid < \mid f(x_k) \mid f(xk+1)∣<∣f(xk)
则该序列是一个下山序列。
N e w t o n \rm Newton Newton下山法的具体算法如下:
计算开始前需要先给出根的绝对误差限 ε x \varepsilon_x εx,下山因子的下界 ε λ s \varepsilon_{\lambda_s} ελs ∣ f ( x ) ∣ \mid f(x) \mid f(x)的下界 ε f \varepsilon_f εf,适当的增量 δ \delta δ以及最大迭代次数 N N N

  1. 选取初值 x 0 x_0 x0
  2. 令下山因子 λ s = 1 \lambda_s=1 λs=1
  3. 利用 N e w t o n \rm Newton Newton下山公式由 x k x_k xk计算 x k + 1 x_{k+1} xk+1,并计算 f ( x k + 1 ) f(x_{k+1}) f(xk+1)
  4. k > N k>N k>N,则转到 6 6 6,否则执行 5 5 5
  5. 判断 ∣ f ( x k + 1 ) ∣ < ∣ f ( x k ) ∣ \mid f(x_{k+1}) \mid < \mid f(x_k) \mid f(xk+1)∣<∣f(xk)是否成立
    1. ∣ f ( x k + 1 ) ∣ < ∣ f ( x K ) ∣ \mid f(x_{k+1} ) \mid < \mid f(x_K) \mid f(xk+1)∣<∣f(xK)成立,分情况执行
      a. 若 ∣ x k + 1 − x k ∣ < ε x \mid x_{k+1} - x_k \mid < \varepsilon_x xk+1xk∣<εx,则取 α ≈ x k + 1 \alpha \approx x_{k+1} αxk+1,输出结果
      b. 若 ∣ x k + 1 − x k ∣ ≥ ε x \mid x_{k+1} - x_k \mid \geq \varepsilon_x xk+1xk∣≥εx,则将 x k + 1 x_{k+1} xk+1作为新的 x k x_k xk k k k增加 1 1 1,转向 2 2 2
    2. 当$\mid f(x_{k+1}) \mid \geq \mid f(x_k) \mid 成立,分情况执行 a . 若 成立,分情况执行 a. 若 成立,分情况执行a.\mid f(x_{k+1}) \mid < \varepsilon_f ,则取 ,则取 ,则取\alpha \approx x_{k+1} ,输出结果 b . 若 ,输出结果 b. 若 ,输出结果b.\mid f(x_{k+1} \mid \geq \varepsilon_f$,分情况执行
      • λ s > ε λ s \lambda_s> \varepsilon_{\lambda_s} λs>ελs,则以 λ s 2 \cfrac{\lambda_s}{2} 2λs代替 λ s \lambda_s λs,转向 3 3 3
      • λ s ≤ ε λ s \lambda_s \leq \varepsilon_{\lambda_s} λsελs,则以 x k + 1 + σ x_{k+1}+\sigma xk+1+σ代替 x k x_k xk k k k增加 1 1 1,转向 2 2 2
  6. 已迭代 N N N次,仍未达到要求,下山失败,此时需重新另选初值 x 0 x_0 x0,再转向 2 2 2后开始新的计算

弦割法

x k + 1 = x k − f ( x k ) f ′ ( x k ) f ′ ( x ) ≈ f ( x k ) − f ( x k − 1 ) x k − x k − 1 ⇒ x k + 1 = x k − f ( x k ) f ( x k ) − f ( x k − 1 ) ( x k − x k − 1 ) \begin{aligned} &x_{k+1} = x_k - \frac{f(x_k)}{f^\prime(x_k)}\\ &f^\prime(x) \approx \frac{f(x_k)-f(x_{k-1})}{x_k-x_{k-1}} \\ \Rightarrow &x_{k+1} = x_k-\frac{f(x_k)}{f(x_k)-f(x_{k-1})}(x_k-x_{k-1}) \end{aligned} xk+1=xkf(xk)f(xk)f(x)xkxk1f(xk)f(xk1)xk+1=xkf(xk)f(xk1)f(xk)(xkxk1)

解线性代数方程组的直接法

Gauss消元法

Gauss顺序消元法

KaTeX parse error: Undefined control sequence: \mbox at position 30: …ongrightarrow_{\̲m̲b̲o̲x̲{初等行变换,依次消去各列的主…

  • Gauss \text{Gauss} Gauss顺序消元法能进行下去    ⟺    \iff n − 1 n-1 n1阶顺序主子式不为零

Gauss主元消元法

  • 列主元消元法
  • 全主元消元法

矩阵三角分解法

直接三角分解法

A = L U { L is Unit lower triangular matrix Doolittle U is Unit upper triangular matrix Crout A = LU \begin{cases} \text{L is Unit lower triangular matrix} &\text{Doolittle} \\ \text{U is Unit upper triangular matrix} &\text{Crout} \\ \end{cases} A=LU{L is Unit lower triangular matrixU is Unit upper triangular matrixDoolittleCrout

n − 1 n-1 n1阶顺序主子式不为零, Doolittle,Crout \text{Doolittle,Crout} Doolittle,Crout分解唯一
A = L U , A x = b ⟹ ( L U ) x = b ⟹ { L y = b lower triangular matrix U x = y upper triangular matrix A = LU,Ax = b \Longrightarrow (LU)x = b \Longrightarrow \begin{cases} Ly = b &\text{lower triangular matrix}\\ Ux = y &\text{upper triangular matrix} \end{cases} A=LU,Ax=b(LU)x=b{Ly=bUx=ylower triangular matrixupper triangular matrix

{ y 1 = b 1 , y k = b k − ∑ m = 1 k − 1 l k m y m ( k = 2 , 3 , ⋯   , n ) . { x n = y n u n n x k = 1 u k k ( y k − ∑ m = k + 1 n u k m x m ) ( k = n − 1 , n − 2 , ⋯   , 1 ) \begin{aligned} &\left\{\begin{array}{l} y_1=b_1, \\ y_k=b_k-\sum_{m=1}^{k-1} l_{k m} y_m \quad(k=2,3, \cdots, n) . \end{array}\right.\\ &\left\{\begin{array}{l} x_n=\frac{y_n}{u_{n n}} \\ x_k=\frac{1}{u_{k k}}\left(y_k-\sum_{m=k+1}^n u_{k m} x_m\right) \quad(k=n-1, n-2, \cdots, 1) \end{array}\right. \end{aligned} {y1=b1,yk=bkm=1k1lkmym(k=2,3,,n).{xn=unnynxk=ukk1(ykm=k+1nukmxm)(k=n1,n2,,1)

{ u k j = a k j − ∑ m = 1 k − 1 l k m u m j ⇒ a k j ( j = k , k + 1 , ⋯   , n ) , l i k = 1 u k k ( a i k − ∑ m = 1 k − 1 l i m u m k ) ⇒ a i k ( i = k + 1 , k + 2 , ⋯   , n ) \begin{cases} u_{k j}=a_{k j}-\sum_{m=1}^{k-1} l_{k m} u_{m j} \Rightarrow a_{k j} \quad(j=k, k+1, \cdots, n), \\ l_{i k}=\frac{1}{u_{k k}}\left(a_{i k}-\sum_{m=1}^{k-1} l_{i m} u_{m k}\right) \Rightarrow a_{i k} \quad(i=k+1, k+2, \cdots, n) \\ \end{cases} {ukj=akjm=1k1lkmumjakj(j=k,k+1,,n),lik=ukk1(aikm=1k1limumk)aik(i=k+1,k+2,,n)

列主元三角分解法

  • 选第一列主元后,分解第一行第一列,以及 y 1 y_1 y1
  • 求解第二列分解后的元素的临时大小,求最大行交换
  • 求第2行第2列, y 2 y_2 y2,重复

平方根法

A A A n n n阶对称正定矩阵$\Longrightarrow $
A = L L T (Cholesky) A = LL^T \tag{Cholesky} A=LLT(Cholesky)
L L L是非奇异下三角矩阵(如果规定对角元为正,分解唯一)

方程组的性态与误差分析

向量和矩阵范数见矩阵论
C o n d ( A ) = ∥ A − 1 ∥   ∥ A ∥ Cond(A) = \parallel A^{-1} \parallel \ \parallel A \parallel Cond(A)=∥A1 A
降低方程组系数矩阵条件数的方法
A x = b → Λ 1 A Λ 2 y = Λ 1 b , x = Λ 2 y Ax =b \rightarrow \Lambda_1 A \Lambda_2 y = \Lambda_1 b,x = \Lambda_2y Ax=bΛ1AΛ2y=Λ1b,x=Λ2y
使得
C o n d ( Λ 1 A Λ 2 ) = m i n Cond(\Lambda_1 A \Lambda_2) = min Cond(Λ1AΛ2)=min
Λ 1 , Λ 2 \Lambda_1,\Lambda_2 Λ1,Λ2简单的设置方法有
Λ 2 = I , Λ 1 = d i a g ( 1 s 1 , 1 s 2 , ⋯   , 1 s n ) , s i = max ⁡ 1 ≤ j ≤ n ∣ a i j ∣ \Lambda_2 = I,\Lambda_1 = diag(\frac1s_1,\frac1s_2,\cdots,\frac1s_n),s_i =\max_{1\leq j \leq n} \mid a_{ij} \mid Λ2=I,Λ1=diag(s11,s12,,s1n),si=1jnmaxaij

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愤怒的卤蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值