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

news2024/9/20 8:03:55

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

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

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

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

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) 的输出总是有 几位数字出错的原因。

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

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

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

相关文章

数据结构-散列表(hash table)

6.1 散列表的概念 散列表又叫哈希(hash)表,是根据键(key)直接访问在内存存储位置的值(value)的数据结构,由数组演化而来(根据数组支持按照下标进行随机访问数据的特性&a…

14-60 剑和诗人34 - Kubernetes 是部署 LLM 的首选平台

​​​​ 介绍 近年来,大型语言模型 (LLM) 一直在彻底改变自然语言处理领域。从 GPT-3 到 PaLM 等,这些模型可以生成类似人类的文本、回答问题、总结文档等等。然而,训练和部署 LLM 需要大量的计算。随着这些模型的规模和能力不断增长&#…

类和对象——【const成员】【static成员】【友元】【内部类】

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件iostream的声明,使用时请自行添加。 博主主页:Yan. yan.                        …

有必要找第三方软件测评公司吗?如何选择靠谱软件测评机构?

软件测试是确保软件质量的重要环节,而在进行软件测试时,是否有必要找第三方软件测评公司呢?第三方软件测评公司是指独立于软件开发公司和用户之间的中立机构,专门从事软件测试和测评工作。与自身开发团队或内部测试团队相比,选择…

修BUG:程序包javax.servlet.http不存在

貌似昨晚上并没有成功在tomcat上面运行,而是直接运行了网页。 不知道为啥又报错这个。。。 解决方案: https://developer.baidu.com/article/details/2768022 就整了这一步就行了 而且我本地就有这个tomcat就是加进去了。 所以说啊,是不是&a…

CentOS7 安装 git 命令

通过yum源install下载的git版本比较低,不推荐此方式安装。 官网下载最新版git源码:Git 1. 解压安装包 tar -xzvf git-2.45.2.tar.gz 2. 安装相关依赖 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils…

政安晨:【Keras机器学习示例演绎】(五十四)—— 使用神经决策森林进行分类

目录 导言 数据集 设置 准备数据 定义数据集元数据 为训练和验证创建 tf_data.Dataset 对象 创建模型输入 输入特征编码 深度神经决策树 深度神经决策森林 实验 1:训练决策树模型 实验 2:训练森林模型 政安晨的个人主页:政安晨 欢…

Git常见命令和用法

Git 文件状态 Git 文件 2 种状态: 未跟踪:新文件,从未被 Git 管理过已跟踪:Git 已经知道和管理的文件 常用命令 命令作用注意git -v查看 git 版本git init初始化 git 仓库初始化之后有工作区、暂存区(本地库)、版本库git add 文件标识暂存某个文件文件标识以终…

吹田电气绿色能源 未来可期

在2024年7月的上海慕尼黑电子展上,吹田电气功率分析仪成为了备受瞩目的明星产品。作为电子测试与测量领域的重要工具,功率分析仪在展会上展示了其在绿色能源和高效能量管理方面的最新应用,引发了广泛关注和热议。 领先技术,精准测…

科普文:jvm笔记

一、JVM概述# 1. JVM内部结构# 跨语言的平台,只要遵循编译出来的字节码的规范,都可以由JVM运行 虚拟机 系统虚拟机 VMvare 程序虚拟机 JVM JVM结构 HotSpot虚拟机 详细结构图 前端编译器是编译为字节码文件 执行引擎中的JIT Compiler编译器是把字节…

untiy 在菜单栏添加自定义按钮 点击按钮弹出一个Unity窗口,并在窗口里添加属性

using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.Rendering.PostProcessing;public class AutoGenerateWindow : EditorWindow //这是定义一个窗口 {public string subjecttName "科目名字";//科目的名字public GameOb…

Python | Leetcode Python题解之第228题汇总区间

题目&#xff1a; 题解&#xff1a; class Solution:def summaryRanges(self, nums: List[int]) -> List[str]:def f(i: int, j: int) -> str:return str(nums[i]) if i j else f{nums[i]}->{nums[j]}i 0n len(nums)ans []while i < n:j iwhile j 1 < n …

android13 rom 开发总纲说明

1. 这里是文章总纲&#xff0c;可以在这里快速找到需要的文章。 2. 文章一般是基于标准的android13&#xff0c;有一些文章可能会涉及到具体平台&#xff0c;例如全志&#xff0c;瑞芯微等一些平台。 3.系统应用 3.1系统应用Launcher3桌面相关&#xff1a; 3.2系统应用设置S…

获奖案例回顾|基于卫星遥感和无人机的水稻全流程风险减量项目

引言 在现代农业保险领域&#xff0c;技术创新是推动行业进步的关键。珈和科技与太平财险的合作&#xff0c;旨在利用先进的卫星遥感和无人机技术&#xff0c;解决传统农业保险面临的诸多挑战&#xff0c;从而提升保险效率和服务质量。本次分享的项目案例获得了《金融电子化》…

关于无法定位程序输入点 SetDefaultDllDirectories于动态链接库KERNEL32.dll 上 解决方法

文章目录 1. ERNEL32.dll 下载2. 解决方法 &#x1f44d; 个人网站:【 洛秋小站】 1. ERNEL32.dll 下载 Windows 7 在安装postman时报错缺少动态链接库,提示缺少.NET Framework,这是因为本地缺少相应的dll文件导致的&#xff0c;这时就需要下载ERNEL32.dll文件&#xff0c;在解…

亚马逊云科技EC2简明教程

&#x1f4a1; 完全适用于新手操作的Amazon EC2引导教程 简述 在亚马逊云科技中&#xff0c;存在多种计算服务&#xff0c;在此&#xff0c;我们将会着重讨论Amazon EC2(以下简称EC2)&#xff0c;EC2作为亚马逊云科技的明星产品、核心产品&#xff0c;是大多数开发者和企业用…

13个Python自动化实战脚本

1、批量文件重命名神器在工作中&#xff0c;我们常常需要对大量文件进行批量重命名&#xff0c;Python帮你轻松搞定&#xff01; 2、自动发送邮件通知告别手动发送&#xff0c;用Python编写定时发送邮件的自动化脚本。 3、定时任务自动化执行使用Python调度库&#xff0c;实现定…

【Adobe】动作捕获和动画制作软件Character Animator

Adobe Character Animator 是一款由Adobe公司出品的动作捕获和动画制作软件&#xff0c;旨在帮助用户直观地制作2D&#xff08;二维&#xff09;人物动画、实时动画&#xff0c;并发布动画。这款软件功能强大、操作简单&#xff0c;非常适合动画制作者、直播主以及社交媒体内容…

如何将Docker镜像源更改为阿里云的镜像加速地址

在使用Docker时&#xff0c;尤其是在国内环境下&#xff0c;由于网络原因&#xff0c;从Docker Hub拉取镜像可能会遇到速度较慢的问题。为了提高拉取速度&#xff0c;我们可以将Docker的镜像源更改为阿里云等国内镜像源。下面详细介绍如何获取并配置阿里云的Docker镜像加速地址…

linux_进程概念——理解冯诺依曼体系结构

前言&#xff1a; 本篇内容是为了让友友们较好地理解进程的概念&#xff0c; 而在真正了解进行概念之前&#xff0c; 要先了解一下冯诺依曼体系结构。 所以博主会先对冯诺伊曼体系结构进行解释&#xff0c; 然后再讲解进程的概念。 ps&#xff1a; 本篇内容适合了解一些linux指…