计算方法-误差与分析
误差来源与分析
模型误差
- 在用计算机解决科学计算问题时,首先要建立数学模型,它是对被描述的实际问题进行抽象、简化而得到的,因而它是近似的。数学模型与实际问题之间出现的这种误差成为模型误差
观测误差
- 在数学模型中往往还有一些根据观测得到的物理量,如温度、长度、电压等,这些参量显然也包含误差,这种由观测产生的误差称为观测误差。
本课程不讨论“模型误差”和“观察误差”
截断误差/方法误差
- 当数学模型不能得到精确解时,通常要用数值方法求它的近似解,其近似解与精确解之间的误差称为截断误差或方法误差。(如泰勒余项定理得到的截断误差)
舍入误差
-
由于计算机的字长有限,原始数据在计算机上表示会产生误差,计算过程又可能产生新的误差,这种误差称为舍入误差。
-
FP64 -> FP32 -> FP16 -> FP8
例:用3.14159近似代替 \(\pi\),产生舍入误差
\(R = \pi - 3.14159 = 0.0000026…\)
四舍五入
当确切值 \(x\) 有多位数时,常四舍五入得到 \(x\) 的前几位近似值 \(x^*\)
例:\(x = \pi = 3.14159265…\)
-
取前 3 位,$x_{3}^{} = 3.14, \varepsilon_{3}^{} \leq 0.002 $
\(e_{3}^* = |\pi - 3.14| \leq 0.002 \leq \frac{1}{2}\times 10^{-2}\)
-
取前 5 位,$x_{5}^{} = 3.1416, \varepsilon_{5}^{} \leq 0.000008 $
\(e_{3}^* = |\pi - 3.14| \leq 0.000008 \leq \frac{1}{2}\times 10^{-4}\)
误差都不超过末位数字的半个单位
误差分析/估计
- 研究计算结果的误差是否满足精度要求
- 本课程主要讨论算法的截断误差与舍入误差
误差的基本概念
误差与误差限
定义1.1 设 \(x\) 为准确值,\(x^*\) 为 \(x\) 的近似值,称 \(e^* = x^* - x\) 为近似值的绝对误差,简称误差
- \(e^*\) 可正可负:当绝对误差为正时,叫做强近似值;当绝对误差为负时,叫做弱近似值
- 通常准确值 \(x\) 和误差 \(e^*\)都是未知的
估计出误差的绝对值不超过某正数 \(\varepsilon^*\) ,称为近似值的误差限
- 总是正数
- \(|x - x^*|\leq\varepsilon^*\),也可表示为\(x = x^*\pm\varepsilon^*\)
关于误差限:
- 误差限的大小不能完全表示近似值的好坏
- 在判断近似值好坏时,除考虑误差大小外,还应考虑准确值 \(x\) 本身的大小
相对误差
-
近似值的误差 \(e^*\) 与准确值 \(x\) 的比值,称为近似值 \(x^*\) 的相对误差,记作\(e_{r}^{*}:\)
\[e_{r}^* = \frac{e^*}{x} = \frac{x^*-x}{x} \] -
由于 \(x\) 未知,通常取
\[e_{r}^* = \frac{e^*}{x^*} = \frac{x^*-x}{x^*} \] -
如果 \(e_r^* = e^*/x^*\) 较小,这个近似是合理的
\[\frac{e^*}{x}-\frac{e^*}{x^*} = \frac{e^*(x^*-x)}{x^*x} = \frac{(e^*)^2}{x^*(x^*-e^*)} = \frac{(e^*/x^*)^2}{1-(e^*/x^*)} \]
相对误差限
- 相对误差可正可负,它的绝对值上界称为相对误差限,记作\(\varepsilon_r^*\),若\(\varepsilon^*\)为近似值的误差限,则:\[\varepsilon^*_r = \frac{\varepsilon^*}{|x^*|} \]
有效数字
若近似值 \(x^*\) 的误差限是某一位的半个单位,该位到 \(x^*\) 的第一位非零数字共有 \(n\) 位,就说 \(x^*\) 有 \(n\) 位有效数字:
可得标准形式,其中\(a_1\)是1到9中的数字;\(a_2\)至\(a_n\)是0到9中的数字
有效数字的误差为:
- 有效位数与小数点后有多少位数无关
- 绝对误差与误差限是有量纲的
- 相对误差与相对误差限是无量纲的
有效数字与相对误差限
定理1.1 对于下面的近似数
若\(x^*\)具有\(n\)位有效数字,则其相对误差限为
反之,若 \(x*\) 的相对误差限满足
则 \(x^*\) 至少具有 \(n\) 位有效数字
数值运算的误差估计
-
两个近似数 \(x_1^*\) 和 \(x_2^*\) ,其误差限分别为 \(\varepsilon (x_1^*)\) 和 \(\varepsilon (x_2^{*})\),则
\[\varepsilon (x_1^*\pm x_2^*) = \varepsilon (x_1^*) + \varepsilon (x_2^*) \]\[\varepsilon(x_1^*x_2^*)\approx |x_1^*|\varepsilon(x_2^*) + |x_2^*|\varepsilon(x_1^*) \]\[\varepsilon(\frac{x_1^*}{x_2^*}) \approx \frac{|x_1^*|\varepsilon(x_2^*)+|x_2^*|\varepsilon(x_1^*)}{|x_2^*|^2}\quad(x_2^*\neq 0) \]
一元函数的误差估计
-
当自变量有误差时,计算函数值误差限可用Talor展开式来估计
-
设 \(f(x)\) 是一元函数,\(x\) 的近似值为 \(x^*\),根据Taylor展开
\[f(x)-f(x^*) = f'(x^*)(x-x^*)+\frac{f''(\xi)}{2}(x-x^*)^2 \] -
其中 \(\xi\) 介于 \(x\) 与 \(x^*\)之间,上式取绝对值得
\[|f(x)-f(x^*)|\leq|f'(x^*)|\varepsilon(x^*)+\frac{|f''(\xi)|}{2}\varepsilon^2(x^*) \] -
\(f'(x^*)\)与\(f''(x^*)\)的比值不太大,误差限 \(\varepsilon(f(x^*))\) 近似为
\[\varepsilon(f(x^*)) \approx |f'(x^*)|\varepsilon(x^*) \]
多元函数的误差估计
-
当 \(f\) 为多元函数时,计算\(A = f(x_1, x_2, \dots, x_n)\)
-
如果 \(x_1, x_2, \dots, x_n\) 的近似值为 \(x_1^*, x_2^*, \dots, x_n^*\),则A的近似值为
\[A^* = f(x_1^*, x_2^*,\dots,x_n^*) \] -
函数值 \(A^*\) 的误差 \(e(A^*)\) 由Talor展开得
\[e(A^*) = A^*-A = f(x_1^*,x_2^*,\dots,x_n^*) - f(x_1,x_2,\dots,x_n) \approx \Sigma_{k=1}^{n}(\frac{\partial f(x_1^*,x_2^*,\dots,x_n^*)}{\partial x_k})(x_k^*-x_k) = \Sigma_{k=1}^{n}(\frac{\partial f}{\partial x_k})^*e_k^* \] -
\(A^*\)的误差限为:
\[\varepsilon(A^*)\approx\Sigma_{k=1}^{n}|(\frac{\partial f}{\partial x_k})^*|\varepsilon(x_k^*) \]
误差分析的方法与原则
误差分析的方法
实际工程或科学计算问题:
- 往往要运算千万次,每步都作误差分析是不可能的
- 误差积累有正有负,绝对值有大有小,都按最坏情况估计得到的结果比实际误差大得多
概率分析法
- 将数据/运算中的舍入误差视为适合某种分布的随机变量,确定结果的误差分布
误差定性分析
- 数值稳定性:运算过程舍入误差不增长的计算公式是数值稳定的,否则不稳定
误差分析的原则
原则1:要避免除数绝对值远远小于被除数绝对值
原则2:要避免两相近数相减
原则3:要防止大数 “吃掉” 小数
原则4:注意简化计算步骤,减少运算次数

浙公网安备 33010602011771号