本文主要是介绍有效数字 | 相对误差与有效数位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有效数字
数学上用“四舍五入”的法则将一个位数很多的数表示成一定位数的数。如果一个近似数的误差限是它某一位的半个单位,则称它准确到这一位(即该位数字是准确的、有效的和可靠的)。并且,从该位起直到前面第一个非零数字为止的所有数字都称为有效数字,即有:
定义1:设 x ∗ x^* x∗是一个准确数,x是它的近似数,若
∣ x ∗ − x ∣ < 1 / 2 × 1 0 − n |x^*-x|<1/2\times 10^{-n} ∣x∗−x∣<1/2×10−n
就是说,用x近似表示 x ∗ x^* x∗时准确到小数点之后第n位(精确度),并把从该位起到x的第一位非零数字之间的一切数字都叫做有效数字,并把有效数字的位数叫做有效数位。
例如:若将数x用规格化形式表示,则有
x = ± 0 ⋅ a 1 a 2 a 3 ⋯ a s ⋯ a k × 1 0 m ( a 1 ≠ 0 ) x=\pm 0·a_1a_2a_3\cdots a_s\cdots a_k\times 10^m \quad (a_1\neq 0) x=±0⋅a1a2a3⋯as⋯ak×10m(a1=0)
其中,s为有效数字的位数,m为阶数。m的确定方法如下:
当 ∣ x ∣ ≥ 1 |x|\geq 1 ∣x∣≥1时,则m=整数部分的位数;
当 0.1 ≤ ∣ x ∣ < 1 0.1 \leq |x|<1 0.1≤∣x∣<1时,则 m = 0 m=0 m=0;
当 ∣ x ∣ < 0.1 |x|<0.1 ∣x∣<0.1时,则 m = − m=- m=−(小数点后零的个数)
若
∣ x − x ∗ ∣ < 1 2 × 1 0 − n = 1 2 × 1 0 − ( s − m ) = 1 2 × 1 0 m − s , 1 ≤ s ≤ k (1) |x-x^*|<\frac{1}{2}\times 10^{-n} = \frac{1}{2}\times 10^{-(s-m)}=\frac{1}{2}\times 10^{m-s}, \quad 1\leq s\leq k \tag{1} ∣x−x∗∣<21×10−n=21×10−(s−m)=21×10m−s,1≤s≤k(1)
则x的有效数位为:
s = n + m (2) s=n+m \tag{2} s=n+m(2)
应用公式(1)和(2)可以判断一个数的某一位数字是否为有效数字,从而可确定该数的有效数位。
例1:
对于数 0.08698 , n = 5 , m = − 1 , s = n + m = 4 0.08698,n=5,m=-1,s=n+m=4 0.08698,n=5,m=−1,s=n+m=4
对于数 0.8698 , n = 4 , m = 0 , s = n + m = 4 0.8698,n=4,m=0,s=n+m=4 0.8698,n=4,m=0,s=n+m=4
对于数 869.8 , n = 1 , m = 3 , s = n + m = 4 869.8,n=1,m=3,s=n+m=4 869.8,n=1,m=3,s=n+m=4
对于数 8698 , n = 0 , m = 4 , s = n + m = 4 8698,n=0,m=4,s=n+m=4 8698,n=0,m=4,s=n+m=4
一个数精确到小数点后n位,并不表明它一定有n位有效数字。应注意有效数位s的计算。
例2:对于圆周率 π = 3.1415926 ⋯ \pi=3.1415926\cdots π=3.1415926⋯,用四舍五入取小数点后4位时,近似值为 3.1416 3.1416 3.1416,此时
∣ π − 3.1416 ∣ ≤ 1 2 × 1 0 − 4 |\pi-3.1416|\leq \frac{1}{2}\times 10^{-4} ∣π−3.1416∣≤21×10−4
即有 m = 1 , n = 4 m=1,n=4 m=1,n=4,所以有效数位为 s = n + m = 5 s=n+m=5 s=n+m=5,绝对误差限为 1 2 × 1 0 − 4 \frac{1}{2}\times 10^{-4} 21×10−4
如果取 π = 3.14 \pi=3.14 π=3.14,则 m = 1 , n = 2 m=1,n=2 m=1,n=2,有效数位为 s = n + m = 3 s=n+m=3 s=n+m=3,其绝对误差限为 1 2 × 1 0 − 2 \frac{1}{2}\times 10^{-2} 21×10−2
例3:设 x ∗ = 8.000033 x^*=8.000033 x∗=8.000033,若取 x = 8.0000 x=8.0000 x=8.0000,则
∣ x − x ∗ ∣ = 0.000033 = 0.33 × 1 0 − 4 < 1 2 × 1 0 − 4 = 1 2 × 1 0 1 − 5 |x-x^*|=0.000033=0.33\times 10^{-4}<\frac{1}{2}\times 10^{-4}=\frac{1}{2}\times 10^{1-5} ∣x−x∗∣=0.000033=0.33×10−4<21×10−4=21×101−5
于是有 m = 1 , s = 5 , n = s − m = 5 − 1 = 4 m=1,s=5,n=s-m=5-1=4 m=1,s=5,n=s−m=5−1=4。所以 8.0000 8.0000 8.0000的有效数字为5位,它精确到小数点后4位
例4:设 x ∗ = 30.4500364 ⋯ x^*=30.4500364\cdots x∗=30.4500364⋯若取 x = 30.45004 x=30.45004 x=30.45004,则
∣ x − x ∗ ∣ = 0.0000036 = 0.36 × 1 0 − 5 < 1 2 × 1 0 − 5 = 1 2 × 1 0 2 − 7 |x-x^*|=0.0000036=0.36\times 10^{-5}<\frac{1}{2}\times 10^{-5}=\frac{1}{2}\times 10^{2-7} ∣x−x∗∣=0.0000036=0.36×10−5<21×10−5=21×102−7
所以, 30.45004 30.45004 30.45004的有效数字为7位,它精确到小数点后5位。
相对误差和有效数位之间的关系
根据有效数字和相对误差的概念可以得出两者之间的关系。
定理2:若近似数 x = ± 0. a 1 a 2 a 3 ⋯ a s − 1 a s × 1 0 m ( a 1 ≠ 0 ) x=\pm 0.a_1a_2a_3\cdots a_{s-1}a_s \times 10^m(a_1\neq 0) x=±0.a1a2a3⋯as−1as×10m(a1=0)具有s位有效数字,则其相对误差为:
e r ( x ) ≤ ϵ r = 1 2 a 1 × 1 0 − s + 1 e_r(x)\leq \epsilon_r=\frac{1}{2a_1}\times 10^{-s+1} er(x)≤ϵr=2a11×10−s+1
例1:求 6 \sqrt{6} 6的近似值,使其相对误差不超过 1 2 × 1 0 − 3 \frac{1}{2}\times 10^{-3} 21×10−3
解:因为 6 = 2.4494 \sqrt 6=2.4494 6=2.4494,取 a 1 = 2 a_1=2 a1=2,设 6 \sqrt 6 6取s位有效数字,则
1 2 a 1 × 1 0 − s + 1 = 1 2 × 2 × 1 0 − s + 1 = 1 2 × 1 0 − 3 s = 3 ⋯ , 故 s ≥ 4 , 6 ≈ 2.449 \frac{1}{2a_1}\times 10^{-s+1}=\frac{1}{2\times 2}\times 10^{-s+1}=\frac{1}{2}\times 10^{-3} \\ s=3\cdots ,故s\geq 4,\,\sqrt 6\approx 2.449 2a11×10−s+1=2×21×10−s+1=21×10−3s=3⋯,故s≥4,6≈2.449
定理3:若近似数 x = ± 0. a 1 a 2 a 3 ⋯ a s × 1 0 m ( a 1 ≠ 0 ) x=\pm 0.a_1a_2a_3\cdots a_s \times 10^m(a_1\neq 0) x=±0.a1a2a3⋯as×10m(a1=0)的相对误差
e r ( x ) ≤ 1 2 a 1 + 1 × 1 0 − s + 1 e_r(x)\leq \frac{1}{2a_1+1}\times 10^{-s+1} er(x)≤2a1+11×10−s+1
则该近似数有s位有效数字。
从误差和有效数字的定义以及上述两个定理可以看出:绝对误差与小数点后的位数(数的精确度)有关;相对误差与有效数字的位数有关。
这篇关于有效数字 | 相对误差与有效数位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!