当前位置: 首页 > article >正文

计算机的错误计算(一百二十七)

摘要  四个算式“sin(0.00024/2)^2”、“(1-cos(0.00024))/2”、“(1-sqrt(1-sin(0.00024)^2))/2”以及“sin(0.00024)^2/(2+2*sqrt(1-sin(0.00024)^2))”是等价的。但是它们的结果不完全一致。第四个算式是最复杂的、运算最多的,但是其结果最精确。

例1.  已知

\displaystyle{f(x)=\sin^2(\frac{1}{2}x) = \frac{1}{2}\big{(}1-\cos(x)\big{)} = \frac{1}{2}\Big{(}1-\sqrt{1-\sin^2(x)} \,\Big{)}= \frac{\sin^2(x)}{2+2\sqrt{1-\sin^2(x)}}\,^{[1]}}\,,

其中 {x\in(0,\frac{\pi}{2})}\,.  用上述四个算式依次计算 f(0.00024)\,.

        不妨在Python下计算,则有

       若在Visual Studio 2010下用C语言编程计算:

#include <stdio.h>
#include <math.h>
void main() {
    double x = 0.00024;
    double sin_half_x = sin(x / 2), cos_x = cos(x);
    double sin_x_squared = sin(x) * sin(x);
    double sqrt_1_minus_sin_x_squared = sqrt(1 - sin_x_squared);

    double result1 = sin_half_x * sin_half_x;
    double result2 = (1 - cos_x) / 2;
    double result3 = (1 - sqrt_1_minus_sin_x_squared) / 2;
    double result4 = sin_x_squared / (2 + 2 * sqrt_1_minus_sin_x_squared);
    printf("%.24lf,  %.24lf,  %.24lf,  %.24lf", result1, result2, result3, result4);
}

则运行后的输出与Python的输出完全等价:0.000000014399999930880002,  0.000000014399999914704864,  0.000000014399999914704864,  0.000000014399999930880000 .

       事实上,17位的正确结果为 0.14399999930880000e-7(ISRealsoft 提供)。这样,二者的输出中,有效数字的错误率均依次为 1/17 = 5.9% ,  8/17 = 47.1% ,  8/17 = 47.1% ,  0/17 = 0% .

       点评:(1)最复杂的,运算最多的,最精确!这与传统的认识相悖(可参看(五十三))。

                  (2)等价表达式的计算结果不等价 (可参看(十三))。

                  (3)还是用 ISRealsoft 吧。

参考文献

[1] Ward Cheney, David Kincaid. Numerical Mathematics and Computing. 6th Ed. CA: Thomson Higher Education, 2008, p, 37


http://www.kler.cn/news/361841.html

相关文章:

  • verilog实现一个5bit序列检测器
  • MATLAB代码优化
  • Sigrity 共模电感的S-parameter仿真数据导入
  • DORA 机器人中间件学习教程(6)——激光点云预处理
  • ubuntu22.04 桌面系统怎么搭建一个esp-idf的项目,搭建开发环境
  • RuoYi-Vue若依 环境搭建 速成
  • istio中协议由HTTP2降为HTTP/1.1
  • 百度智能云千帆 AppBuilder 大模型应用开发解读
  • 【java】Springboot框架增加日志功能,使用log4j和Logback实现日志功能
  • Java面试题七
  • 容斥原理 C++
  • 双一流大学“一网通办”系统的国产数据库实践
  • maven jar包二进制文件 invalid stream header: EFBFBDEF 的错误
  • 智慧停车及可视化管理解决方案;停车场电子地图应用方案;地下停车场如何实现反向寻车,车位引导等功能;智慧停车实时导航解决方案
  • 【ODSS】An Open Dataset of Synthetic Speech
  • WebRTC音频 03 - 实时通信框架
  • NeRF三维重建—神经辐射场Neural Radiance Field(二)体渲染相关
  • 5G智能终端:低空经济崛起的隐形翅膀!
  • 销售出库单同步——从旺店通到金蝶云星辰V2的成功案例
  • YOLOV11改进系列指南
  • pandas 数据分析实战
  • .net framework 3.5sp1如何开启?
  • SpringBoot3 + OpenAPI3规范 快速整合
  • el-table 表格设置必填项
  • Python实现股票自动交易:步骤、要点与注意事项有哪些?
  • spring boot实现不停机更新