误差

准确值与近似值的差距就是误差。

误差通常来自于

  1. 截断误差:由简化问题引起的误差,如求收敛级数之和的近似值 c o s ( x ) = 1 − x 2 2 ! + x 4 4 ! − x 6 6 ! + ⋯ + ( − 1 ) n x 2 n ( 2 n ) ! + ⋯ ≈ 1 − x 2 2 ! cos(x)=1-\frac{x^2}{2!}+\frac{x^4}{4!}-\frac{x^6}{6!}+\cdots+\frac{(-1)^nx^{2n}}{(2n)!}+\cdots\approx1-\frac{x^2}{2!} cos(x)=1−2!x2​+4!x4​−6!x6​+⋯+(2n)!(−1)nx2n​+⋯≈1−2!x2​。
  2. 舍入误差:由采取舍入操作引起的误差,通常因为计算机等精度限制。
  3. 模型误差及观测误差:由数学模型、观测引起的误差。
    基本上只研究舍入误差和截断误差。

绝对误差与相对误差

设近似值 x ∗ x^* x∗近似于准确值 x x x,那么 x ∗ x^* x∗的绝对误差(即误差)表示为:
e ( x ∗ ) = x − x ∗ e(x^*)=x-x^* e(x∗)=x−x∗
由于难以求出准确值,只能估算出误差绝对值的某个上界 ϵ \epsilon ϵ,这些上界称为绝对误差限(即误差限):
∣ e ( x ∗ ) ∣ ≤ ϵ |e(x^*)|\le\epsilon ∣e(x∗)∣≤ϵ

  • 注意误差有正负之分,而误差限总是正值
  • 误差限不唯一

近似值 x ∗ x^* x∗的误差与准确值 x x x之比称为相对误差 e r ( x ∗ ) e_r(x^*) er​(x∗),由于难以求出准确值,一般取相对误差为:
e r ( x ∗ ) = e ( x ∗ ) x ∗ e_r(x^*)=\frac{e(x^*)}{x^*} er​(x∗)=x∗e(x∗)​
相似的,估算相对误差的某个上界 ϵ r \epsilon_r ϵr​,这些上界称为相对误差限
∣ e r ( x ∗ ) ∣ ≤ ϵ r |e_r(x^*)|\le\epsilon_r ∣er​(x∗)∣≤ϵr​

有效数字

如果近似值 x ∗ x^* x∗的误差限是 0.5 × 1 0 − n 0.5×10^{-n} 0.5×10−n ,则称 x ∗ x^* x∗准确到小数点后的第 n n n位,从第一个非零数字到这一位的所有数字均称为有效数字。

如 x = 0.003400 ± 0.5 × 1 0 − 5 x=0.003400\pm 0.5×10^{-5} x=0.003400±0.5×10−5 表示近似值 x ∗ = 0.003400 x^*=0.003400 x∗=0.003400 精确到小数点后第5位,有3位有效数字。

有效数字与相对误差限关系

若 x ∗ x^* x∗有 n n n位有效数字, a 1 a_1 a1​为首位有效数字,则 x ∗ x^* x∗的相对误差限为:
1 2 a 1 × 1 0 − n + 1 \frac{1}{2a_1}×10^{-n+1} 2a1​1​×10−n+1
反之,若 x ∗ x^* x∗的相对误差限 ϵ r \epsilon_r ϵr​满足:
ϵ r ≤ 1 2 a 1 × 1 0 − n + 1 \epsilon_r\le\frac{1}{2a_1}×10^{-n+1} ϵr​≤2a1​1​×10−n+1
则 x ∗ x^* x∗至少有 n n n位有效数字。

误差基本运算

记 y = f ( x 1 , x 2 , ⋯ , x n ) y=f(x_1,x_2,\cdots,x_n) y=f(x1​,x2​,⋯,xn​) ,近似解记为 y ∗ = f ( x 1 ∗ , x 2 ∗ , ⋯ , x n ∗ ) y^*=f(x_1^*,x_2^*,\cdots,x_n^*) y∗=f(x1∗​,x2∗​,⋯,xn∗​) ,假定 f f f在点 ( x 1 ∗ , x 2 ∗ , ⋯ , x n ∗ ) (x_1^*,x_2^*,\cdots,x_n^*) (x1∗​,x2∗​,⋯,xn∗​)可微解的误差为:
e ( y ∗ ) = y − y ∗ ≈ d y ∗ = ∑ i = 1 n ∂ y ∗ ∂ x i ⋅ e ( x i ∗ ) \begin{aligned} e(y^*)=y-y^* &\approx dy^* \\ &= \sum_{i=1}^{n} \frac{\partial y^*}{\partial x_i}·e(x_i^*) \end{aligned} e(y∗)=y−y∗​≈dy∗=i=1∑n​∂xi​∂y∗​⋅e(xi∗​)​

由 Δ y = A Δ x + o ( Δ x ) \Delta y = A\Delta x + o(\Delta x) Δy=AΔx+o(Δx) ,这里的 A A A就是偏导 ∂ y ∗ ∂ x \frac{\partial y^*}{\partial x} ∂x∂y∗​ , Δ x \Delta x Δx就是 e ( x ∗ ) e(x^*) e(x∗), d y dy dy即 A Δ x A\Delta x AΔx 。
微分学中,当自变量改变量 Δ x \Delta x Δx(这里可以看做是误差)很小时,函数的微分 d y = A Δ x dy=A\Delta x dy=AΔx 作为函数该变量的主要线性部分可以近似函数的改变量 Δ y \Delta y Δy,故利用微分运算公式可导出误差运算公式。

导出误差基本运算公式:
{ e ( x 1 ± x 2 ) = e ( x 1 ) ± e ( x 2 ) e ( x 1 x 2 ) ≈ x 2 e ( x 1 ) + x 1 e ( x 2 ) e ( x 1 x 2 ) ≈ 1 x 2 e ( x 1 ) − x 1 x 2 2 e ( x 2 ) \left\{ \begin{aligned} e(x_1 \pm x_2)&=e(x_1) \pm e(x_2) \\ e(x_1x_2)&\approx x_2e(x_1)+x_1e(x_2)\\ e(\frac{x_1}{x_2})&\approx \frac{1}{x_2}e(x_1)-\frac{x_1}{x_2^2} e(x_2)\\ \end{aligned} \right. ⎩⎪⎪⎪⎨⎪⎪⎪⎧​e(x1​±x2​)e(x1​x2​)e(x2​x1​​)​=e(x1​)±e(x2​)≈x2​e(x1​)+x1​e(x2​)≈x2​1​e(x1​)−x22​x1​​e(x2​)​

解的相对误差为:
e ( y ∗ ) = e ( y ∗ ) y ∗ ≈ d y ∗ y ∗ = ∑ i = 1 n ∂ y ∗ ∂ x i ⋅ e ( x i ∗ ) y ∗ \begin{aligned} e(y^*)=\frac{e(y^*)}{y^*} &\approx \frac{dy^*}{y^*} \\ &= \sum_{i=1}^{n} \frac{\partial y^*}{\partial x_i}·\frac{ e(x_i^*) }{y^*} \end{aligned} e(y∗)=y∗e(y∗)​​≈y∗dy∗​=i=1∑n​∂xi​∂y∗​⋅y∗e(xi∗​)​​

导出相对误差基本运算公式:
{ e r ( x 1 ± x 2 ) = e ( x 1 ) ± e ( x 2 ) x 1 ± x 2 e r ( x 1 x 2 ) ≈ e ( x 1 ) x 1 + e ( x 2 ) x 2 = e r ( x 1 ) + e r ( x 2 ) e ( x 1 x 2 ) ≈ e ( x 1 ) x 1 − e ( x 2 ) x 2 = e r ( x 1 ) − e r ( x 2 ) \left\{ \begin{aligned} e_r(x_1 \pm x_2)&= \frac{ e(x_1) \pm e(x_2) }{x_1 \pm x_2}\\ e_r(x_1x_2)&\approx \frac{ e(x_1)}{x_1}+\frac{ e(x_2)}{x_2}=e_r(x_1)+e_r(x_2)\\ e(\frac{x_1}{x_2})&\approx \frac{e(x_1)}{x_1}-\frac{e(x_2)}{x_2}=e_r(x_1)-e_r(x_2)\\ \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​er​(x1​±x2​)er​(x1​x2​)e(x2​x1​​)​=x1​±x2​e(x1​)±e(x2​)​≈x1​e(x1​)​+x2​e(x2​)​=er​(x1​)+er​(x2​)≈x1​e(x1​)​−x2​e(x2​)​=er​(x1​)−er​(x2​)​

注意分辨公式里的误差 e e e 和相对误差 e r e_r er​
相对误差公式即在上述误差公式的基础上除以 y ∗ y^* y∗ ,再把 e e e 转化为 e r e_r er​

例1:假设运算中数据都精确到两位小数,试求 x ∗ = a ⋅ b − c x^*=a·b-c x∗=a⋅b−c的误差限和相对误差限。
e ( x ∗ ) = a ∗ ⋅ e ( b ∗ ) + b ∗ ⋅ e ( a ∗ ) − e ( c ∗ ) e(x^*)=a^*·e(b^*)+b^*·e(a^*)-e(c^*) e(x∗)=a∗⋅e(b∗)+b∗⋅e(a∗)−e(c∗)
由于数据精确到两位小数,故 e ( a ∗ ) , e ( b ∗ ) , e ( c ∗ ) ≤ 0.5 × 1 0 − 2 e(a^*),e(b^*),e(c^*) \le 0.5×10^{-2} e(a∗),e(b∗),e(c∗)≤0.5×10−2 ,则有:
e ( x ∗ ) ≤ ( 0.5 × 1 0 − 2 ) a ∗ + ( 0.5 × 1 0 − 2 ) b ∗ − ( 0.5 × 1 0 − 2 ) = ( a ∗ + b ∗ − 1 ) ⋅ ( 0.5 × 1 0 − 2 ) \begin{aligned} e(x^*) & \le (0.5×10^{-2})a^*+(0.5×10^{-2})b^*-(0.5×10^{-2}) \\ &=(a^*+b^*-1)·(0.5×10^{-2}) \end{aligned} e(x∗)​≤(0.5×10−2)a∗+(0.5×10−2)b∗−(0.5×10−2)=(a∗+b∗−1)⋅(0.5×10−2)​

数值计算应注意的问题

  1. 避免两个相近的数相减
    e r ( x ∗ − y ∗ ) = e ( x ∗ − y ∗ ) x ∗ − y ∗ e_r(x^*-y^*)=\frac{e(x^*-y^*)}{x^*-y^*} er​(x∗−y∗)=x∗−y∗e(x∗−y∗)​
    相近的 x x x与 y y y会导致相对误差增大,相对误差限增大,从而使得结果的有效数字减少。
  2. 避免大数吃小数
    由于计算机小数位数精度限制,大数减去小数经常会未变化,此时结果不准确。
  3. 避免除数的绝对值远小于被除数的绝对值
    e ( x y ) ≈ 1 y e ( x ) − x y 2 e ( y ) e(\frac{x}{y})\approx \frac{1}{y}e(x)-\frac{x}{y^2} e(y) e(yx​)≈y1​e(x)−y2x​e(y)
    当 y ≪ x y\ll x y≪x时,后项导致舍入误差增大
  4. 要简化计算,减少计算次数
    计算量大小会影响误差的累积。

例2(算法稳定性问题):考虑递推式算法 I n = 1 n − 5 I n − 1 I_n=\frac{1}{n}-5I_{n-1} In​=n1​−5In−1​ ,假设 I 0 I_0 I0​ 有误差 e 0 e_0 e0​ ,计算中没有舍入误差情况下,求 e n e_n en​ 。
e n = I n − I n ∗ = − 5 I n − 1 + 5 I n − 1 ∗ = − 5 ( I n − 1 − I n − 1 ∗ ) = − 5 e n − 1 = ( − 5 ) n e 0 \begin{aligned} e_n = I_n - I_n^* &= -5I_{n-1}+5I_{n-1}^* \\&= -5(I_{n-1}-I_{n-1}^*)\\&=-5e_{n-1}\\&= (-5)^ne_0 \end{aligned} en​=In​−In∗​​=−5In−1​+5In−1∗​=−5(In−1​−In−1∗​)=−5en−1​=(−5)ne0​​
每计算一次,误差便会扩大到5倍。由于计算过程中舍入误差增长,该算法不具有数值稳定性。相反,舍入误差不增长的算法具有数值稳定性

数值计算复习笔记之(一)误差定义相关推荐

  1. 2018.8.14-C++复习笔记总

    2018.8.14-C++复习笔记总 // CPPTEST.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iost ...

  2. Opencv复习笔记

    Opencv复习笔记 整理自:https://blog.csdn.net/u013162035/article/details/79645331 0.索引: [1]图像混合 [2]图像通道的分离和合并 ...

  3. 哈工大机器学习复习笔记(四)

    本篇文章是在参考西瓜书.PPT课件.网络上相关博客等资料的基础上整理出的机器学习复习笔记,希望能给大家的机器学习复习提供帮助.这篇笔记只是复习的一个参考,大家一定要结合书本.PPT来进行复习,有些公式 ...

  4. 【山东大学】web数据管理——复习笔记

    写在前面 若有图片加载失败,请科学上网 . 本文为对软件学院连老师的PPT课件总结所得的复习笔记,仅供参考.不保证对考点的全覆盖,以PPT为主. 对往年考过的题相关知识点前面都标注了"考过& ...

  5. Python复习笔记——基础知识

    Python复习笔记-基础知识 文章目录 Python复习笔记-基础知识 Python变量 基于值的内存管理方式 赋值语句的执行过程 Python定义变量名的规范 运算符和表达式 加+ 乘* 除/ % ...

  6. 传感与检测技术(机电)_简要问答题_复习笔记

    声明:本文仅个人复习笔记,不作为任何正式场景的问答参考.版权所有,禁止复制到百度文库等其他平台. 虚拟仪器技术及应用LabView案例 课后作业 用Labview画一个三维的空心管(水管) 目    ...

  7. 数据结构期末复习笔记(NEU版)

    数据结构期末复习笔记 绪论 数据结构的概念 数据结构的分类 数据结构研究的内容 算法的重要特性 算法的设计要求 题目汇总 线性表 栈和队列 栈 队列 题目 数组与广义表 树 二叉树 二叉树的遍历 线索 ...

  8. 哈工大机器学习复习笔记(一)

    本篇文章是在参考西瓜书.PPT课件.网络上相关博客等资料的基础上整理出的机器学习复习笔记,希望能给大家的机器学习复习提供帮助.这篇笔记只是复习的一个参考,大家一定要结合书本.PPT来进行复习,有些公式 ...

  9. matlab arr3(5 end),matlab复习笔记.doc

    matlab复习笔记.doc 如果一个语句在一行内书写太长了,可能要另起一行接着写,在这种情况下我们需要在第一行末打上半个省略号(),再开始第二行的书写.历史命令窗口(THEHISTORYCOMMAN ...

最新文章

  1. tnsping通oracle连不上,写正确了tnsnames文件却tnsping无法ping通
  2. 个人博客满血复活,求测试~~~
  3. html闪烁字体设置,HTML最简单的文字闪烁代码
  4. Java黑皮书课后题第8章:**8.37(猜测首府)编写一个程序,重复提示用户输入一个州的首府。当接收到用户输入后,程序报告答案是否正确。假设50个州以及它们的首府保存在一个二维数组中,提示用户回答所
  5. Just for fun——go实现一下观察者模式
  6. cocos2dx游戏--欢欢英雄传说--添加攻击按钮
  7. 要做好性能测试,该掌握些什么?
  8. 优雅的读懂支持向量机 SVM 算法
  9. 语义分割概念及应用介绍
  10. 解压zip,解决中文乱码
  11. 等保测评--网络安全等级保护实施指南
  12. django基础知识总结
  13. C语言如何使用三角函数
  14. 多媒体计算机的媒体信息包括文字,多媒体计算机中的媒体信息是指什么
  15. 【全套完结】电磁场与电磁波实验-----全套Matlab仿真实验
  16. gpuz怎么看显存颗粒
  17. HTML5响应式手机软件下载网站源码 APP应用软件下载站pbootcms模板
  18. 强大的web打印插件--Lodop
  19. .net 6项目使用DB First时报“Unable to resolve service for type......”的错
  20. CVE-2020-1472: NetLogon特权提升漏洞通告

热门文章

  1. 机房搬迁更改集群IP
  2. 俞敏洪对话王立铭:重塑大脑,别让你的生命翻车
  3. 商汤科技面试——深度学习
  4. pdf怎么合并在一起?轻松合并pdf的几个方法
  5. 新人融入团队的必备python技巧,python 编码规范,滚雪球学Python第4季12篇
  6. Django - 发送邮件
  7. Sqlite 分组查询
  8. Project build error: Non-resolvable parent POM for com.gzl.cn:springboot01:0.0.1-SNAPSHOT: Could not
  9. win10系统修改文件后缀名
  10. php爬取百度相关关键词,PHP实现抓取百度搜索结果页面【相关搜索词】并存储到txt文件示例...