有效数字

数学上用“四舍五入”的法则将一个位数很多的数表示成一定位数的数。如果一个近似数的误差限是它某一位的半个单位,则称它准确到这一位(即该位数字是准确的、有效的和可靠的)。并且,从该位起直到前面第一个非零数字为止的所有数字都称为有效数字,即有:

定义1:设x∗x^*x∗是一个准确数,x是它的近似数,若
∣x∗−x∣<1/2×10−n|x^*-x|<1/2\times 10^{-n} ∣x∗−x∣<1/2×10−n
就是说,用x近似表示x∗x^*x∗时准确到小数点之后第n位(精确度),并把从该位起到x的第一位非零数字之间的一切数字都叫做有效数字,并把有效数字的位数叫做有效数位。

例如:若将数x用规格化形式表示,则有
x=±0⋅a1a2a3⋯as⋯ak×10m(a1≠0)x=\pm 0·a_1a_2a_3\cdots a_s\cdots a_k\times 10^m \quad (a_1\neq 0) x=±0⋅a1​a2​a3​⋯as​⋯ak​×10m(a1​​=0)
其中,s为有效数字的位数,m为阶数。m的确定方法如下:

当∣x∣≥1|x|\geq 1∣x∣≥1时,则m=整数部分的位数;

当0.1≤∣x∣<10.1 \leq |x|<10.1≤∣x∣<1时,则m=0m=0m=0;

当∣x∣<0.1|x|<0.1∣x∣<0.1时,则m=−m=-m=−(小数点后零的个数)


∣x−x∗∣<12×10−n=12×10−(s−m)=12×10m−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=40.08698,n=5,m=-1,s=n+m=40.08698,n=5,m=−1,s=n+m=4

对于数0.8698,n=4,m=0,s=n+m=40.8698,n=4,m=0,s=n+m=40.8698,n=4,m=0,s=n+m=4

对于数869.8,n=1,m=3,s=n+m=4869.8,n=1,m=3,s=n+m=4869.8,n=1,m=3,s=n+m=4

对于数8698,n=0,m=4,s=n+m=48698,n=0,m=4,s=n+m=48698,n=0,m=4,s=n+m=4

一个数精确到小数点后n位,并不表明它一定有n位有效数字。应注意有效数位s的计算。

例2:对于圆周率π=3.1415926⋯\pi=3.1415926\cdotsπ=3.1415926⋯,用四舍五入取小数点后4位时,近似值为3.14163.14163.1416,此时
∣π−3.1416∣≤12×10−4|\pi-3.1416|\leq \frac{1}{2}\times 10^{-4} ∣π−3.1416∣≤21​×10−4
即有m=1,n=4m=1,n=4m=1,n=4,所以有效数位为s=n+m=5s=n+m=5s=n+m=5,绝对误差限为12×10−4\frac{1}{2}\times 10^{-4}21​×10−4

如果取π=3.14\pi=3.14π=3.14,则m=1,n=2m=1,n=2m=1,n=2,有效数位为s=n+m=3s=n+m=3s=n+m=3,其绝对误差限为12×10−2\frac{1}{2}\times 10^{-2}21​×10−2

例3:设x∗=8.000033x^*=8.000033x∗=8.000033,若取x=8.0000x=8.0000x=8.0000,则
∣x−x∗∣=0.000033=0.33×10−4<12×10−4=12×101−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=4m=1,s=5,n=s-m=5-1=4m=1,s=5,n=s−m=5−1=4。所以8.00008.00008.0000的有效数字为5位,它精确到小数点后4位

例4:设x∗=30.4500364⋯x^*=30.4500364\cdotsx∗=30.4500364⋯若取x=30.45004x=30.45004x=30.45004,则
∣x−x∗∣=0.0000036=0.36×10−5<12×10−5=12×102−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.4500430.4500430.45004的有效数字为7位,它精确到小数点后5位。

相对误差和有效数位之间的关系

根据有效数字和相对误差的概念可以得出两者之间的关系。

定理2:若近似数x=±0.a1a2a3⋯as−1as×10m(a1≠0)x=\pm 0.a_1a_2a_3\cdots a_{s-1}a_s \times 10^m(a_1\neq 0)x=±0.a1​a2​a3​⋯as−1​as​×10m(a1​​=0)具有s位有效数字,则其相对误差为:
er(x)≤ϵr=12a1×10−s+1e_r(x)\leq \epsilon_r=\frac{1}{2a_1}\times 10^{-s+1} er​(x)≤ϵr​=2a1​1​×10−s+1
例1:求6\sqrt{6}6​的近似值,使其相对误差不超过12×10−3\frac{1}{2}\times 10^{-3}21​×10−3

:因为6=2.4494\sqrt 6=2.44946​=2.4494,取a1=2a_1=2a1​=2,设6\sqrt 66​取s位有效数字,则
12a1×10−s+1=12×2×10−s+1=12×10−3s=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 2a1​1​×10−s+1=2×21​×10−s+1=21​×10−3s=3⋯,故s≥4,6​≈2.449
定理3:若近似数x=±0.a1a2a3⋯as×10m(a1≠0)x=\pm 0.a_1a_2a_3\cdots a_s \times 10^m(a_1\neq 0)x=±0.a1​a2​a3​⋯as​×10m(a1​​=0)的相对误差
er(x)≤12a1+1×10−s+1e_r(x)\leq \frac{1}{2a_1+1}\times 10^{-s+1} er​(x)≤2a1​+11​×10−s+1
则该近似数有s位有效数字。

从误差和有效数字的定义以及上述两个定理可以看出:绝对误差与小数点后的位数(数的精确度)有关;相对误差与有效数字的位数有关。

有效数字 | 相对误差与有效数位相关推荐

  1. float类型为什么有6位有效数字

    float数据在计算机机器内部是2进制数,一般用1个字(4个字节,32位)来表示, 1位符号位 8位指数位 23位"尾数"位 1位符号位 8位指数位 23位"尾数&quo ...

  2. float,double 的范围和有效数字怎么算出来的?

    首先说一下:  范围是3.4E-38 --3.4E+38,可提供7位有效数字.  上述这两个量都是近似值,各个编译器不太一样的. 下面我就将标准值是怎么定义的,和你说一下:  这个比较复杂,建议你找一 ...

  3. 取6位有效数字c语言,float,double 的范围和有效数字怎么算出来的?

    首先说一下: 范围是3.4E-38 --3.4E+38,可提供7位有效数字. 上述这两个量都是近似值,各个编译器不太一样的. 下面我就将标准值是怎么定义的,和你说一下: 这个比较复杂,建议你找一下IE ...

  4. python3 数组大小_python3从零学习-5.1.8、高效的数值数组array

    此模块定义了一种对象类型,可以紧凑地表示基本类型值的数组:字符.整数.浮点数等. 数组属于序列类型,其行为与列表非常相似,不同之处在于其中存储的对象类型是受限的. 类型在对象创建时使用单个字符的类型码 ...

  5. 《Java开发手册》解读:大整数传输为何禁用Long类型?

    简介:最新发布的<Java开发手册(嵩山版)>增加了前后端规约,其中有一条:禁止服务端在超大整数下使用Long类型作为返回.这是为何?在实际开发中可能出现什么问题?本文从IEEE754浮点 ...

  6. Float的取值范围

    首先说一下: 范围是3.4E-38 --3.4E+38,可提供7位有效数字.  上述这两个量都是近似值,各个编译器不太一样的. 下面我就将标准值是怎么定义的,和你说一下:  这个比较复杂,建议你找一下 ...

  7. float 和int转换是怎么做到的

    转载自:http://blog.sina.com.cn/s/blog_5c6f79380101bbrd.html 那么真正存在内存里的这个二进制数,转化回十进制,到底是比原先的十进制数大呢,还是小呢? ...

  8. 数据的存储(浮点型篇)

    目录 前言 一.例题引入 二.浮点数的存放规则 1.概念陈述 2.通过案例分析 1).转化为二进制 2).存放的特殊规则 3).读取时E的特殊规则 三.引例揭秘 四.浮点性存放精度丢失的问题 前言 在 ...

  9. java key类型_Java 基础类型

    在Java中,基本的数据类型主要有8种: 1)int  4 字节(byte)  -2的31次方到2的31次方-1 2)short 2 字节(byte) -2的15次方到2的15次方-1 3)long ...

最新文章

  1. python实现K-means算法
  2. javascript调试_如何提高JavaScript调试技能
  3. 可变导向车道——为了缓解高峰压力的临时转向车道
  4. jni java_JNI 常见用法
  5. mysql数据库的系统操作基本操作
  6. 运用高斯核模型进行最小二乘回归_比特币价格与时间存在关系?一文读懂比特币价值的对数增长模型...
  7. javafx 自定义控件_JavaFX自定义控件– Nest Thermostat第2部分
  8. 百度地图android绘图类,Class:android总类/android离线地图类
  9. vue router 常用操作 重定向 redirect
  10. 三、MyBatis 使用传统 Dao 开发方式
  11. 优雅的closesocket
  12. 今天开始写一些内容,留作备份。
  13. [转贴]ASP.NET下对远程SQL SERVER数据库的备份和恢复的存储过程
  14. 计算机应用基础教材提纲,《计算机应用基础》课程教学大纲
  15. 专利技术交底书撰写经历
  16. java授权失败_鉴权失败 =(-200)both online
  17. 《Android开发艺术探索》超详细笔记【转载】
  18. 新词发现的学习和代码
  19. 斗罗大陆壁纸图片高清小舞146集八段摔杨无敌
  20. 华为语音解锁设置_华为手机免费语音转文字功能如何开启?手把手教你如何设置,超赞...

热门文章

  1. day06 数据类型(下)
  2. 【人工智能的数学基础】二分图与二分匹配(Bipartite Matching)
  3. 再见 Java 7!
  4. WX1860AL4---千兆专用类芯片,参数
  5. 计算机网络多媒体图像矢量图,基于矢量图的协同编著环境与协同机制的研究
  6. 新三板所有问题汇总(拟挂牌公司篇)
  7. office2010计算机二级c语言,计算机二级《MS Office》模拟考试题
  8. imread读取图片的方式
  9. php滚动条怎么用,如何让滚动条自动滚到最底部
  10. Linux系统管理-练习测试题