数值分析基本概念
一般形式
数值计算问题可统一表述为:
F(x,d)=0
其中:
- x:待求解(如方程的根、微分方程的解)
- d:问题参数(如系数、初值、边界条件)
- F:描述解与参数关系的函数
根据已知量与未知量的组合,可分为三类:
| 类型 | 已知 | 未知 | 应用示例 |
|---|
| 直接问题 | F,d | x | 求解线性方程组 Ax=b |
| 反问题 | F,x | d | 由测量数据反推材料参数 |
| 识别问题 | x,d | F | 从实验数据构建物理模型 |
而数值方法就是离散化求解上述问题的过程,可以理解为使用近似问题序列 Fn(xn,dn)=0 求近似解 xn。
n 通常表示离散规模(如迭代次数、网格加密度)。
我们称 xn,dn,Fn 为近似解、近似参数、近似函数。
相对地,强调原问题的 x,d,F 为准确解、准确参数、准确函数。
数值问题的适定性
适定性(Well-Posedness)。
定义:数值计算问题是适定的,当且仅当满足:
- 解存在:对给定 d,至少存在一个解 x
- 解唯一:解在解空间中唯一
- 解关于参数连续:
参数 d 的微小扰动 δd 仅引起解 x 的微小变化 δx。
具体来说,设问题扰动为 F(x+δx,d+δd)=0,则对任意 d,
存在 η0>0 和 K0>0,使得当 ∥δd∥≤η0 时:
∥δx∥≤K0∥δd∥
注:不适定问题在反问题中极为常见,需通过正则化等技术转化为适定问题。
数值方法的一致性
一致性(Consistency)。
定义:对近似问题序列 Fn(xn,dn)=0,若
Fn(x,d)−F(x,d)→0(n→∞)
其中 x 是原问题的准确解,则称该序列一致。
数值方法的稳定性
稳定性(Stability)。
定义:对近似问题序列 Fn(xn,dn)=0,若对任意 dn,
存在 η0>0 和 K0>0,使得当 ∥δdn∥≤η0 时:
∥δxn∥≤K0∥δdn∥
则称该序列稳定。
注:有时使用相同的数学关系、不同的计算方向会导致截然不同的数值稳定性。
数值方法的收敛性
收敛性(Convergence)。
定义:对近似问题序列 Fn(xn,dn)=0,若对任意 ε>0,
存在 n0∈N 和 δ>0,使得当 n>n0 且 ∥δdn∥≤δ 时:
∥x(d)−xn(d+δdn)∥≤ε
则称该序列收敛。
总结
- 数值问题的适定性就是数值问题的解存在唯一,且关于参数连续。
- 数值方法的一致性就是近似函数接近准确函数。
- 数值方法的稳定性就是近似解关于近似参数连续。
- 数值方法的收敛性就是近似解接近准确解。
Lax-Richtmyer 定理:
对满足 Consistency 的数值方法,有:
Stability⇔Convergence
注:由于收敛性涉及到准确解,故一般不好判断。该定理可将收敛性转化为稳定性进行判断。
误差
误差的来源
| 类型 | 定义 | 例子 | 改进方式 |
|---|
| 模型误差 | 数学模型的差异 | 用球体近似地球计算表面积 | 改进物理建模 |
| 观测误差 | 参数测量不精确 | 地球半径的测量误差 | 改进仪器精度 |
| 截断误差 | 无限过程截断为有限步骤 | Taylor 展开舍弃高阶项、数值积分离散化 | 改进算法阶数 |
| 舍入误差 | 计算机有限精度表示实数 | π,2 的浮点近似 | 改用高精度计算 |
例:
单摆运动方程 Ldt2d2ϕ+gsinϕ+μdtdϕ=0
- 模型误差:用常数 μ 简化摩擦模型
- 截断误差:小角度近似 sinϕ≈ϕ
- 观测误差:L,g,μ 的测量误差
绝对误差与相对误差
定义:
- 绝对误差:
e(x∗)=x−x∗
有时也简称为误差。
- 绝对误差限:
∣e(x∗)∣≤ε
其中绝对误差绝对值的上界 ε 即为绝对误差限。
- 相对误差:
er(x∗)=xe(x∗)≈x∗e(x∗)
- 相对误差限:
∣er(x∗)∣≤εr=∣x∗∣ε
其中相对误差绝对值的上界 εr 即为相对误差限。
注:
- 绝对误差反映误差的绝对大小,相对误差反映误差的相对程度,所以相对误差更加本质。
- 严格上讲我们求相对误差(限)时应该写成 er≤val,不过不严格区分了。
误差传播
设 y=f(x)=f(x1,…,xn),近似参数 x∗=(x1,…,xn),对应的近似解 y∗=f(x∗)。
我们可用下式估算 x∗ 的误差造成 y∗ 的误差:
- 绝对误差传播:
e(y∗)≈i=1∑n∂xi∂f(x∗)e(xi∗)=∇f(x∗)⊤e(x∗)
- 相对误差传播:
er(y∗)≈i=1∑n∂xi∂f(x∗)y∗xi∗er(xi∗)=∇lnf(x∗)⊤er(x∗)
其中
∇lnf(x)∈Rn,(∇lnf(x))i=∂lnxi∂lnf(x)=f(x)xi∂xi∂f(x)
注:本质上是因为 er(y∗)=y∗y−y∗≈Δ(lny)
基本运算的误差传播:
| 运算 | 绝对误差 | 相对误差 |
|---|
| 加减法 x1±x2 | e(x1)±e(x2) | x1±x2x1er(x1)±x1±x2x2er(x2) |
| 乘法 x1x2 | x2e(x1)+x1e(x2) | er(x1)+er(x2) |
| 除法 x1/x2 | x22x2e(x1)−x1e(x2) | er(x1)−er(x2) |
| 幂函数 xn | nxn−1e(x) | ner(x) |
注:有时先进行一些恒等变形再计算可以减少误差。
先验与后验误差分析
先验误差分析
在算法运行之前,仅根据问题的参数 d、函数 F以及解 x 的假设性质,对误差上界进行的理论估算。
-
向前分析:
估计对参数扰动 δd 引起的误差:
∥x−xn∥≤C(d,n,Properties(x))
其中 C 是不依赖于具体计算结果的常数或函数。
-
向后分析:
将近似解 xn 视为某个带有扰动的输入 d+δd 对应的精确解。估计 δd 的大小:
ηback=min{∥δd∥∣F(xn,d+δd)=0}
后验误差分析
在算法运行结束或运行中,进一步利用计算结果,如数值解 xn,对实际误差进行的定量评估。
也即:
∥x−xn∥≤C⋅η(xn,d)
其中 C 是常数,η 是基于 xn 构造的误差估计子。
注:
后验误差分析是自适应算法(Adaptive Algorithms)的灵魂。
若 η(xn,d)>εtol,则算法可以自动调整参数重新计算。
有效数字与浮点数表示
有效数字
定义:
x∗ 若可规格化为以下浮点数
±0.α1α2⋯αn×10m,α1=0
其中写出的数字都是准确的,则称 x∗ 有 n 位有效数字。
等价定义:
x∗ 的绝对误差限若满足
∣e(x∗)∣≤21×10m−n
其中 m 为 x∗ 规格化表示中的指数,则称 x∗ 有 n 位有效数字。
性质:
注:精度(Precision) = 准确度(Accuracy)。精度使用有效数字位数定义,准确度使用准确的有效数字位数定义。
IEEE-754 标准
学 ICS 去吧。
数值计算中的关键注意事项
- 避免相近数相减
- 防止量级悬殊数加减
- 优化计算步骤,即降低复杂度,也避免误差积累
- 选择合适精度类型,进行数值边界分析与类型安全检查
- 重视累积误差