数值分析学习笔记——误差【华科B站教程版本】

简介: 数值分析学习笔记——误差【华科B站教程版本】

误差

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

误差来源与分类

  • 模型误差:对问题所抽象出来的数学/物理模型是误差的,比如要有一些假设条件才进行理论的推导
  • 观测误差:测量得到的模型的参数的值的误差
  • 方法误差(截断误差):求近似解的方法的误差
  • 舍入误差:计算机字长有限,例如计算机所存储的PI值和实际的PI值之间是有误差的、浮点数误差

在使用数值方法解决问题的时候,要重点考虑方法误差和舍入误差

案例:近似计算

image.png

【值范围估计】

【数值方法计算】

从上面可知,数值计算所得到定积分的值是0.743,且该值与原定积分值(0.747… …)的误差不超过0.006

误差的传播与积累

有一个天气预报程序,有下面两种计算方式

  • 直接演算完两周的变化过程,得到最终的结果
  • 先计算一周的变化过程,然后将数据存储下来,接着计算第二周的变化过程

上面两种方式得到的结果可能天差地别,因为中途将数据输出为文件时需要对数字取有限的位数,这就出现了舍入误差,这个误差随着积累越来越大,最终造成两种方式所求得的结果差异较大

对于一些病态问题,可能一开始只是有一点小误差,但是随着计算过程的积累,最后所得到的结果会有巨大的失真

案例

方法一

【算法稳定性分析】

方法二

总结

误差是不可回避的,在使用一个算法之前,需要先分析算法的稳定性

绝对误差与相对误差

绝对误差

相对误差

使用绝对误差不太容易衡量误差的大小,用相对误差转化为百分比的数更容易看出来

有效数字

有效数字位数:从小数点的最后一位开始数,数到最前面不为零的数字,如0.1的有效数字位数是1,1.1的有效数字位数是2

上面内容的数学描述如下:

案例

12300应该写成,0.12300x10^5,这样有效数字的位数才是不变的

有效数字与相对误差限

有效数字推导相对误差限

相对误差限推导有效数字

案例

函数的误差估计

案例(1)

案例(2)

算法设计的注意事项

在算法设计的时候需要考虑误差的传播和累积,在使用计算机进行实现的时候需要注意如下方面:

避免相近的两个数相减

避免分母太小(会造成浮点溢出)

尽量不要用大数除以小数,不然数字很大,计算机字长有限,舍入误差较大

避免大数吃小数

避免 大数和小数 之间 相加或者相减


求和时 从小到大 相加,可以使得 和的误差 减小

如果想用大数 加 小数,可能会出现大数吃小数的情况

先化简再计算,避免误差累积

一般来说,计算机处理下列运算的速度为 加减>乘除>exp(),可以先尽量将运算化简为 加减、乘除,再进行计算

选用稳定的算法

说明

文章为本人学习网上课程的学习笔记,课程的链接为 《数值分析》2020年春季华中科技大学研究生课程 46讲合辑,文章中大部分图片来源于课程截图,部分图片中加上了本人的理解标注,如有侵权,麻烦联系删除,最后对老师的课程表示衷心的感谢。

目录
相关文章
|
8月前
|
安全 数据挖掘 UED
《统计学简易速速上手小册》第3章:概率分布与抽样技术(2024 最新版)
《统计学简易速速上手小册》第3章:概率分布与抽样技术(2024 最新版)
90 1
|
11天前
|
存储 安全 C语言
【C语言程序设计——选择结构程序设计】预测你的身高(头歌实践教学平台习题)【合集】
分支的语句,这可能不是预期的行为,这种现象被称为“case穿透”,在某些特定情况下可以利用这一特性来简化代码,但在大多数情况下,需要谨慎使用。编写一个程序,该程序需输入个人数据,进而预测其成年后的身高。根据提示,在右侧编辑器补充代码,计算并输出最终预测的身高。分支下的语句,提示用户输入无效。常量的值必须是唯一的,且在同一个。语句的作用至关重要,如果遗漏。开始你的任务吧,祝你成功!,程序将会继续执行下一个。常量都不匹配,就会执行。来确保程序的正确性。
36 10
|
6天前
|
存储 编译器 C语言
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
函数首部:按照 C 语言语法,函数的定义首部表明这是一个自定义函数,函数名为fun,它接收一个整型参数n,用于指定要求阶乘的那个数,并且函数的返回值类型为float(在实际中如果阶乘结果数值较大,用float可能会有精度损失,也可以考虑使用double等更合适的数据类型,这里以float为例)。例如:// 函数体代码将放在这里函数体内部变量定义:在函数体中,首先需要定义一些变量来辅助完成阶乘的计算。比如需要定义一个变量(通常为float或double类型,这里假设用float。
18 3
|
6天前
|
存储 算法 安全
【C语言程序设计——函数】分数数列求和1(头歌实践教学平台习题)【合集】
if 语句是最基础的形式,当条件为真时执行其内部的语句块;switch 语句则适用于针对一个表达式的多个固定值进行判断,根据表达式的值与各个 case 后的常量值匹配情况,执行相应 case 分支下的语句,直到遇到 break 语句跳出 switch 结构,若没有匹配值则执行 default 分支(可选)。例如,在判断一个数是否大于 10 的场景中,条件表达式为 “num> 10”,这里的 “num” 是程序中的变量,通过比较其值与 10 的大小关系来确定条件的真假。常量的值必须是唯一的,且在同一个。
11 2
|
8月前
|
机器学习/深度学习 人工智能 搜索推荐
《统计学简易速速上手小册》第8章:贝叶斯统计(2024 最新版)
《统计学简易速速上手小册》第8章:贝叶斯统计(2024 最新版)
127 0
|
人工智能 算法 架构师
再现神作!字节算法小抄官方整版,已助1000+应届生拿到25w+年薪
2023年经济下行趋势明显,程序员出路在哪儿? 今年,毕业人数将达到1158万,导致很多公司招聘非常谨慎、要求也变得非常更高。
再现神作!字节算法小抄官方整版,已助1000+应届生拿到25w+年薪
|
8月前
|
算法
2022国赛数模A题思路以及解析(附源码 可供学习训练使用)
2022国赛数模A题思路以及解析(附源码 可供学习训练使用)
1264 2
|
算法
数值分析学习笔记——绪论【华科B站教程版本】
数值分析学习笔记——绪论【华科B站教程版本】
195 0
|
算法 Python
python实现多元线性回归,以2022数模国赛为例(实战必看,附源代码)
python实现多元线性回归,以2022数模国赛为例(实战必看,附源代码)
613 0
python实现多元线性回归,以2022数模国赛为例(实战必看,附源代码)
|
运维
对照Google评分卡,看看你的技术水平在什么段位?
对照Google评分卡,看看你的技术水平在什么段位?
573 0