计算机的错误计算(一百一十四)

摘要 回复读者提问,就计算机的错误计算(六)中案例,讨论其另外一种形式: 的错误计算问题。

一读者来信说,在计算机的错误计算(六)中,使用了两种计算方法。实际上,还有另外一种更为简便的方法:

下面探讨第3种方法的计算精度。

例1. 已知 计算

不妨在 Python 中用 ** 运算与 math 库中 pow 函数计算,则有:

在线运行Rust程序:

rust 复制代码
fn main() {
    let x = 0.99993;
    let result = power(x - 1.0, 4);

    println!("{}", result);
}

fn power(base: f64, exponent: u32) -> f64 {
    base.powi(exponent as i32)
}

则输出同样的结果(虽然形式不同):0.000000000000000024010000000019886 .

然而,准确值是 0.2401e-16(ISRealsoft 提供)。这样,它们有效数字的错误率均为 4/16 = 25% 或 5/17 = 29.4% .

点评:显然,与前两种方法相比,精度提高许多。但是,它还是有错误数字。特别是,若自变量换一个别的数,则可能增加错误数字。比如,令自变量为 0.9999999999999999(注:该数仍在定义域或程序的要求范围内),则 Python 的输出中只含有1位正确数字。

相关推荐
小七在进步4 小时前
C++入门(3)
android·java·c++
前端 贾公子4 小时前
Milvus使用指南 (下)
java·服务器·前端
码匠许师傅4 小时前
【设计模式精讲】27.模板方法模式(Template Method)
c++·设计模式·uml·模板方法模式
王老师青少年编程4 小时前
信奥赛csp初赛高频考点【排序算法】(详细解析)
c++·排序算法·csp-j·csp·高频考点·初赛·信奥赛
qeen874 小时前
【C++】C++中的错误处理机制-异常
开发语言·c++·异常
步行cgn4 小时前
OCP开闭原则:面向对象设计的核心原则
java·开发语言·开闭原则
落木萧萧8254 小时前
MyBatis 启动的时候都在干什么:从 MappedStatement 说起
java·数据库·后端
en.en..4 小时前
Linux wait()函数(预防僵尸进程)
java·大数据·开发语言
Zixhy4 小时前
Boost 库实现异步高并发服务器
linux·服务器·c++
用户0332126663675 小时前
快速合并 Word 文档【Python 指南】
python