误差
误差的类型
误差描述了数值计算中近似解的精确程度,可分为以下几类:
误差的度量
绝对误差
设 \(x^*\) 为精确值,\(\tilde{x}\) 为近似值,则称 \(\tilde{x}\) 的绝对误差为
\[
E(\tilde{x})=x^*-\tilde{x}
\]
绝对误差具有量纲,反映了近似值与精确值之间的差距,但不能很好地反映近似值的精度。
绝对误差限
若 \(\exists\; \delta>0\),使得 \(\left\vert E(\tilde{x}) \right\vert=\left\vert x^*-\tilde{x} \right\vert\le\delta\),则称 \(\delta\) 为 \(\tilde{x}\) 的绝对误差限。
相对误差
设 \(x^*\) 为精确值,\(\tilde{x}\) 为近似值,则称 \(\tilde{x}\) 的相对误差为:
\[
E_r(\tilde{x})=\frac{x^*-\tilde{x}}{x^*}\times 100 \% \quad(x^*\ne 0)
\]
相对误差不具有量纲,能够较好地反映误差的特性及近似值的精度。需要注意的是,由于 \(x^*\) 更难确定,在分析时,我们也用 \(\frac{x^*-\tilde{x}}{\tilde{x}}\) 作为相对误差。似乎没有往年题目会因为这两者的辨析产生歧义,不过可以在答疑时进一步确认。
相对误差限
若 \(\exists\delta_r>0\),使得 \(\left\vert E_r(\tilde{x}) \right\vert=\left\vert \frac{x^*-\tilde{x}}{x^*} \right\vert\le\delta_r\),则称 \(\delta_r\) 为 \(\tilde{x}\) 的相对误差限。同样地,有时也将分母换成 \(\tilde{x}\)。
有效数字
如果近似值 \(\tilde{x}\) 的误差不超过某位的半个单位,该位数字到 \(\tilde{x}\) 的第一位非零数字共有 \(n\) 位,那么这 \(n\) 位数字称 为\(\tilde{x}\) 的有效数字。
\[
\tilde{x}=\pm 10^k\times 0.a_1a_2\cdots a_n
\]
\(\left\vert x^*-\tilde{x} \right\vert\le\frac 12\times 10^{k-n}\) 时,称 \(\tilde{x}\) 是 \(x^*\) 的 \(n\) 位有效数字。
误差和有效数字的关系
由相对误差的定义 \(E_r(\tilde{x})=\frac{E(\tilde{x})}{\left\vert \tilde{x} \right\vert}\) 可知 \(\delta_r(\tilde{x})=\frac{\delta(\tilde{x})}{\left\vert \tilde{x} \right\vert}\)。
有效数字和相对误差限的关系由以下定理给出:
- 若 \(\tilde{x}\) 有 \(n\) 位有效数字,则 \(\left\vert \frac{x^* - \tilde{x}}{x^*} \right\vert \le \frac{1}{2a_1} \times 10^{1-n}\)。
- 若 \(\left\vert \frac{x^* - \tilde{x}}{x^*} \right\vert \le \frac{1}{2(a_1+1)} \times 10^{1-n}\),则 \(\tilde{x}\) 至少具有 \(n\) 位有效数字。
误差的传播
函数误差的传播
若 \(f(x)\) 在 \(\tilde{x}\) 的邻域上可微,由其在 \(x=\tilde{x}\) 的泰勒展开式 \(f(x^*)\approx f(\tilde{x})+f'(\tilde{x})(\tilde{x}-x^*)\) 近似可得
\[
\left\vert f(\tilde{x})-f(x^*) \right\vert\le \left\vert f'(\tilde{x}) \right\vert\cdot \left\vert \tilde{x}-x^* \right\vert
\]
由此对近似函数 \(f(\tilde{x})\) 的误差限和相对误差限分别有如下估计式:
\[
\begin{cases}
\delta f(\tilde{x})\le\left\vert f'(\tilde{x}) \right\vert\cdot\delta(\tilde{x}) \\
\delta_r f(\tilde{x})\le \left\vert \frac{f'(\tilde{x})}{f(\tilde{x})}\right\vert\cdot\delta(\tilde{x})
\end{cases}
\]
对于二元函数,若 \(f(x,y)\) 在 \((\tilde{x},\tilde{y})\) 的邻域上可微,由其泰勒展开式:
\[
f(x^*,y^*)\approx f(\tilde{x},\tilde{y})+\frac{\partial f(\tilde{x},\tilde{y})}{\partial x}(x^*-\tilde{x})+\frac{\partial f(\tilde{x},\tilde{y})}{\partial y}(y^*-\tilde{y})
\]
近似可得
\[
\left\vert f(x^*,y^*)-f(\tilde{x},\tilde{y}) \right\vert\le \left\vert \frac{\partial f(\tilde{x},\tilde{y})}{\partial x}\right\vert\cdot\left\vert x^*-\tilde{x} \right\vert+\left\vert \frac{\partial f(\tilde{x},\tilde{y})}{\partial y}\right\vert\cdot\left\vert y^*-\tilde{y} \right\vert
\]
由此对近似函数 \(f(\tilde{x},\tilde{y})\) 的误差限和相对误差限分别有如下估计式:
\[
\begin{cases}
\delta f(\tilde{x},\tilde{y})\le \left\vert \frac{\partial f(\tilde{x},\tilde{y})}{\partial x}\right\vert\cdot\delta(\tilde{x})+\left\vert \frac{\partial f(\tilde{x},\tilde{y})}{\partial y}\right\vert\cdot\delta(\tilde{y}) \\
\delta_r f(\tilde{x},\tilde{y})=\left\vert \frac{\delta f(\tilde{x},\tilde{y})}{f(\tilde{x},\tilde{y})}\right\vert
\end{cases}
\]
算术误差的传播
将算术运算视为二元函数,可以算出加减乘除运算的误差传播公式:
\[
\begin{cases}
\delta(\tilde{x}\pm\tilde{y})\le\delta(\tilde{x})+\delta(\tilde{y}) \\
\delta_r(\tilde{x}\pm\tilde{y})\le\frac{\delta(\tilde{x})+\delta(\tilde{y})}{\left\vert \tilde{x}\pm\tilde{y} \right\vert}
\end{cases}
\]
\[
\begin{cases}
\delta(\tilde{x}\tilde{y})\le\left\vert \tilde{y} \right\vert\delta(\tilde{x})+\left\vert \tilde{x} \right\vert\delta(\tilde{y}) \\
\delta_r(\tilde{x}\tilde{y})\le\frac{\delta(\tilde{x})}{\left\vert \tilde{x} \right\vert}+\frac{\delta(\tilde{y})}{\left\vert \tilde{y} \right\vert} = \delta_r(\tilde{x}) + \delta_r(\tilde{y})
\end{cases}
\]
\[
\begin{cases}
\delta(\frac{\tilde{x}}{\tilde{y}}) \le \frac{1}{\left\vert \tilde{y} \right\vert}\delta (\tilde{x})+\left\vert \frac{\tilde{x}}{\tilde{y}^2} \right\vert\delta(\tilde{y}) \\
\delta_r(\frac{\tilde{x}}{\tilde{y}}) \le \frac{\delta(\tilde{x})}{\left\vert \tilde{x} \right\vert}+\frac{\delta(\tilde{y})}{\left\vert \tilde{y} \right\vert}=\delta_r(\tilde{x})+\delta_r(\tilde{y})
\end{cases}
\]