【数值分析】1 - 误差及有关概念

news2025/1/21 6:34:54

文章目录

  • 一、误差的背景介绍
    • 1.1 误差的来源与分类
    • 1.2 误差的传播与积累
    • 1.3 例题
      • 1.3.1 公式一
      • 1.3.2 公式二
      • 1.3.3 总结
  • 二、误差与有效数字
    • 2.1 绝对误差与绝对误差限
    • 2.2 相对误差和相对误差限
  • 三、有效数字
    • 3.1 有效数字的定义和标准浮点式
      • 3.1.1 例题
    • 3.2 有效数字与相对误差的关系
      • 3.2.1 例题
  • 四、函数的误差估计
    • 4.1 例题1
    • 4.2 例题2
  • 五、数值计算中的若干原则
    • 5.1 避免两个相近的数相减
    • 5.2 避免大数“吃掉”小数
    • 5.3 绝对值太小的数不宜作除数
    • 5.4 注意简化计算程序,减少计算次数
    • 5.5 选用数值稳定性好的算法


学习视频:《数值分析》| 华科 | 研究生基础课


一、误差的背景介绍

误差:一个物理量的真实值与计算值之间的差异。

1.1 误差的来源与分类

误差按照来源可分为模型误差、观测误差、截断误差和舍入误差四种:

  • 模型误差:数学模型是由实际问题抽象得到的,一般带有误差,这种误差称为模型误差。模型误差一般是不可避免的。
  • 观测误差:数学模型中包含的一些物理参数通常是通过观测和实验得到的,难免带有误差,这种误差称为观测误差
  • 截断误差:求解数学模型所用的数值方法通常是一种近似方法,这种因方法产生的误差称为截断误差(或方法误差)。下面举例说明截断误差:

在这里插入图片描述

  • 舍入误差:由于计算机只能对有限位数进行运算,在运算中像 e e e 2 \sqrt{2} 2 1 3 \frac{1}{3} 31 等都要按照舍入原则保留有限位,这时产生的误差称为舍入误差(或计算误差)

在这里插入图片描述

注意:在数值分析中,我们总假定数学模型是准确的,即不考虑模型误差和观测误差,主要研究截断误差和舍入误差对计算结果的影响。

1.2 误差的传播与积累

蝴蝶效应是一个很形象的例子来说明误差的传播与积累带来的危害。如果一个算法是数值不稳定的(也就是误差不可控的),那么随着计算量的增多,其计算误差也会不断积累,最终导致结果失真。

在这里插入图片描述

1.3 例题

下面用一个数学问题来展示误差的积累:

在这里插入图片描述

利用分部积分公式可以计算得:

在这里插入图片描述

1.3.1 公式一

根据上面的推导,可以得到公式一。

在这里插入图片描述

然而,根据公式一计算推导出的结果失真了,这说明这个算法是数值不稳定的。

在这里插入图片描述

1.3.2 公式二

公式一导致误差积累,不断变大。因此,我们可以将公式一反推得到一个新的公式二,如下所示:

在这里插入图片描述
在这里插入图片描述

我们还可以对误差作理论的分析:

在这里插入图片描述

1.3.3 总结

这个例子给我们带来的启发是:当我们在设计一个算法时,要事先考虑其是否是数值稳定的。误差是不可回避的,算法的稳定性会是一个非常重要的话题。

二、误差与有效数字

2.1 绝对误差与绝对误差限

绝对误差(有时候也叫做误差)的定义如下:

在这里插入图片描述

然而,很多时候,我们不知道精确值是多少,因此无法带入上式求得绝对误差。虽然绝对误差在实际中无法计算,但我们可以用估计的方法,算出误差的一个界限,这就是绝对误差限

在这里插入图片描述

由于绝对误差限只是绝对误差的一个界限,因此它不是唯一确定的。但是在实践中,我们希望尽可能获得较小的绝对误差限以更精准的确定绝对误差的范围。

另外,绝对误差和绝对误差限是存在量纲的,因此有时候绝对误差并不能很好地反映近似程度的好坏。

2.2 相对误差和相对误差限

为了解决绝对误差和绝对误差限量纲的问题,引入相对误差的概念:

在这里插入图片描述
同样地,类似于绝对误差限,相对误差的界限被定义为相对误差限。

在这里插入图片描述

让我们思考如下的问题:

在这里插入图片描述

答:(1)是否合理需要看近似程度是否可信,如果可信,那么偷换是合理的。(2)是否反映同一数量级的误差需要根据问题来看。

三、有效数字

3.1 有效数字的定义和标准浮点式

在这里插入图片描述

在这里插入图片描述

由此可见,近似值的有效数字越多,其绝对误差越小

有了这个概念,如何求一个数字的有效数字呢?

在这里插入图片描述

上图中的形式又被称为标准浮点式科学计数法

注意:精确值的有效数字可认为有无限多位。

3.1.1 例题

当 3.14、3.141 和 3.15 作为 π \pi π 的近似值时,谁的近似效果更好?

实际上,就是让我们求它们有效数字的位数。

根据定义 ∣ x ∗ − x ∣ ≤ 1 2 ∗ 1 0 m − n |x^*-x|\le\frac{1}{2}*10^{m-n} xx2110mn 可得:

  • ∣ π − 3.14 ∣ ≤ 0.5 ∗ 1 0 − 2 , m = 1 |\pi-3.14|\le0.5*10^{-2}, m=1 π3.14∣0.5102,m=1,因此 n = 3 n=3 n=3
  • ∣ π − 3.141 ∣ ≤ 0.5 ∗ 1 0 − 2 , m = 1 |\pi-3.141|\le0.5*10^{-2}, m=1 π3.141∣0.5102,m=1,因此 n = 3 n=3 n=3
  • ∣ π − 3.15 ∣ ≤ 0.5 ∗ 1 0 − 1 , m = 1 |\pi-3.15|\le0.5*10^{-1}, m=1 π3.15∣0.5101,m=1,因此 n = 2 n=2 n=2

因此,3.14 和 3.141 的近似程度是更好的。

3.2 有效数字与相对误差的关系

首先是如何根据有效数字推导出相对误差限

在这里插入图片描述

然后是根据相对误差限推导出有效数字

在这里插入图片描述

3.2.1 例题

下面看一个例子:

在这里插入图片描述

四、函数的误差估计

先复习一下拉格朗日中值定理:

在这里插入图片描述

然后引出函数的误差估计方法:

先讲函数的绝对误差估计方法:

在这里插入图片描述

然后是函数的相对误差的估计方法:

在这里插入图片描述

条件数越小,则误差估计就越准

在这里插入图片描述

4.1 例题1

在这里插入图片描述

4.2 例题2

在这里插入图片描述

五、数值计算中的若干原则

5.1 避免两个相近的数相减

设计算法时,应该避免两个相近的数相减,这样可以减少误差

在这里插入图片描述

如果出现了两个相近的数相减,可以考虑改变算法避免两个数相减

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下面给出一个例题:

在这里插入图片描述

改变算法:

在这里插入图片描述

如果找不到适当的方法替代两个相近的数相减,那么只能在计算机上采用双倍字长计算,以提高精度。

5.2 避免大数“吃掉”小数

在计算机中,只能采用有限位数计算,如果参加运算的数量级相差很大,在它们的加减运算中,绝对值很小的数往往被绝对值较大的数“吃掉”,造成计算结果失真。

在这里插入图片描述
在这里插入图片描述

5.3 绝对值太小的数不宜作除数

由于除数很小,将导致商很大,有可能出现“溢出”问题或者大数“吃掉”小数问题

在这里插入图片描述

5.4 注意简化计算程序,减少计算次数

如果算法的时间复杂度太高,实际计算将可能无法完成

image-20231003151801879

image-20231003151921284

其次,即使是可行算法,则计算量越大积累的误差就可能越大。因此计算量应该越小越好。

image-20231003152102173

有没有办法减少计算量呢,有的,就是改变计算的方法(先化简,再计算),如下所示:

image-20231003152211888

5.5 选用数值稳定性好的算法

一种算法,如果它的舍入误差积累是可控制的,非递增的,则称其为数值稳定的,否则称其为数值不稳定的。

一个数值不稳定的算法,随着计算量的增大,误差积累会越来越多,导致结果失真

image-20231003152444735

image-20231003152523373

上面是通过实验说明了该算法是数值不稳定的,下面通过公式推导证明:

image-20231003152642181

我们可以修改一下算法,使其变为数值稳定的

image-20231003152849452

实际结果验证可得:

image-20231003152943820

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

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

相关文章

【一文清晰】单元测试到底是什么?应该怎么做?

我是java程序员出身,后来因为工作原因转到到了测试开发岗位。测试开发工作很多年后,现在是一名自由职业者 1、什么是单元测试 2、该怎么做单元测试 一、什么是单元测试? 单元测试(unit testing),是指对软件…

4款文件恢复工具推荐,恢复数据就靠它们!

“想问问大家在使用电脑时有什么好的文件恢复工具推荐吗?最近好像有点粗心,经常误删文件,非常需要一个有用的恢复工具,希望大家给些意见!” 在日常工作或学习中,由于各种原因造成的文件丢失是很正常的情况。…

什么是模拟芯片,模拟芯片都有哪些测试指标?

模拟芯片又称处理模拟信号的集成电路 模拟集成电路主要是指由电容、电阻、晶体管等组成的模拟电路集成在一起用来处理模拟信号的集成电路。有许多的模拟集成电路,如运算放大器、模拟乘法器、锁相环、电源管理芯片等。 模拟集成电路的主要构成电路有:放…

打造属于自己的vue图标库

hfex-icon图标库 Install npm i -D hfex-icon主要提供2种使用方式 方式一 通过svg图标资源,借助unplugin-icons库将svg图标文件生成vue组件,然后通过vue组件的引入方式在vue中使用 unplugin-icons 兼容vue2和vue3 在vue.config.js的plugins中配置…

“轻松实现文件夹批量重命名:使用顺序编号批量改名“

你是否曾经需要大量修改文件夹名称?或者需要为文件夹添加有序编号以便于管理?下面就教你一个简单的方法,轻松实现文件夹批量重命名,使用顺序编号批量改名。 首先我们要进入文件批量改名高手主页面,并在板块栏里选择“文…

java springboot VUE粮食经销系统开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot VUE 粮食经销系统是一套完善的完整信息管理类型系统,结合springboot框架和VUE完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发) ,系统具有完整的源代码和数…

kafka、zookeeper、flink测试环境、docker

1、kafka环境单点 根据官网版本说明(3.6.0)发布,zookeeper依旧在使用状态,预期在4.0.0大版本的时候彻底抛弃zookeeper使用KRaft(Apache Kafka)官方并给出了zk迁移KR的文档 2、使用docker启动单点kafka 1、首先将kafka启动命令,存储为.servi…

LLC 三相移相PWM产生原理分析

LLC 三相移相PWM产生原理分析 void MX_PWM_Stop(void) {//----------------------使用停止函数后会导致移相角度为60度---------------------------------------------------------------- #if 1 //------Tim1 PWM定时器初始化------------------ HAL_TIM_OC_Stop(&htim1…

最新Google play开发者账号注册要求、单位账号邓白氏编码问题及身份验证解决思路!

随着Google play商店的蓬勃发展,越来越多的开发者在上面上传应用,但部分开发者为了获得更多的收益,试图通过多种方式绕过谷歌限制,无视谷歌规则。 为了维持Google play的生态环境,谷歌采取了多种方式和方法去应对这些…

决策树oo

决策树学习的算法通常是一个递归地选择最优特征(选择方法的不同,对应着不同的算法),并根据该特征对训练数据进行分割,使得各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分,也对应着决策树的构建 步骤&#…

git切换远程仓库源步骤

git切换远程仓库源步骤: 第一步:git remote -v 查看当前远程仓库源: 第二步:git remote rm origin删除远程仓库源; 第三步:git remote add origin http://newURL.git 添加新的远程仓库源地址&#xff1b…

Operator 开发实践 四 (WebHook)

1. WebHook介绍 我们知道访问Kubernetes API有好几种方式,比如使用kubectl命令、使用client-go之类的开发库、直接通过REST请求等。不管是一个使用kubectl的真人用户,还是一个Service Account,都可以通过API访问认证,这个过程官网…

AI机器视觉多场景应用迸发检测活力,引领食品及包装行业新发展

随着食品安全意识的广泛传播,人们对食品质量和安全的要求越来越高,众多食品包装厂商加速产线数智化转型,迫切需要高效、准确且智能化的检测技术。 在现代食品及包装行业的自动化生产中,涉及到各种各样的识别、检测、测量等环节&a…

LabVIEW中管理大型数据

LabVIEW中管理大数据 LabVIEW的最大优势之一是自动内存管理。这种内存管理允许用户轻松创建字符串、数组和集群,而无需C/C用户经常担心。但是,这种内存管理设计为绝对安全,因此数据被非常频繁地复制。这通常不会造成任何问题,但是…

Linux下使用openssl制作证书

openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证…

Go语言和Python语言哪个比较好?

目录 1、性能 2、开发效率和易用性 3、社区支持 4、语法 5、其他因素 总结 Go语言和Python语言都是非常优秀的编程语言,它们各自具有不同的优势和适用场景。在选择哪种语言更适合您的项目时,需要考虑多个方面,包括性能、开发效率、可读…

软文为什么成为企业降本增效的营销利器?

如今企业营销面临的重大课题之一就是如何降低成本,增强宣传效果,传统营销模式集中于线下,不仅要花费大量的时间、金钱成本,还需要花费大量的人力成本。而网络技术的发展,使企业营销的方式更加多样化,其中软…

python tk展示图片

from tkinter import * from PIL import ImageTk, Imageroot Tk() root.title("展示图片")# 打开图片 image Image.open("DSC_2040.jpg") # 调整图片大小 image image.resize((300, 300), Image.ANTIALIAS) # 创建图像对象 img ImageTk.PhotoImage(ima…

P2181 对角线

#include<bits/stdc.h> using namespace std; unsigned long long n,ans; int main() {scanf("%lld",&n);ansn * (n-1) / 2 * (n-2) / 3 * (n-3) / 4;printf("%lld\n",ans);return 0; }

UE 插件模块引用

如Plugons中的模块A想要引用模块B&#xff1a; 1、模块A中的.uplugin文件加入↓ 2、模块A中的.Build.cs文件加入↓ 3、在模块A需要用到模块B的地方直接include 4、重新generate Project 5、重新编译 注意两个模块之间不能循环引用