数值计算的误差

内容来源
数值分析第五版 清华大学出版社


误差的来源与分类

数值分析只研究用数值方法求解数学模型产生的误差

模型误差

用计算机解决科学计算问题首先要建立数学模型,它是对被描述的实际问题进行抽象、简化而得到的,因而是近似的。

我们把数学模型与实际问题之间出现的这种误差称为模型误差。

由于这种误差难以用数量表示,通常都假定数学模型是合理的,这种误差可忽略不计,在“数值分析”中不予讨论。

观测误差

数学模型中往往还有一些根据观测得到的物理量,如温度、长度、电压等,这些参量显然也包含误差。

这种由观测产生的误差称为观测误差,在“数值分析”也不讨论这种误差。

截断误差(也称方法误差)

当数学模型不能得到精确解时,通常要用数值方法求它的近似解,其近似解与精确解之间的误差称为截断误差或方法误差。

例如,可微函数 f ( x ) f(x) f(x) T a y l o r T a y l o r TaylorTaylor TaylorTaylor 多项式

P n ( x ) = f ( 0 ) + f ′ ( 0 ) 1 ! x + f ′ ′ ( 0 ) 2 ! x 2 + ⋯ + f ( n ) ( 0 ) n ! x n P_n(x)=f(0)+\frac{f'(0)}{1!}x+\frac{f''(0)}{2!}x^2 +\cdots+\frac{f^{(n)}(0)}{n!}x^n Pn(x)=f(0)+1!f(0)x+2!f′′(0)x2++n!f(n)(0)xn

近似代替,则数值方法的截断误差是

R n ( x ) = f ( x ) − P n ( x ) = f n + 1 ( ξ ) ( n + 1 ) ! x n + 1 , ξ 在 0 与 x 之间 R_n(x)=f(x)-P_n(x)=\frac{f^{n+1}(\xi)}{(n+1)!}x^{n+1},\xi在0与x之间 Rn(x)=f(x)Pn(x)=(n+1)!fn+1(ξ)xn+1,ξ0x之间

舍入误差

用计算机做数值计算时,由于计算机的字长有限,原始数据在计算机上表示时会产生误差,计算过程又可能产生新的误差,这种误差称为舍入误差。


误差与有效数字

绝对误差

x x x 为准确值, x ∗ x^* x x x x 的一个近似值,称 e ∗ = x ∗ − x e^*=x^*-x e=xx 为近似值的绝对,简称误差

误差限

通常我们不能算出准确值 x x x ,也不能算出误差 e ∗ e^* e 的准确值,只能根据测量工具或计算情况估计出误差的绝对值不超过某正数 ε ∗ \varepsilon^* ε ,也就是误差绝对值的一个上界

相对误差

我们把近似值的误差 e ∗ e^* e 与准确值 x x x 的比值

e ∗ x = x ∗ − x x \frac{e^*}{x}=\frac{x^*-x}{x} xe=xxx

称为近似值 x ∗ x^* x 的相对误差,记作 e r ∗ e^*_r er

在实际计算中,由于真值 x x x 总是不知道的,通常取

e r ∗ = e ∗ x ∗ = x ∗ − x x ∗ e^*_r=\frac{e^*}{x^*}=\frac{x^*-x}{x^*} er=xe=xxx

作为 x ∗ x^* x 的相对误差,条件是 e r ∗ = e ∗ x ∗ e^*_r=\frac{e^*}{x^*} er=xe 较小,此时

e ∗ x − e ∗ x ∗ = e ∗ ( x ∗ − x ) x ∗ x = ( e ∗ ) 2 x ∗ ( x ∗ − e ∗ ) = ( e ∗ / x ∗ ) 2 1 − ( e ∗ / x ∗ ) \frac{e^*}{x}-\frac{e^*}{x^*}=\frac{e^*(x^*-x)}{x^*x}= \frac{(e^*)^2}{x^*(x^*-e^*)}=\frac{(e^*/x^*)^2}{1-(e^*/x^*)} xexe=xxe(xx)=x(xe)(e)2=1(e/x)(e/x)2

e r ∗ e^*_r er 的平方项级,故可忽略不计

相对误差限

相对误差也可正可负,它的绝对值上界叫做相对误差限,记作 ε r ∗ \varepsilon^*_r εr ,即 ε r ∗ = ε ∗ ∣ x ∗ ∣ \varepsilon^*_r=\frac{\varepsilon^*}{|x^*|} εr=xε

相对误差与相对误差限是无量纲的,而误差与误差限是有量纲的

有效数字

若近似值 x ∗ x^* x 的误差限是某一位的半个单位,该为到 x ∗ x^* x 的第一位非零数字共有 n n n 位,就说 x ∗ x^* x n n n 位有效数字。它可表示为

x ∗ = ± 1 0 m × ( a 1 + a 2 × 1 0 − 1 + ⋯ + a n × 1 0 − ( n − 1 ) ) x^*=\pm10^m\times(a_1+a_2\times10^{-1}+\cdots+a_n\times10^{-(n-1)}) x=±10m×(a1+a2×101++an×10(n1))

上式就是科学计数法

其中 a i ( i = 1 , 2 , ⋯ , n ) a_i(i=1,2,\cdots,n) ai(i=1,2,,n) 0 0 0 9 9 9 中的一个数字, a 1 ≠ 0 a_1\neq0 a1=0 m m m 为整数,且

绝对误差限为

∣ x − x ∗ ∣ ⩽ 1 2 × 1 0 m − n + 1 |x-x^*|\leqslant\frac{1}{2}\times10^{m-n+1} xx21×10mn+1

相对误差限为

ε r ∗ ⩽ 1 2 a 1 × 1 0 − ( n − 1 ) \varepsilon^*_r\leqslant\frac{1}{2a_1}\times10^{-(n-1)} εr2a11×10(n1)


数值运算的误差估计

加减乘除

设两个近似数 x 1 ∗ x^*_1 x1 x 2 ∗ x^*_2 x2 的误差限分别为 ε ( x 1 ∗ ) \varepsilon(x^*_1) ε(x1) ε ( x 2 ∗ ) \varepsilon(x^*_2) ε(x2) ,则它们进行加、减、乘、除运算得到的误差限分别满足不等式

ε ( x 1 ∗ ± x 2 ∗ ) ⩽ ε ( x 1 ∗ ) + ε ( x 2 ∗ ) ε ( x 1 ∗ x 2 ∗ ) ⩽ ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) + ∣ x 2 ∗ ∣ ε ( x 1 ∗ ) ε ( x 1 ∗ / x 2 ∗ ) ⩽ ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) + ∣ x 2 ∗ ∣ ε ( x 1 ∗ ) ∣ x 2 ∗ ∣ 2 , x 2 ∗ ≠ 0 \varepsilon(x^*_1\pm x^*_2)\leqslant \varepsilon(x^*_1)+\varepsilon(x^*_2)\\ \varepsilon(x^*_1x^*_2)\leqslant |x^*_1|\varepsilon(x^*_2)+|x^*_2|\varepsilon(x^*_1)\\ \varepsilon(x^*_1/x^*_2)\leqslant \frac{|x^*_1|\varepsilon(x^*_2)+|x^*_2|\varepsilon(x^*_1)} {|x^*_2|^2},x^*_2\neq 0 ε(x1±x2)ε(x1)+ε(x2)ε(x1x2)x1ε(x2)+x2ε(x1)ε(x1/x2)x22x1ε(x2)+x2ε(x1),x2=0

函数运算

当自变量有误差时计算函数值也产生误差,其误差限可利用函数的 T a y l o r Taylor Taylor 展开式进行估计

f ( x ) f(x) f(x) 是一元可微函数, x x x 的近似值为 x ∗ x^* x ,则

f ( x ) − f ( x ∗ ) = f ′ ( x ) ( x − x ∗ ) + f ′ ′ ( ξ ) 2 ( x − x ∗ ) 2 f(x)-f(x^*)=f'(x)(x-x^*)+\frac{f''(\xi)}{2}(x-x^*)^2 f(x)f(x)=f(x)(xx)+2f′′(ξ)(xx)2

取绝对值得

∣ f ( x ) − f ( x ∗ ) ∣ = ∣ f ′ ( x ) ∣ ε ( x ∗ ) + ∣ f ′ ′ ( ξ ) ∣ 2 ε 2 ( x ∗ ) |f(x)-f(x^*)|=|f'(x)|\varepsilon(x^*) +\frac{|f''(\xi)|}{2}\varepsilon^2(x^*) f(x)f(x)=f(x)ε(x)+2f′′(ξ)ε2(x)

假定 f ′ ( x ∗ ) f'(x^*) f(x) f ′ ′ ( x ∗ ) f''(x^*) f′′(x) 的比值不太大,可忽略 ε ( x ∗ ) \varepsilon(x^*) ε(x) 的高阶项,得

这个忽略有些草率

ε ( f ( x ∗ ) ) ≈ ∣ f ′ ( x ∗ ) ∣ ε ( x ∗ ) \varepsilon(f(x^*))\approx|f'(x^*)|\varepsilon(x^*) ε(f(x))f(x)ε(x)

同理,当 f f f 为多元函数时

ε ( f ∗ ) ≈ ∑ i = 1 n ∣ ∂ f ∂ x i ∗ ∣ ε ( x i ∗ ) \varepsilon(f^*)\approx\sum^n_{i=1} \bigg|\frac{\partial f}{\partial x^*_i}\bigg|\varepsilon(x^*_i) ε(f)i=1n xif ε(xi)

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

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

相关文章

测试3个月,成功入职 “字节”,我的面试心得总结!

今天来给大家讲一下软件测试工程师的面试一些技巧、建议,以及你们在面试过程中需要做的一些准备、注意事项。 很多的小伙伴在刚刚学习完软件测试后就要面临一个问题:就业找工作。找工作要面临的第一件事儿就是面试,很多小伙伴对面试完全是模糊…

进阶SpringBoot之分布式系统与 RPC 原理

分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统 分布式系统是由一组通过网络进行通信,为了完成共同的任务而协调工作的计算机节点组成的系统 其目的是利用更多的机器,处理更多的数据 RPC(Remote Pr…

两数之和、三数之和、四数之和

目录 两数之和 题目链接 题目描述 思路分析 代码实现 三数之和 题目链接 题目描述 思路分析 代码实现 四数之和 题目链接 题目描述 思路分析 代码实现 两数之和 题目链接 LCR 179. 查找总价格为目标值的两个商品 - 力扣(LeetCode) 题目…

文心快码太牛啦

在工作中遇到这种重复性的文本处理,可以使用问心快码帮助提升工作效率,把自己从重复劳动中解放出来。在写代码的时候也可以使用问心快码,比如: 1、每次对函数进行命名的时候就很头疼,能否出一个函数命名的快捷入口&…

国央企如何完善黑名单排查体系?

国央企完善黑名单排查体系的关键在于建立健全的供应商管理机制、风险评估体系和信息共享平台。以下是一些具体措施: 1.建立黑名单库:国央企可以依据外部黑名单数据(如政府监管部门、行业协会、第三方征信机构公布的黑名单)和内部…

如何编写高质量的用户故事

本文详细介绍了如何在敏捷开发过程中编写高质量用户故事(User Story),包括用户故事的定义、结构、撰写技巧以及如何与产品待办列表(Product Backlog)中的其他工作项(PBI)相结合,以提…

自动化学习2:pytest的高级用法(mark标记/fixture/hook)

一.mark的用法 概念:Pytest提供的mark标记,允许我们标记测试函数,测试类和整个模块。通过不同的标记实现不同的运行策略,如标记冒烟测试用例。 1.注册标记 可以在pytest.ini文件注册自定义标记 除了自己注册的标记外&#xff0…

Android 深层链接利用

为了能够从我们的应用程序打开另一个应用程序,我们通常通过声明我们想要访问的 Activity 类的名称来实现这一功能。但是,如果我们要打开的 Activity 在其清单文件中设置了android:exported"false" ,则无法使用此方法。而其中一种替…

Open3D(C++) 基于点云的曲率提取特征点(自定义阈值法)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接,首发于:2024年9月23日。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的抄袭狗。 一、算法原理 点云的曲率反映了点云表面的凹凸程度,根据点云曲率的分布情况,设置合适的阈值,提取…

安畅检测受邀参与“长清区数字化转型企业对接会”

9月11日下午,长清区工信局召开“长清区数字化转型企业对接会”,链接数字化服务商与亟待数字化升级的企业代表,共商推进数字化诊断等事项,安畅检测数字化诊断项目负责人受邀出席本次会议。 会上,长清区工信局相关负责人…

性能测试问题诊断-接口耗时高

问题现象&#xff1a;近期发现每晚跑的定时压测任务&#xff0c;压测结果中&#xff0c;各接口耗时变高&#xff08;原来99耗时<3秒&#xff0c;当前99耗时>20秒)。 问题排查&#xff1a; 查看jmeter 生成的结果图&#xff0c;发现压测2分钟后出现接口耗时变高情况。如下…

安装一个本地大模型

详细的教程基于 AnythingLLM 及 Ollama 构建本地知识库 - knqiufan - 博客园 安装本地大模型之后&#xff0c;用如下方式启动 ollama run deepseek-v2:16b。

海豚调度运行成功但无法生成实例解决

海豚调度运行成功但无法生成实例解决 问题描述 点击运行&#xff0c;提示运行成功但无法在工作实例中看到 问题定位 查看资源监控&#xff0c;内存占用80% 查看master日志 tail -f /home/dolphinscheduler/tmp/dolphinscheduler/master-server/logs/dolphinscheduler-m…

Webpack 介绍

Webpack 介绍 Date: August 29, 2024 全文概要 Webpack概念&#xff1a; Webpack是一个静态的模块化的打包工具&#xff0c;可以为现代的 JavaSript 应用程序进行打包。 1-静态&#xff1a;Webpack可以将代码打包成最终的静态资源 2-模块化&#xff1a;webpack支持各种模块…

【Python报错已解决】AttributeError: ‘Tensor‘ object has no attribute ‘kernel_size‘

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

【JS】forEach中push为何不会陷入死循环,稀疏数组空元素为何不会被遍历

前言 使用 forEach 时&#xff0c;遇到过如下几个问题 为什么稀疏数组空元素不会被遍历 为什么每次循环时 push 不会陷入死循环 为什么使用splice删除元素后&#xff0c;访问不到下一位元素 溯源 查阅 ecma官方文档&#xff0c;使用ECMA-262, 14th edition, June 2023版 …

【深度估计】【深度学习】Windows11下Dynamic-multiframe-depth代码Pytorch官方实现与源码讲解

【深度估计】【深度学习】Windows11下Dynamic-multiframe-depth代码Pytorch官方实现与源码讲解 提示:最近开始在【光流估计】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。 文章目录 【深度估计】【深度学习】Windows11下Dynamic-multiframe-depth代码Pyt…

JDBC PreparedStatement解决SQL注入方案

文章目录 获取PreparedStatement对象PreparedStatement是如何解决SQL注入问题的PreparedStatement的 应用上述如何解决sql注入的问题呢&#xff1f; 获取PreparedStatement对象 PreparedStatement是Statement的子接口&#xff0c;可以防止sql注入问题。可以通过Connection接口…

耳夹式耳机哪个品牌好?热门品牌机型推荐

在移动互联网时代&#xff0c;耳机已然成为很多人生活里不可或缺的电子产品。不管是在上下班的途中&#xff0c;还是进行运动的时候&#xff0c;耳机都能为人们带来音乐的美妙享受&#xff0c;起到减轻压力的作用。 可是&#xff0c;长时间佩戴入耳式耳机存在一些弊端&#xf…

【无人机设计与控制】使用凸优化的无人机在存在威胁区域时的路径规划

摘要 本文提出了一种基于凸优化的无人机路径规划方法&#xff0c;旨在解决无人机在威胁区域中飞行的最优路径问题。该方法通过构建威胁区域的凸集表示&#xff0c;并结合凸优化算法&#xff0c;确保无人机能够在避开威胁区域的同时&#xff0c;沿着最优路径到达目标点。仿真结…