计算机的错误计算(六十一)

news2024/9/20 7:53:55

摘要  解释计算机的错误计算(六十)中的错误计算原因。

       计算机的错误计算(六十)中的计算可以归纳为  \cos(x \,\,\% \,\,(2\times\pi))\,.  因此,我们只需要分析该算式。

例1.  已知 x=30^{65}\,.  分析如何计算 \cos(x \,\,\% \,\,(2\times\pi))\,.

       首先,一个数乘以一个2,一般不会产生多少误差。另外,对于自变量为 [0,2\pi) 内的数,我们假设函数 \cos(x) 能得出正确值(比如起码15位正确数字,否则一切无意义)。

       那么剩下的就只有 x 与 \pi以及取余运算。

       下面首先研究 x\,.

       类似于(五十二),利用错数进行讨论。由于 x=30^{65}\approx 0.1e97\,, \cos(30^{65})\approx 0.983\,,  (\cos(x))^{\prime}|_{30^{65}}=-\sin(30^{65})\approx -0.182\,.  因此,m_1=97\,, m_2=0\,, m=0\,.  这样,m+m_1-m_2=97\,.  因此,函数要获得正确有效数字,x必须取到 97位有效数字。什么意思?比如,若只取到 96位正确有效数字,最后1位不正确:改正确数字0为1,则函数值为

\cos(\underbrace{10301051460877537453973547267843000...000\textcolor{red}{1}}_{\textup{97 digits}})\\ =\cos(30^{65}+1)\\ \approx 0.378\,.

而保留 3位有效数字的正确值是 0.983 .  所以,30^{65} 的整数数字不能错 1位。若错了 1位,那么函数值就是错误结果。当然这时,后面也就不用分析了。

       事实上,Python 是将

 30^{65}\\= \overbrace{\underbrace{10301051460877537453973547267843}_{\textup{32 digits}}\underbrace{000...000}_{\textup{65 digits}}}^{\textup{97 digits}}  

变成了64位的浮点数。根本不仅仅是错了 1位,而是错了几十位。从下图可以得到验证:

上图显示,若将自变量这个大整数变为浮点数,那么输出与(六十)中没有显式变为浮点数时的输出完全相同。所以,说明 Python在做取余运算时,隐式地做了变换。

        我们可以从另外一个角度进行验证:

若只取 17位有效数字,那么取余后的值与(六十)中的余数完全相同。

       您认可我的分析吗?待续。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2036630.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Megagon Labs] Annotating Columns with Pre-trained Language Models

Annotating Columns with Pre-trained Language Models 任务定义 输入:一张数据表,但没有表头,只有表中的数据。 输出:每一列数据的数据类型,以及两列数据之间的关系。 数据类型和数据关系都是由训练数据决定的固定…

docker部署Prometheus、Grafana

docker部署Prometheus 1、 拉取prometheus镜像 docler pull prom/prometheus 遇到问题:注意下科学上网。 2、将prometheus配置文件放在外面管理 prometheus.yml global:scrape_interval: 15sevaluation_interval: 15salerting:alertmanagers:- static_configs:-…

聚合平台项目之数据抓取

首先先记录一下我自己对这个数据抓取的一些心得: 数据抓取也就是常说的爬虫。 在我没真正去做的时候,我还想爬虫好高大上。 现在学完之后也就怯魅了 其实本质就是在自己的代码中模拟浏览器给后端发请求,后端收到响应之后,返回…

Redis知识进阶-私人定制组

Redis 目录 RedisRedis 简介关键特征Redis不同操作系统安装在Linux上的安装:在macOS上的安装:在Windows上的安装: Redis 数据结构及特点常用5种及示例:其他结构 主要功能总结 Redis 简介 Redis是一个开源的高性能键值对数据库&am…

酶促4+2和2+2环加成反应(有机合成与生物合成)-文献精读38

酶促42和22环加成反应:区域与立体选择性的理解与应用 01 有机合成 类似有机化学:狄尔斯–阿尔德反应 狄尔斯–阿尔德反应是[42]环加成反应中最具代表的,由共轭双烯与亲双烯体构建环己烯骨架的经典反应。反应有良好的立体、位置选择性。 该…

3.类和对象(中)

1. 类的默认成员函数 默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数(就是我们不写,编译器会默认生成一份)。一个类,我们不写的情况下编译器会默认生成以下6个默认成员函数&#xff0…

江协科技STM32学习笔记(第09章 I2C通信)

第09章 I2C通信 9.1 I2C通信协议 9.1.1 I2C通信 串口通信没有时钟线的异步全双工的协议。 案例:通信协议设计: 某个公司开发了一款芯片,可以干很多事情,比如AD转换、温湿度测量、姿态测量等等。这个芯片里的众多外设也是通过读写寄存器来…

InCDE论文翻译

InCDE论文翻译 Towards Continual Knowledge Graph Embedding via Incremental Distillation 通过增量蒸馏实现持续知识图嵌入 Abstract 传统的知识图嵌入(KGE)方法通常需要在新知识出现时保留整个知识图(KG),这会带来巨大的训练成本。为了解决这个问题&#xf…

掌握网络数据的钥匙:Python Requests-HTML库深度解析

文章目录 掌握网络数据的钥匙:Python Requests-HTML库深度解析背景:为何选择Requests-HTML?什么是Requests-HTML?如何安装Requests-HTML?5个简单库函数的使用方法3个场景下库的使用示例常见Bug及解决方案总结 掌握网络…

[C++][opencv]基于opencv实现photoshop算法可选颜色调整

【测试环境】 vs2019 opencv4.8.0 【效果演示】 【核心实现代码】 SelectiveColor.hpp #ifndef OPENCV2_PS_SELECTIVECOLOR_HPP_ #define OPENCV2_PS_SELECTIVECOLOR_HPP_#include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "…

笔记:在WPF中OverridesDefaultStyle属性如何使用

一、目的:介绍下在WPF中OverridesDefaultStyle属性如何使用 OverridesDefaultStyle 属性在 WPF 中用于控制控件是否使用默认的主题样式。将其设置为 True 时,控件将不会应用默认的主题样式,而是完全依赖于你在 Style 中定义的样式。以下是如何…

代码随想录算法训练营day39||动态规划07:多重背包+打家劫舍

多重背包理论 描述: 有N种物品和一个容量为V 的背包。 第i种物品最多有Mi件可用,每件耗费的空间是Ci ,价值是Wi 。 求解将哪些物品装入背包可使这些物品的耗费的空间 总和不超过背包容量,且价值总和最大。 本质: …

图论------迪杰斯特拉(Dijkstra)算法求单源最短路径。

编程要求 在图的应用中,有一个很重要的需求:我们需要知道从某一个点开始,到其他所有点的最短路径。这其中,Dijkstra 算法是典型的最短路径算法。 本关的编程任务是补全右侧代码片段中 Begin 至 End 中间的代码,实现 …

543 二叉树的直径

解题思路: \qquad 如果某一个点(非叶子节点)在最长路径上,那么应该有两种情况: \qquad 情况一:该节点为非转折点,最长路径经过其一个子节点 父节点; \qquad 情况二:该…

Rancher 使用 Minio 备份 Longhorn 数据卷

0. 概述 Longhorn 支持备份到 NFS 或者 S3, 而 MinIO 就是符合 S3 的对象存储服务。通过 docker 部署 minio 服务,然后在 Longhorn UI 中配置备份服务即可。 1. MinIO 部署 1.1 创建备份目录 mkdir -p /home/longhorn-backup/minio/data mkdir -p /home/longhor…

24经济师报名照上传技巧,无需下载照片工具

24经济师报名照上传技巧,无需下载照片工具 #中级经济师 #经济师 #高级经济师 #经济师报名照片 #中级经济师报名照片 #经济师考试

SPI通讯协议示例

目录 0x01 SPI通讯特点0x01 硬件SPI示例0x02 软件SPI示例 0x01 SPI通讯特点 SPI在接线方面会拥有片选引脚、时钟引脚、数据引脚,其中数据引脚又分为 MISO和MOSI,分别对应的是 “Master IN Slave Out”(主机输入从机输出) 和 “Master Out Slave IN”(主…

机械学习—零基础学习日志(如何理解线性代数)

零基础为了学人工智能,正在快乐学习,每天都长脑子 如何理解线性代数? 线性代数的本质是代数——代替数字。有时数学里有很多的规律,不以数字形式存在,可以用字幕替代。用一个通用的等式替代我们发现的规律。 代数研…

在VB.net中,CDbl、Double.Parse与Double.TryParse有什么区别

标题 在VB.net中,CDbl、Double.Parse与Double.TryParse有什么区别 正文 在VB.NET中,CDbl、Double.Parse和Double.TryParse都是用于将不同类型的值(主要是字符串)转换为Double类型的方法,但它们之间在用法、性能、错误处…

django学习入门系列之第七点《案例 添加页面》

文章目录 7.6 前端整合标准引入格式案例 添加页面 往期回顾 7.6 前端整合 HTMLCSSjavaScript、jQueryBootStrap(动态效果依赖于jQuery) 标准引入格式 css在上面js动态效果放下面bootstrap依赖于jQuery,所以先要有jQuery,再有bo…