数值分析

考试迫使记的😭 都是公式而已,没有公式说明,没有推导过程,懂自懂

1、误差

  • x∗x^{*} 为 xx 一个近似值
  • 绝对误差:e∗=x∗−xe^{*} = x^{*} - x
  • 相对误差:er∗=e∗x=x∗−xx\displaystyle e_r^{*} = \frac{e^{*}}{x} = \frac{x^{*} - x}{x},由于真值 xx 总是不知道的,通常取 er∗=e∗x∗=x∗−xx∗\displaystyle e_r^{*} = \frac{e^{*}}{x^{*}} = \frac{x^{*} - x}{x^{*}}
  • 误差限:∣x∗−x∣≤ε∗|x^{*} - x| \le \varepsilon^{*}
  • 相对误差限:εr∗=ε∗∣x∗∣\varepsilon_r^{*} = \displaystyle \frac{\varepsilon^{*}}{|x^{*}|}
  • ε(f(x∗))≈∣f′(x∗)∣ε(x∗)\varepsilon(f(x^{*})) \approx |f^{'}(x^{*})|\varepsilon(x^{*})

2、插值法

  • 记 ωn+1(x)=(x−x0)(x−x1)⋯(x−xn)\omega_{n+1}(x) = (x-x_{0})(x-x_1)\cdots (x-x_n)
  • LagrangeLagrange 插值多项式系数:

    lk(xk)=(x−x0)⋯(x−xk−1)(x−xk+1)⋯(x−xn)(xk−x0)⋯(xk−xk−1)(x−xk+1)⋯(x−xn)l_k(x_k) = \displaystyle \frac{(x-x_0)\cdots (x-x_{k-1})(x-x_{k+1})\cdots (x-x_n)}{(x_k-x_0)\cdots (x_k-x_{k-1})(x-x_{k+1})\cdots (x-x_n)}

  • LagrangeLagrange 插值多项式:

    Ln(x)=∑k=0nlk(x)yk=∑k=0nykωn+1(x)ωn+1′(xk)(x−xk)L_n(x) = \displaystyle \sum_{k=0}^{n} l_k(x)y_k = \sum_{k=0}^{n} y_k \frac{\omega_{n+1}(x)}{\omega^{'}_{n+1}(x_k)(x-x_k)}

  • 余项:记 Mn+1=max⁡a≤x≤b∣fn+1(x)∣M_{n+1} =\displaystyle \max_{a\le x\le b}|f^{n+1}(x)|

    R(x)=fn+1(ξ)ωn+1(x)(n+1)!≤Mn+1(n+1)!∣ωn+1(x)∣\displaystyle R(x) = \frac{f^{n+1}(\xi)\omega_{n+1}(x)}{(n+1)!} \le \frac{M_{n+1}}{(n+1)!}|\omega_{n+1}(x)|

均差与 NewTon 插值多项式

  • 一阶均差:f[x0,xk]=f(xk)−f(x0)xk−x0\displaystyle f[x_0, x_k] = \frac{f(x_k) - f(x_0)}{x_k-x_0}
  • kk 阶均差:

    f[x0,x1,⋯ ,xk]=f[x0,⋯ ,xk−2,xk]−f[x0,⋯ ,xk−2,xk−1]xk−xk−1f[x_0,x_1,\cdots ,x_k] = \frac{f[x_0,\cdots ,x_{k-2},x_k] - f[x_0,\cdots ,x_{k-2},x_{k-1}]}{x_k - x_{k-1}}

  • f[x0,x1,⋯ ,xn]=f(n)(ξ)n!(x0,x1,⋯ ,xn,ξ∈[a,b])\displaystyle f[x_0,x_1,\cdots ,x_n] = \frac{f^{(n)}(\xi)}{n!} \qquad (x_0,x_1,\cdots ,x_n,\xi \in [a,b])
  • f[x0,x1,⋯ ,xk]=∑j=0kf(xj)ωk+1′(xj)\displaystyle f[x_0,x_1,\cdots ,x_k] = \sum_{j=0}^{k}\frac{f(x_j)}{\omega_{k+1}^{'}(x_j)}
  • NewTonNewTon 插值多项式:

    Pn(x)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+⋯+f[x0,x1,⋯ ,xn](x−x0)(x−x1)⋯(x−xn−1)P_n(x) = f(x_0)+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)+\cdots \\ +f[x_0,x_1,\cdots ,x_n](x-x_0)(x-x_1)\cdots (x-x_{n-1})

  • 余项:R(x)=f[x0,x1,⋯ ,xn]ωn+1(x)R(x) = f[x_0,x_1,\cdots ,x_n]\omega_{n+1}(x)

Hermite 插值

  • TaylorTaylor 多项式:

    Pn(x)=f(x0)+f′(x0)(x−x0)+⋯+f(n)(x0)n!(x−x0)n\displaystyle P_n(x) = f(x_0) + f^{'}(x_0)(x-x_0) + \cdots + \frac{f^{(n)}(x_0)}{n!}(x-x_0)^{n}

    • 余项:R(x)=f(n+1)(ξ)(n+1)!(x−x0)n+1\displaystyle R(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)^{n+1}
  • 若已知 f(x0),f′(x1),f(x1),f(x2)f(x_0),f^{'}(x_1),f(x_1),f(x_2):

    P(x)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+A(x−x0)(x−x1)(x−x2)P(x) = f(x_0) + f[x_0,x_1](x-x_0) + f[x_0,x_1,x_2](x-x_0)(x-x_1) \\ + A(x-x_0)(x-x_1)(x-x_2)

    其中 AA 由 P′(x1)=f′(x1)P^{'}(x_1) = f^{'}(x_1) 可得
    • 余项:

    R(x)=14!f(4)(ξ)(x−x0)(x−x1)2(x−x2)R(x) = \frac{1}{4!}f^{(4)}(\xi)(x-x_0)(x-x_1)^{2}(x-x_2)

  • 两点三次 HermiteHermite 插值多项式:

    H3(x)=αk(x)yk+αk+1(x)yk+1+βk(x)mk+βk+1(x)mk+1H_3(x) = \alpha_k(x)y_k + \alpha_{k+1}(x)y_{k+1} + \beta_k(x)m_k + \beta_{k+1}(x)m_{k+1}

    其中 mk=f′(xk),mk+1=f′(xk+1)m_k = f^{'}(x_k), m_{k+1} = f^{'}(x_{k+1})

{αk(x)=(1+2x−xkxk+1−xk)(x−xk+1xk−xk+1)2αk+1(x)=(1+2x−xk+1xk−xk+1)(x−xkxk+1−xk)2\begin{cases} \displaystyle \alpha_k(x) = (1+2\frac{x-x_k}{x_{k+1}-x_k})(\frac{x-x_{k+1}}{x_k-x_{k+1}})^{2} \\ \\ \displaystyle \alpha_{k+1}(x) = (1+2\frac{x-x_{k+1}}{x_k-x_{k+1}})(\frac{x-x_k}{x_{k+1}-x_k})^{2} \\ \end{cases}

{βk(x)=(x−xk)(x−xk+1xk−xk+1)2βk+1(x)=(x−xk+1)(x−xkxk+1−xk)2\begin{cases} \displaystyle \beta_k(x) = (x-x_k)(\frac{x-x_{k+1}}{x_k-x_{k+1}})^{2} \\ \\ \displaystyle \beta_{k+1}(x) = (x-x_{k+1})(\frac{x-x_k}{x_{k+1}-x_k})^{2} \\ \end{cases}

  • 余项:

R(x)=f(4)(ξ)4!(x−xk)2(x−xk+1)2\displaystyle R(x) = \frac{f^{(4)}(\xi)}{4!}(x-x_k)^{2}(x-x_{k+1})^{2}

分段低次插值

  • h=b−an\displaystyle h = \frac{b-a}{n}
  • 对每个小区间使用对应插值公式求 Ih(x)I_h(x)
  • 余项
    • 对分段线性插值函数:

    max⁡a≤x≤b∣f(x)−Ih(x)∣≤M28h2\max_{a\le x\le b}|f(x) - I_h(x)| \le \frac{M_2}{8}h^{2}

    • 对分段三次埃尔米特插值:

    max⁡a≤x≤b∣f(x)−Ih(x)∣≤M4384h4\max_{a\le x\le b}|f(x) - I_h(x)| \le \frac{M_4}{384}h^{4}

3、数值积分

代数精度

定义:

  • 如果某个求积公式对于次数不超过 mm 的多项式均能够准确成立,但对于 m+1m+1 次多项式就不准确成立,则称该公式具有 mm 次代数精度

梯形公式公式与中矩形公式

  • 梯形公式:

∫abf(x)dx≈b−a2f(a)+b−a2f(b)\displaystyle \int_{a}^{b}f(x)dx \approx \frac{b-a}{2}f(a) + \frac{b-a}{2}f(b)

  • 余项:

R[f]=−(b−a)312f′′(η)(η∈(a,b))\displaystyle R[f] = -\frac{(b-a)^{3}}{12}f^{''}(\eta)\qquad (\eta \in (a,b))

  • 矩形公式:

    ∫abf(x)dx≈(b−a)f(a+b2)\displaystyle \int_{a}^{b}f(x)dx \approx (b-a)f(\frac{a+b}{2})

    • 余项:

    R[f]=(b−a)324f′′(η)(η∈(a,b))\displaystyle R[f] = \frac{(b-a)^{3}}{24}f^{''}(\eta)\qquad (\eta \in (a,b))

Newton-Cotes 公式

将积分区间 [a,b][a,b] 分成 nn 等分

  • SimpsonSimpson 公式(n=2n=2):

    ∫abf(x)dx≈b−a6f(a)+b−a6f(b)+2(b−a)3f(a+b2)\displaystyle \int_{a}^{b}f(x)dx \approx \frac{b-a}{6}f(a) + \frac{b-a}{6}f(b) + \frac{2(b-a)}{3}f(\frac{a+b}{2})

    • 余项:

    R[f]=−(b−a)5180∗24f(4)(η)(η∈(a,b))R[f] = -\frac{(b-a)^{5}}{180*2^{4}}f^{(4)}(\eta)\qquad (\eta \in (a,b))

  • CotesCotes 公式(n=4n=4):

C=b−a90[7f(x0)+32f(x1)+12f(x2)+32f(x3)+7f(x4)]C = \frac{b-a}{90}[7f(x_0)+32f(x_1)+12f(x_2)+32f(x_3)+7f(x_4)]

  • 余项:

R[f]=−2(b−a)7945∗46f(6)(η)(η∈(a,b))R[f] = -\frac{2(b-a)^{7}}{945*4^{6}}f^{(6)}(\eta)\qquad (\eta \in (a,b))

复合求积公式

积分区间 [a,b][a,b] 分成 nn 等分,步长 h=b−an\displaystyle h = \frac{b-a}{n}

  • 复合梯形公式:

    Tn=h2[f(a)+2∑k=1n−1f(xk)+f(b)]T_n = \frac{h}{2}[f(a)+2\sum_{k=1}^{n-1}f(x_k)+f(b)]

    • 余项:

    Rn(f)=−b−a12h2f′′(η)R_n(f) = -\frac{b-a}{12}h^{2}f^{''}(\eta)

  • 复合 SimpsonSimpson 求积公式:

    Sn=h6[f(a)+2∑k=1n−1f(xk)+4∑k=0n−1f(x(k+1)/2)+f(b)]S_n = \frac{h}{6}[f(a)+2\sum_{k=1}^{n-1}f(x_k)+4\sum_{k=0}^{n-1}f(x_{(k+1)/2})+f(b)]

    其中 x(k+1)/2=xk+h2\displaystyle x_{(k+1)/2} = x_k+\frac{h}{2}
    • 余项:

    Rn(f)=−b−a180(h2)4f(4)(η)R_n(f) = -\frac{b-a}{180}(\frac{h}{2})^{4}f^{(4)}(\eta)

龙贝格求积算法

  • T0(0)=h2[f(a)+f(b)]T_0^{(0)} = \displaystyle \frac{h}{2}[f(a)+f(b)]
  • 求梯形值 T0(b−a2k)\displaystyle T_0(\frac{b-a}{2^{k}}),利用递推公式求 T0(k)T_0^{(k)},递推公式:

    T2n=12Tn+h2∑k=0n−1f(xk+12)\displaystyle T_{2n} = \frac{1}{2}T_n + \frac{h}{2}\sum_{k=0}^{n-1}f(x_{k+\frac{1}{2}})

  • 求加速值:

    Tm(k)=4m4m−1Tm−1k+1−14m−1Tm−1(k)k=1,2,⋯T_m^{(k)} = \frac{4^{m}}{4^{m}-1}T_{m-1}^{k+1} - \frac{1}{4^{m}-1}T_{m-1}^{(k)} \qquad k = 1,2,\cdots

高斯-勒让德求积公式

  • 积分区间为 [−1,1][-1,1]
  • ∫−11f(x)dx≈∑k=0nAkf(xk)\displaystyle \int_{-1}^{1}f(x)dx \approx \sum_{k=0}^{n}A_kf(x_k)
  • 余项:n=1n=1 时,R1[f]=1135f(4)(η)\displaystyle R_1[f] = \frac{1}{135}f^{(4)}(\eta)

4、解线性方程组的直接方法

列主元高斯消去法

  • 在每次消元时,选取列主元在最前面,列主元为该列最大值

矩阵三角分解法

  • 如果 nn 阶矩阵 AA 的各阶顺序主子式 Dk(k=1,2,⋯ ,n−1)D_k \left( k = 1,2,\cdots ,n-1 \right) 均不为零,则必有单位下三角矩阵 LL 和上三角矩阵 UU,使得 A=LUA = LU,并且 LL 和 UU 是唯一的。
  • 对矩阵进行 LULU 分解后(杜利特尔分解)
    • 解 Ly=bLy = b 得到 yy
    • 解 Ux=yUx = y 得到 xx

矩阵范数

  • 行范数:∣∣A∣∣∞=max⁡1≤i≤n∑j=1n∣aij∣\displaystyle ||A||_{\infty} = \max_{1 \le i \le n}\sum_{j=1}^{n}|a_{ij}|
  • 列范数:∣∣A∣∣1=max⁡1≤j≤n∑i=1n∣aij∣\displaystyle ||A||_{1} = \max_{1 \le j \le n}\sum_{i=1}^{n}|a_{ij}|
  • 2- 范数:∣∣A∣∣2=λmax(ATA)\displaystyle ||A||_{2} = \sqrt{\lambda_{max}(A^{T}A)} ,其中 λmax(ATA)\lambda_{max}(A^{T}A) 表示 ATAA^{T}A 的最大特征值
    • 特征值计算:∣λE−A∣=0|\lambda E - A| = 0,解得 λ\lambda 即为 AA 的特征值
  • F- 范数:∣∣A∣∣F=∑i=1,j=1n(aij)2\displaystyle ||A||_F = \sqrt{\sum_{i=1,j=1}^{n}(a_{ij})^{2}}

条件数

  • cond(A)∞=∣∣A−1∣∣∞∣∣A∣∣∞cond(A)_{\infty} = ||A^{-1}||_{\infty}||A||_{\infty}
  • AA 的谱条件数

    cond(A)2=∣∣A∣∣2∣∣A−1∣∣2=λmax(ATA)λmin(ATA)cond(A)_{2} = ||A||_2||A^{-1}||_2 = \sqrt{\frac{\lambda_{max}(A^{T}A)}{\lambda_{min}(A^{T}A)}}

    • 当 AA 为对称矩阵时,

    cond(A)2=∣λ1∣∣λn∣cond(A)_2 = \frac{|\lambda_1|}{|\lambda_n|}

    其中,λ1\lambda_1 和 λn\lambda_n 分别代表 AA 绝对值最大和绝对值最小的特征值

5、解线性方程组的迭代方法

  • JacobiJacobi 迭代

{x1(k+1)=1a11(−a12x2(k)−a13x3(k)⋯−a1nxn(k)+b1)x2(k+1)=1a22(−a21x1(k)−a23x3(k)⋯−a2nxn(k)+b2)⋯xn(k+1)=1ann(−an1x1(k)−an2x2(k)⋯−an(n−1)xn−1(k)+bn)\begin{cases} \displaystyle x_1^{(k+1)} = \frac{1}{a_{11}}(-a_{12}x_2^{(k)}-a_{13}x_3^{(k)}\cdots -a_{1n}x_n^{(k)}+b_1) \\ \\ \displaystyle x_2^{(k+1)} = \frac{1}{a_{22}}(-a_{21}x_1^{(k)}-a_{23}x_3^{(k)}\cdots -a_{2n}x_n^{(k)}+b_2) \\ \cdots \\ \displaystyle x_n^{(k+1)} = \frac{1}{a_{nn}}(-a_{n1}x_1^{(k)}-a_{n2}x_2^{(k)}\cdots -a_{n(n-1)}x_{n-1}^{(k)}+b_n) \\ \end{cases}

  • Gauss−SeidelGauss-Seidel 迭代

{x1(k+1)=1a11(−a12x2(k)−a13x3(k)⋯−a1nxn(k)+b1)x2(k+1)=1a22(−a21x1(k+1)−a23x3(k)⋯−a2nxn(k)+b2)⋯xn(k+1)=1ann(−an1x1(k+1)−an2x2(k+1)⋯−an(n−1)xn−1(k+1)+bn)\begin{cases} \displaystyle x_1^{(k+1)} = \frac{1}{a_{11}}(-a_{12}x_2^{(k)}-a_{13}x_3^{(k)}\cdots -a_{1n}x_n^{(k)}+b_1) \\ \\ \displaystyle x_2^{(k+1)} = \frac{1}{a_{22}}(-a_{21}x_1^{(k+1)}-a_{23}x_3^{(k)}\cdots -a_{2n}x_n^{(k)}+b_2) \\ \cdots \\ \displaystyle x_n^{(k+1)} = \frac{1}{a_{nn}}(-a_{n1}x_1^{(k+1)}-a_{n2}x_2^{(k+1)}\cdots -a_{n(n-1)}x_{n-1}^{(k+1)}+b_n) \\ \end{cases}

  • 收敛性:
    • 若 AA 严格对角占有,即 ∣aii∣>∑j=0i−1∣aij∣+∑j=i+1n∣aij∣\displaystyle |a_{ii}| > \sum_{j=0}^{i-1}|a_{ij}| + \sum_{j=i+1}^{n}|a_{ij}|,则两种迭代方法均收敛
    • 迭代法 x(k+1)=Bx(k)+fx^{(k+1)} = Bx^{(k)}+f 对任意 x(0)x^{(0)} 和 ff 均收敛的充要条件为 ρ(B)<1\rho(B) < 1。其中 BB 为迭代矩阵,谱半径 ρ(B)\rho(B) 为矩阵 BB 特征值的模的最大值。
    • 矩阵的谱半径越小,收敛速度越快

6、非线性方程和方程组的数值解法

二分法

计算步骤:

  1. 准备:计算 f(x)f(x) 在有根区间 [a,b][a,b] 端点处的值 f(a),f(b)f(a),f(b)
  2. 二分:计算 f(x)f(x) 在区间中点 a+b2\displaystyle \frac{a+b}{2} 处的值 f(a+b2)\displaystyle f(\frac{a+b}{2})
  3. 判断:若 f(a+b2)=0\displaystyle f(\frac{a+b}{2}) = 0,则 x=a+b2\displaystyle x = \frac{a+b}{2} 即为方程的根,计算过程结束,否则检验:若 f(a+b2)f(a)<0\displaystyle f(\frac{a+b}{2})f(a) < 0,则 b=a+b2\displaystyle b = \frac{a+b}{2},否则 a=a+b2\displaystyle a = \frac{a+b}{2}
  4. 反复执行步骤 2-3,直到区间 [a,b][a,b] 的长度小于允许误差 ε\varepsilon,此时区间中点 a+b2\displaystyle \frac{a+b}{2} 即为所求近似根

二分法总是收敛的

不动点迭代

计算步骤:

  • 将方程 f(x)=0f(x)=0 转换为 x=φ(x)x=\varphi(x)
  • 要求 x∗x^{*} 满足 f(x∗)=0f(x^{*})=0,则 x∗=φ(x∗)x^{*} = \varphi(x^{*}),称 x∗x^{*} 为函数 φ(x)\varphi(x) 的一个不动点
  • 选择一个初始近似值 x0x_0,将其代入 x=φ(x)x = \varphi(x) 式的右端可求得 x1=φ(x0)x_1 = \varphi(x_0)
  • 如上迭代计算 xk+1=φ(xk)x_{k+1} = \varphi(x_k),φ(x)\varphi(x) 称为迭代函数

收敛性:

  • 若 x∗x^{*} 为 φ(x)\varphi(x) 的不动点,φ(x)\varphi(x) 在 x∗x^{*} 某领域内有连续导数,且 φ(x∗)<1\varphi(x^{*}) < 1,则该迭代法是局部收敛的。

收敛阶:

  • 若迭代函数 x=φ(x)x=\varphi(x) 的根 x∗x^{*} 邻近具有 pp 阶连续导数,并且有

    φ′(x∗)=φ′′(x∗)=⋯=φ(p−1)(x∗), φ(p)(x∗)≠0\varphi^{'}(x^{*}) = \varphi^{''}(x^{*}) = \cdots =\varphi^{(p-1)}(x^{*}) ,\ \varphi^{(p)}(x^{*}) \neq 0

    那么迭代过程在 x∗x^{*} 附近是 pp 阶收敛的
    • 若 0<φ′(x∗)<10<\varphi^{'}(x^{*})<1,则迭代法 线性收敛
    • 若 φ′(x∗)=0, φ′′(x∗)≠0\varphi^{'}(x^{*})=0,\ \varphi^{''}(x^{*}) \neq 0,则迭代法 平方收敛

Newton 法

  • NewtonNewton 迭代法的构造:

xk+1=xk−f(xk)f′(xk)x_{k+1} = x_k - \frac{f(x_k)}{f'(x_k)}

  • 牛顿法是 平方收敛 的

简化牛顿法

构造迭代公式:

xk+1=xk−f(xk)f′(x0)x_{k+1} = x_k-\frac{f(x_k)}{f^{'}(x_0)}

只有一阶收敛

牛顿下山法

构造迭代公式:

xk+1=xk−λf(xk)f′(xk)x_{k+1} = x_k - \lambda \frac{f(x_k)}{f^{'}(x_k)}

可以通过选取 λ\lambda 值使得 ∣f(xk)∣>∣f(xk+1)∣|f(x_k)| > |f(x_{k+1})|,通常先令 λ=1\lambda=1,若上式子不成立则 λ\lambda 减半,直到上式成立

重根情况

若 f(x)=(x−x∗)mg(x)f(x) = (x-x^{*})^{m}g(x),即 x∗x^{*} 为方程 mm 重根,在无需提前知道 mm 取值的情况下,可构造平方收敛的 迭代公式

xk+1=xk−f(xk)f′(xk)[f′(xk)]2−f(xk)f′′(xk)x_{k+1} = x_k - \frac{f(x_k)f^{'}(x_k)}{[f^{'}(x_k)]^{2}-f(x_k)f^{''}(x_k)}