精华内容
下载资源
问答
  • 有效数字 | 相对误差与有效数位

    千次阅读 2020-05-20 00:00:27
    并且,从该起直到前面第一非零数字为止的所有数字都称为有效数字,即有: 定义1:设x∗x^*x∗是一准确,x是它的近似,若 ∣x∗−x∣<1/2×10−n |x^*-x|<1/2\times 10^{-n} ∣x∗−x∣<1/2×10−...

    有效数字

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

    定义1:设 x ∗ x^* x是一个准确数,x是它的近似数,若
    ∣ x ∗ − x ∣ < 1 / 2 × 1 0 − n |x^*-x|<1/2\times 10^{-n} xx<1/2×10n
    就是说,用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=±0a1a2a3asak×10m(a1=0)
    其中,s为有效数字的位数,m为阶数。m的确定方法如下:

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

    0.1 ≤ ∣ x ∣ < 1 0.1 \leq |x|<1 0.1x<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} xx<21×10n=21×10(sm)=21×10ms,1sk(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.141621×104
    即有 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×104

    如果取 π = 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×102

    例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} xx=0.000033=0.33×104<21×104=21×1015
    于是有 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=sm=51=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} xx=0.0000036=0.36×105<21×105=21×1027
    所以, 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.a1a2a3as1as×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×10s+1
    例1:求 6 \sqrt{6} 6 的近似值,使其相对误差不超过 1 2 × 1 0 − 3 \frac{1}{2}\times 10^{-3} 21×103

    :因为 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×10s+1=2×21×10s+1=21×103s=3,s4,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.a1a2a3as×10ma1=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×10s+1
    则该近似数有s位有效数字。

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

    展开全文
  • 判断数字是几位数

    千次阅读 2020-12-09 20:49:02
    3.在main方法中打印该数字是几位数 4.演示格式如下: (1)演示一: 请输入一整数:1234 控制台输出:1234是4位数字 (2)演示二: 请输入一整数:-34567 控制台输出:-34567是5位数字 package com.it; import java.util....

    1.键盘录入一个整数(正数或者负数都可以,但是符号位不算有效的数字位)
    2.定义一个方法,该方法的功能是计算该数字是几位数字,并将位数返回
    3.在main方法中打印该数字是几位数
    4.演示格式如下:
    (1)演示一:
    请输入一个整数:1234
    控制台输出:1234是4位数字
    (2)演示二:
    请输入一个整数:-34567
    控制台输出:-34567是5位数字

    package com.it;
    
    
    import java.util.Scanner;
    
    public class Test1 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个数:");
            int a = sc.nextInt();
            digit(a);
        }
    
        private static void digit(int a) {
            if(a >= 0){
                String b = a+"";
                System.out.println(a+"是"+b.length()+"位数");
            }else {
                int c = -a;
                String d = c+"";
                System.out.println(a+"是"+d.length()+"位数");
            }
    
        }
    }
    
    展开全文
  • C#-判断整数有几位有效数字

    千次阅读 2016-10-09 16:18:04
    今天遇到一简单的问题,判断整数具有即为有效数字,原来打算写一循环求余判断,最后想到可以把其转化成字符串,然后求取字符串的长度,就很好的解决了这问题。如:int a =123; int b=a.ToString().Length;...

    今天遇到一个简单的问题,判断一个整数具有几位有效数字,原来打算写一个循环求余判断,最后想到可以把其转化成字符串,然后求取字符串的长度,就很好的解决了这个问题。如:

    int a =123;
    int b=a.ToString().Length;

    求出来b为3,即为整数a的有效数字个数。

    展开全文
  • 对一浮点型数字保留两小数并输出: #include #include ...这里要注意,单独用setprecision(2)是保留两位有效数字,会输出1.2e+002 也可以在字符串中进行保留小数的操作 #include #inclu

    对一个浮点型数字保留两位小数并输出:

    #include <iomanip>
    #include<iostream>
    using namespace std;
    int main(){
    float a = 123.666;
    cout<<setiosflags(ios::fixed)<<setprecision(2)<<a;
    }

    输出结果是123.67
    这里要注意,单独用setprecision(2)是保留两位有效数字,会输出1.2e+002

    也可以在字符串中进行保留小数位的操作

    #include<sstream>
    #include <iomanip>
    #include<iostream>
    using namespace std;
    int main(){
    ostringstream oss;
    float a=123.666;
    oss<<setiosflags(ios::fixed)<<setprecision(2)<<a<<endl;
    string s=oss.str();
    cout<<s;}

    输出结果是123.67
    这种方法可用于字符串添加多次保留一定小数位的浮点型数。
    这里还要注意,

    setiosflags(ios::fixed)<<setprecision(2)

    对后续所有输出都起作用,而不是仅对后一个对象起作用。

    展开全文
  • [removed] function validate(){ var reg = new RegExp(^[0-9]*$); var obj = document.getElementById(name); if(!reg.test(obj.value)){ alert(请输入数字!...请输入数字!...验证至少n位数字:^\d
  • php如何判断数字是几位数

    万次阅读 2017-09-23 00:01:39
    判断是否为数字 is_numeric() 这函数就是检测参数是否为数字 $a=18; echo strlen($a);
  • import java.util.Scanner;... *输入一个数字判断个数字代表星期几 */ public class Test041508 { public static void main(String[] args) { //获取录入的一个数字 Scanner sc = new ...
  • ARM指令中如何判断立即有效 在ARM处理器的汇编语言中,对指令语法格式中的的常数表达式有这样的规定:“该常数必须对应8位图,即常数是由一8的常数循环移位偶数得到的。” 首先...
  • 声明:1、本文内容为本人学习嵌入式linux所遇问题后,为方便以后学习查阅转载所得,若能助人,也算报答前人之恩!...在ARM处理器的汇编语言中,对指令语法格式中的的常数表达式有这样的规定:“该常数必须对应8位图
  • 在立即寻址,操作本身直接在指令中给出,取出指令也就获得了操作,这操作也称为立即。例子如下: ADD R0, R1, #5 ;R0=R1+5 MOV R0, #0x55 ;R0=0x55 在这两例子中,操作 5 和 0x55 就是立即。 ...
  • 正则关于有效数字的例子
  • 数字处理,保留几位有效数字

    千次阅读 2019-03-07 16:20:23
    数字处理:保留几位有效数字 不废话,直接分享代码与思想 数字过大或者过小的时候,js解析为...请看刚刚分享的Js 科学计算法,number类型与string类型转换,然后就是根据保留几位有效数字进行判断转换,处理字符串!
  • 判断法(if);数组法//整除法 #include &lt;iostream&gt; using namespace std; int main() { float num=0; float temp1=0; int flag=0; cout&lt;&lt;"please input a number from 0 to ...
  • js 正则表达式判断有效数

    千次阅读 2011-08-26 17:49:11
    在网上找了些,发现有各种的bug,所以自写了一,留在这里做备份 function isNum()  {  var s=document.... //判断有效数字的正则表达式 var pattern=/^[-|+]?(([1-9]+\.?\d+)|(0\.\d*[1-9]\d*)|([0-9]
  • JavaScript 判断数字是否含有小数点,...如果不含小数点,则小数点后保留两位有效数字: function hasDot(num){ if(!isNaN(num)){ return ( (num + '').indexOf('.') != -1 ) ? num: num.toFixed(2); ...
  • var n = 123456.789;... //保留小数点后面几位数字,参数x代表保留位数。 toExponential(x) ; //用指数的形式转换成字符串,小数点前只有一 ,小数点后的位数由参数x指定 ,例如x = 3,n.toExponential(x) ==
  • 判断string是不是有效数字表达式 思路: 繁琐,先移除前导零和后缀零,然后记录点和e的位置。 再分情况讨论。 这道题看了看网上的解法,很多都做得很麻烦。其实我觉得,这道题就是考察...
  • 有效立即判断
  • 实际上我就输入了3字符串,现在需要利用for循环: for (int i =0; (这里该怎么填写可以让编译器判断i) ;i++); 我试过了values[i] != null、 values[i] != "/0"但编译器都提示索引越界,初学c#还望指点
  • 该项目的核心是判断输入数据,是否为有效数字。亲测可用
  • 近似数与有效数字的概念 近似数是由于近似存储(内存空间有限)引起的。 近似数是由四舍五入得来的数,如10/3中的3是一准确数,而3.3是它...而有效数字是对于近似数从左边第一不是0的数字起,到精确到的数位止...
  • ARM中判断立即是否有效

    千次阅读 2015-08-26 12:13:53
    在ARM立即数寻址中,指令中的立即数是有一8位的常熟和移动的4 位偶数位得到的,所以每一条指令都包含一常数X和移位值Y,得到的立即数=...最后看这8位二进制数能不能循环右移偶数位得到给定的立即数,不能数则非法
  • web翎云阁 2016-11-28 10:13 现在有两数组:revenue和reward ...要实现的效果跟Excel中的VlookUP函数比较像,怎么写最有效判断语句。 第一种普通方法: var revenue = [350,450,550,650,850,1000,1100
  • c#判断输入是否为数字类型

    千次阅读 2019-04-25 09:58:32
    int.Parse亦可进行判断输入是否为数字,可编写try catch 异常捕捉程序来判断. try { int tmp = int.Parse(textbox1.Text); } catch(Exception) { MessageBox.Show("请正确输入数字"); }  
  • //可以判断正负、整数小数 //StringUtils.isNum("a123") = false //StringUtils.isNum("123a") = false //StringUtils.isNum("1.23a") = false //StringUtils.isNum("a1.23"...
  • java 商业中保留有效位数和小数位数

    千次阅读 2018-01-19 11:59:29
    环境 jdk:1.7 前言 之前,我曾写过一篇 java使用BigDecimal 处理商业精度及高精度详解,如何去获取有效位数;当时的我,没有弄清楚...在此之前,我想写出一通用的方法,就是既能保留有效位,又能保留小数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 371,100
精华内容 148,440
关键字:

如何判断有效数字个数