基本概念
说明:以下公式中,都是使用近似值xxx去近似准确值x∗x^*x∗。可分别得到绝对误差,绝对误差限,相对误差和相对误差限。
绝对误差
e=x∗−x e = x^* - x e=x∗−x
绝对误差限
∣e∣⩽ε \left | e \right | \leqslant \varepsilon ∣e∣⩽ε
相对误差
er=x∗−xx∗(定义式) e_r = \frac {x^* - x} {x^*} (定义式)er=x∗x∗−x(定义式)
er=x∗−xx(实际使用) e_r = \frac {x^* - x} {x} (实际使用)er=xx∗−x(实际使用)
相对误差限
εr=ε∣x∣ \varepsilon_r = \frac { \varepsilon } {\left |x\right|} εr=∣x∣ε
四舍五入的绝对误差限
凡是由精确值经过四舍五入得到的近似值,其绝对误差限等于该近似值末数位的半个单位。
ε=该近似值末数位的半个单位\varepsilon = 该近似值末数位的半个单位ε=该近似值末数位的半个单位
有效数字
定义1.1 nnn位有效数字
设数xxx是数x∗x^*x∗的近似值。如果xxx的绝对误差限是它的某一位的半个单位,并且从xxx左起第一个非零数字到该位共有nnn位,则称这个nnn个数字为xxx的有效数字,也称用xxx近似x∗x^*x∗时具有nnn位有效数字。
数xxx总可以写成如下的形式:
x=±0.α1α2...αk×10m (α1≠0)x = \pm 0.\alpha_1\alpha_2...\alpha_k \times10^m \, (\alpha_1\neq 0)x=±0.α1α2...αk×10m(α1=0)
- 若xxx具有nnn位有效数字 ⇔∣x∗−x∣⩽12×10m−n\Leftrightarrow \left | x^* - x \right | \leqslant \frac{1}{2}\times10^{m-n}⇔∣x∗−x∣⩽21×10m−n
- 若xxx具有nnn位有效数字 ⇒{εr⩽12α1×10m−nε⩽0.α1α2...αk×10m2(α1+1)×101−n\Rightarrow \left\{\begin{matrix}\varepsilon_r \leqslant \frac{1}{2\alpha_1}\times10^{m-n} \\ \varepsilon\leqslant\frac{0.\alpha_1\alpha_2...\alpha_k \times 10^m}{2(\alpha_1+1)}\times10^{1-n}\end{matrix}\right.⇒{εr⩽2α11×10m−nε⩽2(α1+1)0.α1α2...αk×10m×101−n
数值计算中的几个原则
- 避免两个相近的数相减
- 防止大数“吃掉”小数
- 绝对值太小的数不宜作除数
- 注意简化计算程序,减少计算次数
- 选用数值稳定性好的算法