数值分析中有效数字的定义理解及计算

(170) 2024-04-18 22:01:01

一、有效数字的定义

要定义有效数字,我们需要首先给出下面几个定义,其实都是很简单能理解的东西,但是用数学公式表达一下就有点绕。

误差:

x ∗ x^{\ast } x是准确值 x x x的一个近似值,则称 e ∗ = x ∗ − x e^{\ast }=x^{\ast }-x e=xx x ∗ x^{\ast } x的误差。

这个就是近似值减去实际值,而且误差肯定是针对近似值来说的,所以是称 e ∗ e^{\ast } e x ∗ x^{\ast } x的误差

误差限:

∣ e ∗ ∣ ≤ ε ∗ \left| e^{\ast }\right| \leq \varepsilon ^{\ast } eε,则称 ε ∗ \varepsilon ^{\ast } ε x ∗ x^{\ast } x的误差限

上面说的误差和误差限都是绝对误差限,都是有量纲的,比如说100米的绳子,近似长度是99米,误差是1米。又比如3米的绳子,近似长度是2米,误差也是1米。误差相同,但是对于近似来说,显然前面一个例子近似程度更加好,所以又提出了相对误差的概念,其实就是用绝对误差再除以准确值。我们一般说的误差都是绝对误差,说相对误差时一定要用相对误差四个字,不然就混淆了。。。。
相对误差:

我们把近似值的误差 e ∗ e^{\ast } e与准确值 x x x的比值 e ∗ x = x ∗ − x x \dfrac {e^{\ast }}{x}=\dfrac {x^{\ast }-x}{x} xe=xxx 称为近似值 x ∗ x^{\ast } x的相对误差,记作 e r ∗ e^{\ast }_{r} er

但是有个问题,实际计算时准确值你是不知道的(要不然也就不用求近似了),所以通常就取其近似值进行计算:
e r ∗ = e ∗ x ∗ = x ∗ − x x ∗ e^{\ast }_{r}=\dfrac {e^{\ast }}{x^{\ast }}=\dfrac {x^{\ast }-x}{x^{\ast }} er=xe=xxx
但是条件是 e r ∗ e^{\ast }_{r} er较小。
相对误差限:

相对误差可正可负,它的绝对值的上界称为相对误差限,记作: ε r ∗ = ε ∗ ∣ x ∗ ∣ \varepsilon ^{\ast }_{r}=\dfrac {\varepsilon ^{\ast }}{\left| x^{\ast }\right| } εr=xε

误差就定义到这里了,其实很简单,绝对误差就是近似值减准确值,误差限就是绝对误差的绝对值能达到的上限,就是最多能差多少。相对误差就是绝对误差除以了准确值,但准确值我们一般又不知道,所以直接就除以了估计的近似值。相对误差限就是绝对误差限除以了近似值的绝对值。

再说有效数字的定义。我们在小学就学过有效数字,到了学数值分析的时候,却被一个定义绕得你头晕晕的,但是,数学就是这样,为了达到一些准确性,往往用很复杂的公式来表示一个简单的意思。下面我们看一下有效数字的定义和理解:

二、有效数字定义的理解

先来想想有效数字是用来干什么的,在人们测量的过程中,用来测量的工具、以及测量时读数都会产生误差,也就是高中学过的系统误差和偶然误差,比如的你的尺子本来就是坏的,测出来的值离真实值肯定就有误差呀,这个误差是有规律性的,比如测2米的物体,你的尺子读数比真实值多10cm,测4米的物体,你的尺子读数就多20cm。还有就是偶然误差,你有一把非常精准的尺子,刻度非常精准地贴合物体,但是不同的人来测,来度量的时候,每个人读出来的都不一样,或者测量时的动作不一样,导致出现了误差,就是偶然误差。
但是我们在测量得出结果的时候,总是想要知道在测量结果哪个程度上是准确无误的。但这并不意味着有效数字是从左到右有多少位数字是与真实值相同的数字。
有效数字存在通俗定义数值分析定义两种:

通俗定义:假设 x ∗ x^* x x x x的近似值,如果从第一个非零数字开始的第 n n n位对 x ∗ x^* x x x x进行四舍五入后, x ∗ x^* x x x x完全一致,那么称 x ∗ x^* x n n n位有效数字。

通俗定义与我们中小学学习的有效数字的概念是一致的,然而这一有效数字的概念却并不能有效地用于数值计算过程中近似解与准确解的分析,后面会举例分析。
现在再来看数值分析的定义:

还是假设 x x x是准确值, x ∗ x^* x是近似值。 x = ± 0. a 1 a 2 … a n … × 1 0 m x = \pm0.a_1a_2\ldots a_n\ldots\times10^m x=±0.a1a2an×10m,其中 m m m是整数, a 1 a_1 a1 a n a_n an都是0到9中的某个数字,且 a 1 ≠ 0 a_1\neq0 a1=0。如果有 ∣ x − x ∗ ∣ ≤ 0.5 × 1 0 − k |x-x^*| \le 0.5 \times 10^{-k} xx0.5×10k,即 x ∗ x^* x的误差不超过 1 0 − k 10^{-k} 10k的半个单位,则称近似数 x ∗ x^* x准确到 1 0 − k 10^{-k} 10k位,并说 x ∗ x^* x m + k m+k m+k位有效数字。
《数值分析及其MATLAB实验》第二版,姜健飞等,P3

如果误差限是某一位上的半个单位,那么也就意味着你的测量读数和真实值的读数的差异最多不超过那一位的1/2。

例子:
毫米刻度的尺子测量一根木棍,测量读数是876mm,误差限是0.5mm,有效数字就是3位有效数字。
仔细想一想,误差限是0.5mm,如果真实值是872.4mm,那么读数可能会是873mm吗?不可能,因为误差是0.6mm,超过误差限了,读数应该在871.9和872.9之间。

那么通俗定义和数值定义有什么区别呢?
拿圆周率来举例, π = 3.1415926... \pi=3.1415926... π=3.1415926...
近似值 x 1 = 3.142 x_1=3.142 x1=3.142
近似值 x 2 = 3.1414 x_2=3.1414 x2=3.1414
按照通俗定义, x 1 x_1 x1有4位有效数字,近似值和准确值同时四舍五入到3.142时相等, x 2 x_2 x2只有3位有效数字,近似值和准确值四舍五入到3.14时相等。
而按照数值分析的定义, ∣ π − x 1 ∣ ≤ 0.5 × 1 0 − 3 |\pi-x_1|\le0.5\times10^{-3} πx10.5×103,有4位有效数字, ∣ π − x 4 ∣ ≤ 0.5 × 1 0 − 3 |\pi-x_4|\le0.5\times10^{-3} πx40.5×103也有4位有效数字。(注意计算时要算上其整数位数)。
然而 x 2 x_2 x2明显比 x 1 x_1 x1离真实值更近,是更好的近似值,因此通俗定义是不合理的,不利于进行准确的分析。

三、该如何计算

要计算有效数字:
或者要知道误差限,
或者要知道误差(知道了误差就可以求误差限),然后按照定义计算就行了。

圆周率近似值3.1415926的有效数字
真实值3.14159265358979…
误差为0.00000005358979…<0.5×10^(-6)
有效数字为7

THE END

发表回复