误差
误差的分类
-
- 从实际问题提炼数学问题时忽略的次要因素导致与真实解的差称为模型误差.
-
- 测量如质量、温度等实际值时由于工具精度等原因测量产生的误差称为观测误差、数据误差、参量误差.
-
- 在数学求解过程中用近似公式代替准确公式求解 (如使用泰勒公式) 产生的误差称为截断误差、方法误差.
-
- 由于计算机计算精度不够, 舍入产生的误差称为舍入误差、计算误差.
注 1.1.1
绝对误差、相对误差与准确数字
通常我们并不知道准确值, 因而绝对误差也是不知道的, 但可以估计出绝对误差的上界 $\varepsilon$, 即 $|\Delta x|\leqslant \varepsilon$. $\varepsilon$ 称为绝对误差界或绝对误差限. 并记 $x=\widetilde{x}\pm\varepsilon$.
定义 1.1.2
同样的在实际计算中, 准确值 $x$ 是不知道的, 但由于
$$
\frac{x-\widetilde{x}}{\widetilde{x}}-\frac{x-\widetilde{x}}{x}
$$
是 $\dfrac{\Delta_x}{\widetilde{x}}$ 的平方级, 当其较小时, 可以忽略不记. 而此时相对误差可取为
$$
|\delta_x|=\frac{|x-\widetilde{x}|}{|\widetilde{x}|}.
$$ 并定义相对误差限或相对误差界, 为 $\varepsilon_r$, 满足 $|\delta_x|\leqslant\varepsilon_r$. 记为 $x=\widetilde{x}(1\pm\varepsilon_r)$.
定义 1.1.3
若已知 $\widetilde{x}$ 的相对误差界为 $\dfrac{1}{2}\times 10^{-t}$, 即
$$
\dfrac{|x-\widetilde{x}|}{|\widetilde{x}|}\leqslant\dfrac{1}{2}\times 10^{-t},
$$
则 $\widetilde{x}$ 的绝对误差为
$$
|x-\widetilde{x}|\leqslant|\widetilde{x}|\times \dfrac{1}{2}\times 10^{-t}\leqslant\dfrac{1}{2}\times 10^{-(t-m)}.
$$
由此可知, $\widetilde{x}$ \tr{至少}具有 $t-m+m=t$ 位准确数字.
定义 1.1.4
计算机中数的表示与舍入误差
计算机中的实数采用浮点表示法, 设计算机采用 $\beta$ 进制, 字长为 $t$, 将非零实数 $x$ 在计算机上表示为 $$ fl(x)=\widetilde{x}=\pm\left{\dfrac{x_1}{\beta}+\dfrac{x_2}{\beta^2}+\cdots+\dfrac{x_t}{\beta^t}\right}\times\beta^l=\pm0.x_1x_2\cdots x_t\times\beta^l, $$ 其中 $x_1\in\{1,2,\cdots,\beta-1\},\ x_i\in\{0,1,\cdots,\beta-1\}\ (i=2,3,\cdots,t).$
尾数部分: $0.x_1x_2,\cdots x_t$.
指数部分: $\beta^l$.
指数: $l\in\Z$, 也称阶码, 其取值范围 $L\leqslant l\leqslant U\ (L<0,U>0)$. $L,U$ 分别称为指数的下、上界.
规格化浮点数: $fl(x)$.
浮点数集: $F(\beta,t,L,U)=\{0\}\bigcup\{fl(x)=\pm0.x_1x_2\cdots x_t\times\beta^l\}$.
显然, 浮点数集 $F(\beta,t,L,U)$ 中共有 $2(\beta-1)\beta^{t-1}(U-L+1)+1$ 个数, 所能表示的范围为 $$ fl_{min}(x)=\beta^{L-1}\leqslant|fl(x)|\leqslant\beta^U\times(1-\beta^{-t})=fl_{max}(x). $$
注 1.1.5
在浮点数系 $F(\beta,t,L,U)$ 中 $fl(x)$ 产生的绝对误差与相对误差分别为 $$\begin{aligned} |x-fl(x)|\leqslant\dfrac{1}{2}\beta^{-t}\times\beta^l=\dfrac{1}{2}\beta^{l-t},\ $$ 10pt] \dfrac{|x-fl(x)|}{|x|}\leqslant\dfrac{\dfrac{1}{2}\beta^{l-t}}{\beta^{l-1}}=\dfrac{1}{2}\beta^{-(t-1)}. \end{aligned}$$ 由此可见, 相对误差限只与计算机数的进制和字长有关, 称为计算机的相对精度.
一些计算原则: - 为避免大数"吃掉"小数, 若干个数相加时, 宜采取绝对值较小的数优先加的原则. - 尽量避免两个相近的数相减. - 避免绝对值小的数作除数, 绝对值大的数作乘数. - 为减少舍入误差和节省计算时间, 在计算中应尽量简化计算步骤, 减少运算次数. 例如用秦九韶算法将多项式 $p_n(x)$ 写作 $(\cdots((a_nx+a_{n-1})x+a_{n-2})x+\cdots+a_1)x+a_0$. - 选用数值稳定性好的算法.