数值分析第1章
数值计算的误差来源
- 模型误差:数学模型与实际问题之间的误差
- 截断误差(方法误差):近似解与精确解之间的误差
- 舍入误差:由于计算机字长有限与计算过程而产生的误差
主要讨论截断误差与舍入误差
误差
-
绝对误差:
\(x\)为准确值,\(x^{*}\)为近似值,称\(e^{*}=x^{*}-x\)为近似值的绝对误差,简称误差
-
误差限:
误差绝对值的一个上界,就是根据测量工具或计算情况估计出误差的绝对值不超过的某个整数\(\epsilon^*\),\(\epsilon^*\)叫做近似值的误差限
-
相对误差:
我们把近似值的误差\(e^*\)与准确值\(x\)的比值\(\frac{e^*}{x}=\frac{x^*-x}{x}\)称为近似值\(x^*\)的相对误差,记作\(e^*_r\)
但由式子我们可以看到,由于准确值我们无从得知,因此为了计算相对误差,通常取\(e^*_r=\frac{e^*}{x^*}=\frac{x^*-x}{x^*}\)
-
相对误差限:
相对误差的绝对值上界叫做相对误差限, 记作\(\epsilon^*_r\), 即\(\epsilon^*_r=\frac{\epsilon^*}{|x^*|}\)
-
有效数字:
若近似值\(x^*\)的误差限是某一位的半个单位,该位到\(x^*\)的第一位非零数字共有\(n\)位,就说\(x^*\)有\(n\)位有效数字. 它可以表示为
\[x^*=\pm10^m\times(a_1+a_2\times10^{-1}+\cdots+a_n\times10^{-(n-1)}), \]且
\[|x-x^*|\leq\frac{1}{2}\times10^{m-n+1} \]有效数字的定理有
- 定理 1
设近似数 \(x^{*}\) 表示为
\[\begin{array}{c} x^{*}=\pm 10^{m} \times\left(a_{1}+a_{2} \times 10^{-1}+\cdots+a_{n} \times 10^{-(n-1)}\right) \\ =\pm a_{1} a_{2} \cdots a_{n} \times 10^{m} \end{array}\]其中 \(m\) 为整数, \(a_{i}(i=1,2, \ldots, n)\) 是 \(0 - 9\) 中的一个数字, \(a_{1} \neq 0\),
若 \(x^{*}\) 有 \(\mathbf{n}\) 位有效数字, 则其相对误差限为 $$\varepsilon_{r}^{*} \leq \frac{1}{2 a_{1}} \times 10^{-(n-1)}$$
反之, 若 \(x^{*}\) 的相对误差限 \(\varepsilon_{r}^{*} \leq \frac{1}{2\left(a_{1}+1\right)} \times 10^{-(n-1)}\) , 则 \(x^{*}\) 至少有n位有效数字。
-
误差限运算
数值运算的误差限的加减乘除运算得到的误差限分别满足不等式:
\[\begin{aligned} &\varepsilon_(x_1^*\pm x_2^*)\leq\varepsilon_(x_1^*)+\varepsilon_(x_2^*)\\ &\varepsilon_(x_1^* x_2^*)\leq|x_1^*|~\varepsilon(x_2^*)+|x_2^*|~\varepsilon(x_1^*)\\ &\varepsilon_(x_1^*/ x_2^*)\leq\frac{|x_1^*|~\varepsilon(x_2^*)+|x_2^*|~\varepsilon(x_1^*)}{|x_2^*|^2},~~~x_2^*\ne0 \end{aligned}\]
-
数值稳定
一个算法如果输入数据有误差, 而在计算过程中舍入误差不增长,则称此算法是数值稳定的; 否则称此算法为不稳定的.
减小误差的原则
- 避免两个相近数相减
- 避免用绝对值很小的数做除数(避免当 \(y>>x\)时,进行\(\frac{y}{x}\))
- 注意运算次序(先简化再计算)和减小运算次数
- 避免大数吃小数
几种经验性避免方法:
\[\sqrt{x+\varepsilon}-\sqrt{x}=\frac{\varepsilon}{\sqrt{x+\varepsilon}+\sqrt{x}} ; \quad \ln (x+\varepsilon)-\ln x=\ln \left(1+\frac{\varepsilon}{x}\right) \]
算法评价
- 复杂性
- 精度
- 稳定性