一些关于数值分析的笔记。采用的教材是 Numerical Analysis, Richard L. BurdenJ. Douglas Faries 著。本篇笔记是一些预备的知识。

# 数学基础

在高等数学中,我们有一些基本的定理,用来解决下面几个基本问题。

# 介值定理

fC[a,b]f \in C[a,b]K(f(a),f(b))K \in (f(a),f(b)), 则 c(a,b)\exists c \in (a,b) 使得 f(c)=Kf(c) = K. 该定理称为介值定理 (Intermediate Value Theorem),是解决方程解的存在性问题的基础。

# 中值定理

# 罗尔定理

fC[a,b]f \in C[a,b]ff(a,b)(a,b) 上可微,且 f(a)=f(b)f(a) = f(b), 则 c(a,b)\exists c \in (a,b) 使得 f(c)=0f'(c) = 0. 该定理称为罗尔定理 (Rolle's Mean Value Theorem)。

对于罗尔中值定理,我们有一个显然的推论:

fC[a,b]f \in C[a,b] 且在 (a,b)(a,b)nn 次可微,若 x0<x1<<xn\exists x_0 < x_1 < \dots < x_n 使得 f(xi)=0,i=0,1,,nf(x_i) = 0, i=0,1,\dots,n,则c(x0,xn)\exists c \in (x_0,x_n) 使得f(n)(c)=0f^{(n)}(c) = 0。该定理称为一般罗尔定理 (Generalized Rolle's Theorem)。

显然,连续使用 nn 次罗尔定理即可证明。

# 拉格朗日中值定理

fC[a,b]f \in C[a,b]ff(a,b)(a,b) 上可微,则 c(a,b)\exists c \in (a,b) 使得 f(c)=f(b)f(a)baf'(c) = \frac{f(b) - f(a)}{b-a}. 该定理称为拉格朗日中值定理 (Lagrange's Mean Vakue Theorem)。

# 柯西中值定理

f,gC[a,b]f,g \in C[a,b]f,gf,g 均在(a,b)(a,b) 上可微,则c(a,b)\exists c \in (a,b) 使得(g(b)g(a))f(c)=(f(b)f(a))f(c)(g(b)-g(a))f'(c) = (f(b) - f(a))f'(c)。特别地,若g(c)0g'(c) \neq 0g(a)g(b)g(a) \neq g(b),则可以写成f(c)g(c)=f(b)f(a)g(b)g(a)\frac{f'(c)}{g'(c)} = \frac{f(b) - f(a)}{g(b) - g(a)},该定理称为柯西中值定理 (Cauchy's Mean Value Theorem)。

# 极值定理

fC[a,b]f \in C[a,b],则c1,c2\exists c_1,c_2 使得x[a,b]\forall x \in [a,b],满足f(x)[f(c1),f(c2)]f(x) \in [f(c_1), f(c_2)]。若ff(a,b)(a,b) 上可微,则c1,c2c_1,c_2[a,b][a,b] 的端点或是使ff 在此处导数为00 的点。

# 泰勒定理

fCn[a,b]f \in C^n[a,b], f(n+1)f^{(n+1)}[a,b][a,b] 上存在,且 x0[a,b]x_0 \in [a,b], 则对 x[a,b]\forall x \in [a,b], 存在 x0x_0xx 间的数 ξ(x)\xi (x) 使得

f(x)=k=0nf(k)(xk)k!(xx0)k+f(n+1)(ξ(x))(n+1)!(xx0)n+1f(x) = \sum_{k=0}^n\frac{f^{(k)}(x_k)}{k!}(x-x_0)^k+\frac{f^{(n+1)}(\xi(x))}{(n+1)!}(x-x_0)^{n+1}

此时称

Pn(x)k=0nf(k)(xk)k!(xx0)kP_n(x) \coloneqq \sum_{k=0}^n\frac{f^{(k)}(x_k)}{k!}(x-x_0)^k

nn泰勒多项式 (Taylor polynomial),称

Rn(x)f(n+1)(ξ(x))(n+1)!(xx0)n+1R_n(x) \coloneqq \frac{f^{(n+1)}(\xi(x))}{(n+1)!}(x-x_0)^{n+1}

为与 PnP_n 相关的余项 (remainder term) 或截断误差 (truncation error)。

nn\to \infty, 称此时得到的无穷级数为泰勒级数 (Taylor series)。

# 误差分析基础

在数值分析中,计算的两个目标是找到近似值确定逼近的精度。由此,就产生了误差分析的想法。在数值计算中,误差常包括以下两类:

  1. 截断误差 (truncation error):采用有限和估计无穷级数产生的误差。
  2. 舍入误差 (round-off error):采用近似数代替原数产生的误差。

# 舍入误差的相关概念

# 绝对误差和相对误差

pp^*pp 的近似数,那么称 pp|p-p^*|绝对误差 (absolute error),称 ppp\frac{|p-p^*|}{|p|}相对误差 (relative error)。

# 有效数字

tt 是最大的自然数,使得

ppp5×10t\frac{|p-p^*|}{|p|} \leq 5\times 10^{-t}

则称数 pp^* 称为逼近到 pptt有效数字 (significant digits)。

# 一些常见的减小误差的方法

常见的减小误差的方法包括有理化 (rationalization) 和嵌套算法 (nested arithmetic)。例如,秦九韶算法 (Horner algorithm) 是嵌套算法的应用。

# 算法和收敛性

# 算法

由于数值分析是给出近似估计方法,同时考虑计算机计算精度和速度的学科,于是在数值分析中,我们一般需要给出具体的算法 (常以伪代码的形式)。在数值分析的算法中,我们的输入除已知参数值外,一般还包括精度要求TOLTOL最大迭代次数MM。这两项是算法终止的判断标志。

# 收敛性

收敛性和分析中的定义相同。

{βn}n=1\{\beta_n\}_{n=1}^\infty 是收敛于00 的已知序列,{αn}n=1\{\alpha_n\}_{n=1}^\infty 收敛于α\alpha,若KR+,NN+\exists K \in \mathbb{R}_+, N \in \mathbb{N}_+ 使得

αnαKβn|\alpha_n-\alpha| \leq K|\beta_n|

nN\forall n \geq N 成立,则称{αn}\{\alpha_n\} 以收敛速度O(βn)O(\beta_n) 收敛于α\alpha,记作αn=α+O(βn)\alpha_n = \alpha + O(\beta_n). 我们常使用的比较对象βn=1np\beta_n=\frac{1}{n^p}, pR+p\in\mathbb{R}_+.

如果不采用辅助数列进行收敛速度定义,我们可以定义收敛阶的概念。

{pn}n=1\{p_n\}_{n=1}^\infty 收敛于pp,且n,pnp\forall n, p_n \neq p,则若存在λ,αR+\lambda,\alpha\in\mathbb{R}_+ 使得

limnpn+1ppnpm=λ\lim_{n \to \infty}\frac{|p_{n+1}-p|}{|p_n-p|^m} = \lambda

成立,则称{pn}\{p_n\} (order)α\alpha 收敛于pp,且渐近误差常数 (asymptotic error constant) 为λ\lambda.