数值分析(2)-误差

文章目录

  • 2 误差 in 数值分析
    • 2.1 误差的来源和分类
    • 2.2 绝对误差、相对误差和有效数字
    • 2.3 数值计算中的几个原则

2 误差 in 数值分析

在计算中,计算结果的精确度十分重要,误差就是影响精度的东西

2.1 误差的来源和分类

误差来源主要有四种:

  • 模型误差

数学模型,即表示计算的公式或方程,本身就是近似的,就不就不精确,这种情况导致的误差,就叫模型误差。

  • 观测误差

对物理世界中的参数进行观测时产生的误差,比如测定一个人的身高,无论用多么精密的工具,肯定都会存在误差。

  • 截断误差

用近似方法所产生的误差,也叫方法误差,比如利用泰勒(Taylor)公式:

e x = 1 + x 1 ! + . . . + x n n ! + x n + 1 ( n + 1 ) ! e θ x e^x=1+\frac{x}{1!}+...+\frac{x^n}{n!}+\frac{x^{n+1}}{(n+1)!}e^{\theta x} ex=1+1!x+...+n!xn+(n+1)!xn+1eθx

我们要计算左边的值,那么现实不允许我们计算无穷多项,所以只能近似使用:

e x ≈ I = 1 + x 1 ! + x 2 2 ! + . . . + x n n ! e^x\approx I = 1+\frac{x}{1!}+\frac{x^2}{2!}+...+\frac{x^n}{n!} exI=1+1!x+2!x2+...+n!xn

此时上面公式的截断误差就是:

R = e x − I = x n + 1 ( n + 1 ) ! e θ x , 0 < θ < 1 R=e^x-I=\frac{x^{n+1}}{(n+1)!}e^{\theta x} , 0<\theta <1 R=exI=(n+1)!xn+1eθx,0<θ<1

  • 舍入误差

由于计算机字长有限和浮点数表示方法的问题,计算机会按照舍入原则对超出其表示精度的数据舍入,导致结果的不精确。

数值分析中,一般假定模型正确,不考虑模型误差和观测误差。

模型误差和截断误差的区别

根据前面所说,这两种误差都是公式上存在误差。

实际上泰勒公式本身这个模型是精确的,只是我们实际计算的数值方法是近似的,这就是二者区别。数学模型是精确的情况下,为了能够计算(无穷多项是计算不出来的),我们会使用带有截断误差的近似数值方法

2.2 绝对误差、相对误差和有效数字

  • 绝对误差:

设x是精确值 x ∗ x^* x的一个近似值:

e = x ∗ − x e = x^* -x e=xx

e就称为x的绝对误差,简称误差。如果:

∣ e ∣ ≤ ε |e|\le \varepsilon eε

则称 ε \varepsilon ε为近似值x的绝对误差限或者绝对误差界,简称误差限、误差界

需要知道的是,绝对误差是无法精确求出来的,因为我们无法知道精确值的真实数值到底是多少。

同时,绝对误差也存在局限性,因为它没有反应相对于精确之误差所占比例。比如,(1,1.1)、(100,100.1)这两组数都是误差为0.1,但是因为其数值大小不同,误差造成的影响也大有不同。所以便产生了下面概念:

  • 相对误差

e r = e x ∗ = x ∗ − x x ∗ e_r = \frac{e}{x^*}=\frac{x^*-x}{x^*} er=xe=xxx

e r e_r er就是相对误差,但是同样因为精确值是未知的,所以相对误差也常取:

e r = e x = x ∗ − 1 x e_r=\frac{e}{x}=\frac{x^*-1}{x} er=xe=xx1

同时,相对误差绝对值的上界 ∣ e r ∣ |e_r| er;

ε r = ε ∣ x ∣ \varepsilon_r=\frac{\varepsilon}{|x|} εr=xε
∣ e r ∣ ≤ ε r |e_r|\le\varepsilon_r erεr

ε \varepsilon ε相对误差限相对误差界

  • 有效数字

书上原话:

设数x是 x ∗ x^* x的近似值,如果x的绝对误差限是它的某一数位的半个单位,并且从x左起第一个非零数字到该位共有n位,那么就称这n个数字为x的有效数字,也称用x近似 x ∗ x^* x时具有n位有效数字。

2.3 数值计算中的几个原则

  • 避免两个相近的数相减

这会让有效数位减少,相对误差放大

  • 防止大数"吃掉"小数

由于计算机位数限制,和大数在一起,小数可能会被低位溢出掉

  • 绝对值太小的数不宜作除数

绝对值太小的除法结果,会非常大,可能会导致数据高位溢出

  • 注意简化计算程序,减计算次数

还是由于计算机位数,每一步计算都会放大误差,积累误差

  • 使用数值稳定性好的算法

数值稳定:舍入误差积累可控制。

误差积累必须可控制,否则算法没有实用价值。

你可能感兴趣的:(数值分析)