有效数字

有效数字(significant figures,significant digits,简写 sig figs),其代表一个是由若干位數字组成,其中影响其测量精度的数字被称作有效数字,也称有效数位[1]

有效数字是科学计算中用以表示一定长度浮点数精度的那些数字,一般指一个用小数形式表示的浮点数中,从第一个非零的数字算起的所有数字;例如:1.24和0.00124的有效数字都有3位。并且在取有效数字时一般会遵循四舍五入进位规则[2]。例如取1.23456789为三位有效数字后的数值将会是1.23,而取四位有效数字后的数值将会是1.235。

辨别有效数字

簡單的規則如下:

  • 所有非零数字都是有效的;
  • 非零数字间的零都是有效的;
  • 前缀零始终无效;
  • 对于需要小数点的数,后缀零(最后一个非零数字后的零)是有效的;
  • 对于不需要小数点的数,后缀零可能有效也可能無效。需要根據额外的符号或者误差訊息决定。

所有非零数字都有效。例如 91 有两位有效数字(9 和 1),而 123.45 有五位有效数字(1、2、3、4、5)。

两个非零数字之间的零都有效。例如 101.1203 有七位有效数字(1、0、1、1、2、0、3)。

开头的零始终无效。例如 0.00052 只有两位有效数字(5 和 2)。

包含小数点的数中,结尾的零是有效的。例如 12.2300 有六位有效数字(1、2、2、3、0、0),而 0.000122300 也只有六位有效数字(1 前面的 0 都无效),120.00 则有五位。这一规则是因为小数里结尾的零可以明确精度。例如在精确到小数点后四位(0.0001)进行度量时,如果仅给出 12.23 的结果,可能会被误解为测量时只精确到小数点后两位,而给出 12.2300 的结果,则可以明确有小数点后四位的精度(例子中的结果有六位有效数字)。

针对不包含小数点的数,结尾的零是否是有效数字可以有不同的理解。例如仅给出 1300,我们无法得知它是精确到了最小单位(只是恰巧是 100 的倍数),还是在百位或者十位做了舍入。有很多做法可以消除歧义:

  • 在最后一个有效数字上划线。被标记的数字之后,所有结尾的零都不是有效数字。例如   表示有三位有效数字,精确到十位;
  • 类似的也有加下划线的做法,比如   表示有两位有效数字,精确到百位;
  • 如果在数字后面加上小数点,可以表示精确到个位。例如 100. 就有三位有效数字;
  • 数字与计量单位结合时,可以通过选择不同的前缀避免歧义。例如表示质量时,1300克的精度是有歧义的,而换成1.3千克则无歧义,有两位有效数字。

不过很多时候人们并不使用这些消歧义的做法,后缀的零是否属于有效数字只能从上下文分辨。需要时也可以直接标明有效数字位数,比如可以写「20000(两位有效数字)」。

科学记数法

大多数情况下,使用科学记数法的数也可以使用上述规则判别有效数字。不过正规化形式的科学记数法没有前缀和后缀的零,所有数字都是有效的。比如 0.00012(两位有效数字)会被记作  ,0.00122300(六位有效数字)会被记作  。后缀零都是有效的,没有歧义。例如 1300 在有四位有效数字时,会被记作  ,而如果只有两位有效数字,则会被记作  

因此,科学记数法中,尾数也被称作有效数

修约与位数

有效数字的概念通常和修约一起使用。按照有效数字的位数修约比按照数字本身的位数修约通用,因为对于不同尺度的数字可以有相同的处理。例如,城市的人口数可以是精确到千位的 52000,而国家的人口数则会是精确到百万的 52000000。前者可以有几百的误差,后者则可以有几十万的误差,而它们都只有两位有效数字(5 和 2)。也就是说,即便两者在数量级上相差巨大,但两者误差的有效性相同(误差与数据本身的比)。

可以用「保留 n 位有效数字」来描述按照有效数字的修约,做法如下: [3][4]

  • 首先找出从第一个非零数字开始的 n 个连续的数字,认为只有这些数字才是有效数字。
  • 如果最后一个有效数字后面紧跟的数字大于 5,或者紧跟着 5 但后面还有其它非零数字,那么将最后一个有效数字加 1。例如 1.2459 保留三位有效数字后为 1.25。
  • 如果最后一个有效数字后面紧跟着数字 5,而且后面没有其它数字或者都是 0,修约时需要采用某种特定的规则。例如 1.25 保留两位有效数字:
    • 中值取高斯再加一(即「四舍五入」)后结果是 1.3。如果没有特别说明,很多时候都使用这种方法。
    • 中值取最靠近的偶數(即「四舍六入五成双」)后的结果是 1.2。
  • 将小数点前的所有非有效数字替换为 0。
  • 将小数点后的所有非有效数字删除(不能替换为 0)。

运算

  • 加法运算,当对测量值进行加减运算时,应先完成计算,然后对答案四舍五入,看精确到小数点后的位数(以位数少的为准);
  • 減法運算,則為先調整各數的有效位數使與減數中有效位數最小者相同,再進行減法運算。
例:3.86 m + 2.4 m = 6.3 m
  • 乘除运算,应先对测量值进行计算后,把答案四舍五入到和测量值的最小精度值相同的有效数字位数;[5]
例:409.2 km / 11.4 L = 35.9 km/L
  • 取对数(不管是常用对数还是自然对数,即不管對數的底數為何),按照有效数字的个数来确定小数点后的位数(位数等于个数);
  • 取指数,按照小数点后的位数来确定有效数字的个数(个数等于位数);
  • 科学常数和整数可以取任意位有效数字。

近似值

 是某个数量的真值,  的近似值;  都用十进制表示。有效数字就是指  的多少位数字是一致的。确切地说,  的m位有效数字,则从 的左端非零数字所在位起,绝对误差| |的前m个十进制数位为0,随后一位数字取值从0到5. 例如:

  • 5.1对真值5具有1位有效数字:|5.1-5|=0.1
  • 0.51对真值0.5具有1位,而不是2位有效数字:|0.51-0.5|=0.01
  • 4.995对真值5具有3位有效数字:|4.995-5|=0.005
  • 4.994对真值5具有2位有效数字:|4.994-5|=0.006
  • 1.4对真值2具有0位有效数字:|1.4-2|=0.6

如果 用科学记数法表示为  , 则  的m位有效数字,如果   的m位有效数字,则二者相对误差不超过 

参考文献

  1. ^ significant figure - 有效數字. 國家教育研究院雙語詞彙、學術名詞暨辭書資訊網. [2018-06-27]. (原始内容存档于2021-03-04). 
  2. ^ 中原大學物理系 陳韋達 李偉 - 論乘除運算中有效數字之處理規則 (PDF). 論乘除運算中有效數字之處理規則. 
  3. ^ Engelbrecht, Nancy; et al. Rounding Decimal Numbers to a Designated Precision (PDF). Washington, D.C.: U.S. Department of Education. 1990. 
  4. ^ Numerical Mathematics and Computing, by Cheney and Kincaid页面存档备份,存于互联网档案馆).
  5. ^ Paul W. Zitzewitz,etc.(2005),"PHYSICS principles and Problems",McGraw-Hill Education Glencoe.

外部連結