数值分析

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

1、误差

  • xx^{*}xx 一个近似值
  • 绝对误差:e=xxe^{*} = x^{*} - x
  • 相对误差:er=ex=xxx\displaystyle e_r^{*} = \frac{e^{*}}{x} = \frac{x^{*} - x}{x},由于真值 xx 总是不知道的,通常取 er=ex=xxx\displaystyle e_r^{*} = \frac{e^{*}}{x^{*}} = \frac{x^{*} - x}{x^{*}}
  • 误差限:xxε|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)=(xx0)(xx1)(xxn)\omega_{n+1}(x) = (x-x_{0})(x-x_1)\cdots (x-x_n)
  • LagrangeLagrange 插值多项式系数:

    lk(xk)=(xx0)(xxk1)(xxk+1)(xxn)(xkx0)(xkxk1)(xxk+1)(xxn)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)(xxk)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=maxaxbfn+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)xkx0\displaystyle f[x_0, x_k] = \frac{f(x_k) - f(x_0)}{x_k-x_0}
  • kk 阶均差:

    f[x0,x1,,xk]=f[x0,,xk2,xk]f[x0,,xk2,xk1]xkxk1f[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](xx0)+f[x0,x1,x2](xx0)(xx1)++f[x0,x1,,xn](xx0)(xx1)(xxn1)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)(xx0)++f(n)(x0)n!(xx0)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)!(xx0)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](xx0)+f[x0,x1,x2](xx0)(xx1)+A(xx0)(xx1)(xx2)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)

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

    R(x)=14!f(4)(ξ)(xx0)(xx1)2(xx2)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+2xxkxk+1xk)(xxk+1xkxk+1)2αk+1(x)=(1+2xxk+1xkxk+1)(xxkxk+1xk)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)=(xxk)(xxk+1xkxk+1)2βk+1(x)=(xxk+1)(xxkxk+1xk)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!(xxk)2(xxk+1)2\displaystyle R(x) = \frac{f^{(4)}(\xi)}{4!}(x-x_k)^{2}(x-x_{k+1})^{2}

分段低次插值

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

    maxaxbf(x)Ih(x)M28h2\max_{a\le x\le b}|f(x) - I_h(x)| \le \frac{M_2}{8}h^{2}

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

    maxaxbf(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)dxba2f(a)+ba2f(b)\displaystyle \int_{a}^{b}f(x)dx \approx \frac{b-a}{2}f(a) + \frac{b-a}{2}f(b)

  • 余项:

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

  • 矩形公式:

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

    • 余项:

    R[f]=(ba)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)dxba6f(a)+ba6f(b)+2(ba)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]=(ba)518024f(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=ba90[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(ba)794546f(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=ban\displaystyle h = \frac{b-a}{n}

  • 复合梯形公式:

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

    • 余项:

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

  • 复合 SimpsonSimpson 求积公式:

    Sn=h6[f(a)+2k=1n1f(xk)+4k=0n1f(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)=ba180(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(ba2k)\displaystyle T_0(\frac{b-a}{2^{k}}),利用递推公式求 T0(k)T_0^{(k)},递推公式:

    T2n=12Tn+h2k=0n1f(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)=4m4m1Tm1k+114m1Tm1(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)dxk=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,,n1)D_k \left( k = 1,2,\cdots ,n-1 \right) 均不为零,则必有单位下三角矩阵 LL 和上三角矩阵 UU,使得 A=LUA = LU,并且 LLUU 是唯一的。
  • 对矩阵进行 LULU 分解后(杜利特尔分解)
    • Ly=bLy = b 得到 yy
    • Ux=yUx = y 得到 xx

矩阵范数

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

条件数

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

    cond(A)2=A2A12=λ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λncond(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(n1)xn1(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}

  • GaussSeidelGauss-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(n1)xn1(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=0i1aij+j=i+1naij\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)
  • 要求 xx^{*} 满足 f(x)=0f(x^{*})=0,则 x=φ(x)x^{*} = \varphi(x^{*}),称 xx^{*} 为函数 φ(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) 称为迭代函数

收敛性:

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

收敛阶:

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

    φ(x)=φ(x)==φ(p1)(x), φ(p)(x)0\varphi^{'}(x^{*}) = \varphi^{''}(x^{*}) = \cdots =\varphi^{(p-1)}(x^{*}) ,\ \varphi^{(p)}(x^{*}) \neq 0

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

Newton

  • NewtonNewton 迭代法的构造:

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

  • 牛顿法是 平方收敛

简化牛顿法

构造迭代公式:

xk+1=xkf(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)=(xx)mg(x)f(x) = (x-x^{*})^{m}g(x),即 xx^{*} 为方程 mm 重根,在无需提前知道 mm 取值的情况下,可构造平方收敛的 迭代公式

xk+1=xkf(xk)f(xk)[f(xk)]2f(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)}