计算机的错误计算(一百零二)

摘要  探讨 \textup{exp10}=10^x 的计算精度问题。

       从计算机的错误计算(九十九)可知,\textup{exp10}=10^x 在IEEE 754-2019的列表中。因此,有必要分析其计算准确度。

例1.  已知 x=300.333\,,  计算 \textup{exp10}=10^x\,.

       若利用 Python的SciPy库中函数计算,则有:

若用Java的pow函数计算:

import java.lang.Math;
public class Exp10{
    public static void main(String[] args) {
        double x = 300.333;
        double result = Math.pow(10, x);

        System.out.println(result);
    }
}

则运行后输出似乎比Python结果更精确(因为位数多1位):2.1527817347245057E300 .

       然而,正确值是 0.2152781734724373e301(ISRealsoft 提供)。这样,二者的错误率均为 3/16 = 18.75% .

例2.  已知 x=5.55\,,  计算 \textup{exp10}=10^x\,.

        不妨继续在Python下运行,则有:

同样,仍然用Java计算(改例1代码中的300.333为5.55),则运行后输出完全相同:354813.3892335753 .

       事实上,正确值是 0.3548133892335755e6(ISRealsoft 提供)。这样,二者均有1位错误数字。

       点评:两个案例揭示了错误数字的个数是有规律的:其等于自变量的整数位数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值