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

摘要  介绍错数:任给一个单变元函数,当自变量被截断时,函数值中含有的错误的有效数字个数,并给出其计算方法。

       首先,从字面上看,错数表示错误的有效数字个数。

       下面从一个略显粗糙的化简过程,推出错数的计算方法。

       众所周知,导数是函数的变化量与自变量的变化量的比值的极限:

f^{\prime}(x_0)=\lim\limits_{\Delta x\to0}\frac{f(x_0+\Delta x)-f(x_0)}{\Delta x} .

如果 \Delta x 比较小,那么函数值的变化量约等于导数与自变量的变化量的乘积:

f(x_0+\Delta x)-f(x_0)\approx f^{\prime}(x_0)\Delta x\,. \quad\quad (1)

       不妨用科学记数法表示它们(这里稍作修改:小数点前为0, t_i 、 s_i 及 d_i 均为 0\sim9 的数字,并且  t_1 、 s_1 及 d_1 均不为0):

 \,\,\,\,\,\,\,\,x_0= 0.t_1t_2t_3...\times10^{m_1},\\ \,\,\,\,\,\,\,\,\,f(x_0)=0.s_1s_2s_3...\times10^{m_2},\\ f^{\prime}(x_0)=0.d_1d_2d_3...\times10^{m}.

       假设自变量与函数值均保留 n位有效数字,并且自变量与函数值中分别有 k 位与 j 位错误数字。这时,有

|\Delta x|\\ \approx |0.t_1t_2t_3...t_{n-k}t _{n-k+1}...t_{n}\times10^{m_1}\\- 0.t_1t_2t_3...t_{n-k}\underbrace{t'_{n-k+1}...t'_{n}}_{k \textup{ incorrect digits}}\times10^{m_1}|\\\approx|0.\underbrace{000...0}_{n-k\textup{\textup{} zeros}}t''...\times10^{m_1}|\\=|0.t''...\times10^{m_1-n+k}|.

其中 t_{n-k+1}\neq t'_{n-k+1}t''\neq 0.  上式意味着 \Delta x 有 m_1-n+k 位整数。

同理可得,f(x_0+\Delta x)-f(x_0) 有 m_2-n+j 位整数。另外,f^{\prime}(x_0) 有 m 位整数。因此,由 (1) 可得

(m_2-n+j)\approx m+ (m_1-n+k)

j-k\approx m+m_1-m_2.

上式表示,函数值的错误数字个数比自变量的错误数字个数多 m+m_1-m_2 位。

       若自变量被截断了,只有 n位正确数字。这时,k=0. 那么,函数值中含有 

j\approx 0+(m+m_1-m_2)=m+m_1-m_2

位错误数字。

       以上就是错数的计算方法。

       还记得计算机的错误计算(七)中内容吗:“对于exp(x) 函数来说,若 x 有表示误差,并有 k 位整数,则计算机有时会产生约 k 位错误数字”(注:这里的 k 不是 上面的 k)。

       设 x=65*\ln(20)\approx 0.1947225977810094 \,e\, 3.  则 x有 3位整数,即 m_1=3.  而对于函数 exp(x) 来说,其导数也为 exp(x)。因此在很小的邻域内,m=m_2.  所以,错数为 m+m_1-m_2=m_1. 

       这就是为什么 exp(x) 的错数为 x 的整数位数的原因。这也就是软件关于 exp(x) 的输出总是有 几位数字出错的原因。

       最后,利用错数的计算公式,您不妨分析一下其它函数? 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LLM-文本分块(langchain)与向量化(阿里云DashVector)存储,嵌入LLM实践

文章目录 前言向量、令牌、嵌入分块按字符拆分按字符递归拆分按token拆分 向量化使用 TextEmbedding 实现语义搜索数据准备通过 DashScope 生成 Embedding 向量通过 DashVector 构建检索:向量入库语义检索:向量查询完整代码 总结 前言 Transformer 架构…

GitLab和Git

GitLab保姆级教程 文章目录 GitLab保姆级教程一、GitLab安装二、添加组和用户三、新增项目四、Git上传项目说明五、命令行指引 根据以下说明从计算机中上传现有文件:六、创建与合并分支七、GitLab回滚到特定版本八、数据备份与恢复九、docker中创建gitlab GIT 常用命…

Flask 用 Redis 缓存键值对-实例

Flask 使用起 Redis 来简直就是手到擒来,比 MySQL 简单多了,不需要那么多配置,实际代码就这么多,直接复制就能用。除了提供简单实用的实例以外,本文后面还会简单介绍一下 Redis 的安装与使用,初学者也能一看…

自建搜索引擎-基于美丽云

Meilisearch 是一个搜索引擎,主程序完全开源,除了使用官方提供的美丽云服务(收费)进行对接之外,还可以通过自建搜索引擎来实现完全独立的搜索服务。 由于成本问题,本博客采用自建的方式,本文就…

如何在 Windows 10 上恢复未保存的 Word 文档

您是否整晚都在处理一个重要的 word 文件,但忘记保存它了?本文适合您。在这里,我们将解释如何恢复未保存的 word 文档。除此之外,您还将学习如何恢复已删除的 word 文档。 从专业人士到高中生,每个人都了解丢失重要 W…

物流数据分析成本利润计算软件,佳易王物流货运单管理系统操作教程

前言: 物流数据分析成本利润计算软件,佳易王物流货运单管理系统操作教程 以下软件操作教程以,佳易王物流单统计分析软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 一、软件操作教程 1、佳易王物流货运…

前端八股文 闭包的理解

什么是闭包 闭包是指有权访问另一个函数作用域中的变量的函数 ——《JavaScript高级程序设计》 (闭包 内层函数 引用的外层函数的变量) 下面就是一个简单的闭包 闭包不一定必须有 return 闭包不一定有内存泄漏 闭包 什么时候用到 return 就是 外部…

【区块链+跨境服务】粤澳健康码跨境互认系统 | FISCO BCOS应用案例

2020 年突如其来的新冠肺炎疫情,让社会治理体系面临前所未见的考验,如何兼顾疫情防控与复工复产成为社会 各界共同努力的目标。区块链技术作为传递信任的新一代信息基础设施,善于在多方协同的场景中发挥所长,从 而为粤澳两地的疫情…

QT TCP网络通信编程

学习目标: TCP网络通信编程 前置环境 运行环境:qt creator 4.12 学习内容 一、TCP 协议基础知识: TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP 拥塞控制算法包括慢启动、拥塞避免、快速重传和快速恢复。TCP 通信需要建立连接,Qt 提供 QTcp…

【区块链 + 智慧政务】省级一体化区块链平台 | FISCO BCOS应用案例

在加强数字政府建设的大背景下,科大讯飞广泛应用数字技术于政府管理服务,推动政府数字化、智能化运行。同时, 统筹推进业务、数据和技术的融合,提升跨地域、跨层级、跨部门和跨业务的协同管理和服务水平。 当前政务信息化建设中&…

绿盟培训入侵排查

一、webshell 排查 1、文件特征 2、windows 3、linux 4、内存马 二、web 日志排查 1、日志排查 2、中间件报错排查 三、服务器失陷处置

洛谷 7.10 数数

Vanya and Books - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) ac代码 #include<bits/stdc.h> typedef long long ll;#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) const ll N1e3; using namespace std;int main() {IOS;ll x;cin>>x;ll ans0,px…

VScode 格式化插件Prettier设置无效

VScode在配置格式化代码的插件的时候&#xff0c;可以选择Prettier或者ESlint等插件 比如选择Prettier格式化代码 在某文件修改代码之后&#xff0c;ctrls 保存代码&#xff0c;保存之后会自动格式化代码&#xff0c;但是我们发现控制台有报错 为什么已经设置了格式化插件为Pr…

Springboot 设置个性化banner

在 Spring Boot 中自定义 banner 的方法有几种&#xff0c;可以通过以下步骤来实现&#xff1a; 1、使用文本文件作为 banner 在 src/main/resources 目录下创建一个名为 banner.txt 的文件。 编辑这个文件&#xff0c;输入想要显示的文本。确保文本中包含换行符和空格…

linux radix-tree 基数树实现详解

radix tree&#xff0c;又称做基数树&#xff0c;是一种适合于构建key(index)与value(item)相关联的数据结构。内核中使用非常广泛。本文主要聚焦linux内核基数树的代码实现,大量注释过的代码。 radix-tree组织结构如下: 1、数据结构 /** The bottom two bits of the slot de…

Java中的公平锁和非公平锁

1、什么是公平锁和非公平锁 公平锁和非公平锁是指在多线程环境下&#xff0c;如何对锁进行获取的顺序和策略的不同。 公平锁是指多个线程按照申请锁的顺序来获取锁&#xff0c;即先到先得的策略。当一个线程释放锁之后&#xff0c;等待时间最长的线程将获得锁。公平锁的优点是保…

MySQL六:内置函数

文章目录 1. 日期函数2. 字符串函数3. 数学函数4. 其它函数 1. 日期函数 2. 字符串函数 函数名描述charset(str)返回字符串字符集concat(string2 [,…])连接字符串instr(string&#xff0c;substring)返回substring在string中出现的位置&#xff0c;没有返回0ucase(string2)转…

甘肃美食于兰洽会数智电商馆展现魅力

在近日盛大开幕的兰洽会上&#xff0c;数智电商馆成为了备受瞩目的焦点&#xff0c;而甘肃平凉的特产更是在其中大放异彩。 平凉&#xff0c;这座拥有深厚历史文化底蕴的城市&#xff0c;带着其独具特色的物产走进了兰洽会的舞台。走进数智电商馆&#xff0c;首先映入眼帘的便是…

MySQL安全值守常用语句

一、用户权限设置 1、Mysql中用户是如何定义的 用户名主机域 10.0.0.5110.0.0.%%10.0.0.0/255.255.255.0Db01Localhost127.0.0.1 2、用户创建 create user xinjing% identified by 123 3、用户删除 drop user username&#xff1b;username 是要删除的用户名:如 drop user root…

WPF界面设计-更改按钮样式 自定义字体图标

一、下载图标文件 iconfont-阿里巴巴矢量图标库 二、xaml界面代码编辑 文件结构 &#xe653; 对应的图标代码 Fonts/#iconfont 对应文件位置 <Window.Resources><ControlTemplate TargetType"Button" x:Key"CloseButtonTemplate"…