一、数值计算方法概览

1、研究对象:数值问题——有限个输入数据(问题的自变量、原始数据)与有限个输出数据(待求解数据)之间函数关系的一个明确无歧义的描述。

例如,求解微分方程的符号解即可看做无限输出,是数学问题;求解微分方程在某些点的近似值即为数值问题。

2、数值问题来源

一般过程为,实际问题建立数学模型,得到数值问题,编程求解,得到近似解

3、数值计算方法设计原则

①可靠性

  • 收敛性,即算法可行性
  • 稳定性,即对初始点的依赖程度
  • 误差估计,即误差可控

②计算复杂性

  • 逻辑复杂度(算法易于理解)
  • 时间复杂度
  • 空间复杂度

二、误差

1、分类

  • 模型误差:从实际问题中抽出模型的误差
  • 观测误差:通过观测得到模型中的值的误差
  • 方法误差:得不到精确解的模型常用数值方法求近似解。通常用泰勒公式的有限项对无穷截断,所以又叫做截断误差
  • 舍入误差:机器字长有限四舍五入带来的误差

2、基本概念

①绝对误差:

,其中
为近似值

绝对误差简称误差,可正可负长为无限位,通常情况下,不能完全表示近似值的好坏

--绝对误差限:是指绝对误差绝对值的上界。因为精确值往往不知道,所以绝对误差也一般求不出来,只好求误差绝对值的上界,

一般的,凡是由准确值经过四舍五入得到的近似值,其绝对误差限等于该近似值末位的半个单位,通常为1/2×10^?的形式,便于看出有效数字位数。例如

,

②相对误差:绝对误差与准确值的比值

,实际计算时通常取
,同样的定义相对误差限,有

③有效数字:近似值与准确值的误差绝对值不超过某一位的半个单位

例如3.141592(6),有效数字为6位,3.14(1)为3位

有效数:若

的每一位都是有效数字,则称其为有效数(经四舍五入得到的数均为有效数)

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

-

的近似值表示为
,若
是有效数字,则相对误差不超过

证明:

-

知道的话,且
,则
一定是有效数字

证明:

--两个的思路就是把

向左右两边放缩一下,

3、数值算法及稳定性

①多项式求值:秦九韶算法介绍

计算下列多项式的值,
已知
,其中

②近似计算

近似计算

首先,将

泰勒展开后积分,取前四项作为近似值

截断误差:

舍入误差:

舍入误差<0.0005+0.0005=0.001

总误差<0.005+0.001=0.006

③算法稳定性比较:

一个算法如果输入数据有扰动(即误差),而计算过程中舍入误差不增长,则称此算法是数值稳定的,否则此算法就称为不稳定的。 算法稳定性与机器无关,只与算法有关。

计算

算法一:由

首先计算

,由前往后计算,则误差以n倍速不断扩大

初始的扰动迅速积累,误差迅速增加,这是不稳定的算法

算法二:由

首先估计一个

的值,由于
,我们得到

可取足够大的N估算,

,从后往前计算,
,误差以
倍的速度不断缩小,当N取无穷大时,

误差逐步递减, 这样的算法称为稳定的算法

④病态问题

数学问题本身如果输入数据有微小扰动,就会引起输出数据(即问题真解)的很大扰动,这就是病态问题。病态问题是数学问题本身性质所决定的,与算法无关,也就是说对病态问题,用任何算法(或方法)直接计算都将产生不稳定性。

举例:蝴蝶效应。其大意为,一只南美洲亚马孙河流域热带雨林中的蝴蝶,偶尔扇动几下翅膀,可能在两周后引起美国德克萨斯引 起一场龙卷风。

4、误差分析的方法和原则

①误差分析的方法

i)向前误差分析法(重点)——一步四则运算(还没明白这个名字是怎么起的)

(还没理解这里是怎么推出来的)

推导:

plus,

作用误差被放大或缩小了
倍,称
为放大/缩小因子,或绝对条件数
的条件数在某一点是小大,则称
在该点是好条件的或坏条件

其他多元情况可用多元泰勒展开同理推导

ii)向后误差分析法:把舍入误差的累积与导出的

已知量
的某种摄动(微小

误差)等价起来,即令

利用摄动理论,由

的界估计出最后的舍入误差界。

iii)区间分析法:把参加运算的数都看成区间量,根据区间运算规则求得最后结果的近似值和误差限。

iv)概率分析法:利用概率统计方法,将数据和运算中的舍入误差视为适合某种分布的随机变量,然后确定计算结果的误差分布。

②几点计算的注意事项

i)尽量避免相近的数直接相减(有效数字会减少)有理化

例:a1 = 0.12345,a2 = 0.12346,各有5位有效数字。 而 a2-a1 = 0.00001,只剩下最多1位有效数字。

经验性做法:

分子有理化,将根式相减转化为相加;

ln类型相减尽量放进去用除法;

利用一些三角恒等式:如

利用泰勒展开式:如

例题:

解:令

原式=

ii)尽量避免绝对值小的数做分母

iii)尽量避免大数吃小数

例:用单精度计算

的根

求根公式求解,

因为在计算机内,

存为
,
存为

做加法时,两加数的指数先向大指数对齐,再将浮点部分相加。即

的指数部分须变为
,则
, 取单精度时就成为:

经验性做法是用韦达定理求解小根

再有就是求和时从小到大相加误差会变小,小数积累变大会使误差减小

iv)先化简,减少计算步骤,从而避免误差积累

一般来说,计算机运算速度( +-)>(×÷)>exp

v)选用数值稳定的算法

算法设计还要要避免死循环、尽量节省存储空间、尽量减少中间结果的显示和输出、避免实数相等比较,可使用双精度.........

三、计算机的数系结构

计算机的数系是一个不完整的数系。计算机只能表示有限个数,即计算机的精度是有限的

计算机内部运算是按固定的有限位数进行的,也就是按固定位数的有限位浮点数进行运算的

浮点数系统由四个整数表征:基

,精度位数
,下溢界
和上溢界

计算机所表示的数的集合(规格化浮点数系):

其中尾数部分,以t为字长;指数部分,以j为阶

,则
,
,、

一般的机器数有单精度和双精度之分,通常单精度为32位,双精度为64位,它们是正负号,阶码和尾数所占二进制的总长度。

32位:1位阶码正负号+7位阶码+1位尾数正负号+23位尾数

64位:1位阶码正负号+10位阶码+1位尾数正负号+52位尾数

,约相当于十进制7位有效数字,绝对值范围
,约相当于十进制15位有效数字,绝对值范围

计算机数系主要特点总结如下:

  1. 不完整,只能表示有限个数。
  2. 不是均匀分布,绝对值越大越疏,越小越密
  3. 由4个整数唯一决定,0是够小的数
  4. 应用标准浮点数系统
  5. 一般单精度相对误差为十进制
    ,双精度相对误差为十进制

绪论粗略完结,边学边补充。欢迎批评指正。

sqlite数值长度超过7位出错_数值计算方法 第一章 绪论相关推荐

  1. 编译原理语义分析_编译原理 第一章 绪论

    编译原理系列,是在学习本校 "编译技术" 这门课程时,所作记录,参考教材为 <编译技术基础教程>清华大学出版社和<程序设计语言编译原理>国防工业出版社(陈火 ...

  2. c++语言编程,一个电灯两个开关控制,[理学]四川大学计算机学院精品课程_面向对象程序设计C++课件_游洪越_第一章绪论.ppt...

    [理学]四川大学计算机学院精品课程_面向对象程序设计C课件_游洪越_第一章绪论 主讲教师: 游洪跃 个人主页: /~youhongyue 邮件地址: youhongyao@ 教材:<C++面向对 ...

  3. python矩阵乘法_鱼书——第一章 Python入门

    one 第一章 1.1 Python是什么 Python是一个简单.易读.易记的编程语言,而且是开源的,可以免费地自由使用.Python可以用类似英语的语法编写程序,编译起来也不费力,因此我们可以很轻 ...

  4. 第一章踏上python之旅_无言军神第一章踏上旅途,无言军神第1章踏上旅途_武侠仙侠_读趣阁...

    读趣阁 > 无言军神 > 第一章踏上旅途 第一章[一千年前,东雪帝国西部边疆]"希望有人发现我的笔记吧"说完,便放下笔记,飞身离去.[一千年后,现代,中国广东省]一中年 ...

  5. vfp赋值超过7位出错_JDK1.7下的HashMap的源码分析

    源码分析jdk1.7下的HashMap 我们都知道1.7版本的hashmap的底层是数组加链表构成的,那么今天我们就来自己分析一波源码~ 篇幅有点长,废话不多说,直接开始分析~ 「属性声明」 //初始 ...

  6. 数值计算方法 第一章 数值计算中的误差 笔记

    数值计算中的误差 (1)误差的基本概念 误差的基本概念 实际问题的精确解与数值计算所得的近似解之间的差别称为误差 误差来源 (1)模型误差 实际问题与数学模型之差 (2)观测误差 观测所的 (3)截断 ...

  7. python第一章思维导图_阅读课本第一章内容后,使用思维导图画出你所理解的

    [多选题]某甲今年14岁,他签订的下列合同有效的是( ). [多选题]下列违约责任承担方式可以并用的是( ). [单选题]用人单位自用工之日起满( )不与劳动者订立书面劳动合同的,视为用人单位与劳动者 ...

  8. 计算差分方程的收敛点_时间序列分析第一章 差分方程

    时间序列分析关注事件或者说变量在时间上的动态变化情况.如果将时间人为分期,并记变量y在第t期的值为yt,那么将变量在第t期的值yt与另外的变量wt及第t期以前的值(如yt-1)联系起来的方程即为差分方 ...

  9. 数据库_数据库篇-第一章:数据库基本概念

    基础知识学习,面试必备,关注吧 骚年 01 第一,什么是数据库? 维基百科上是这样定义的: 所谓"数据库"是以一定方式储存在一起.能予多个用户共享.具有尽可能小的冗余度.与应用程序 ...

最新文章

  1. python的下载和安装步骤-下载及安装Python详细步骤
  2. Spring Boot2 整合 MyBatis 多数据源
  3. Bootstrap HTML编码语法规范
  4. android studio如何设置输出值的小数点_C语言基础知识:printf的输出格式,C/C++语言编程讲解...
  5. ESP8266 wifi 模块配置,Wechat+APP控制实现
  6. 《CCIE路由和交换认证考试指南(第5版) (第1卷)》——导读
  7. 海康威视相机SDK开发(1个相机)
  8. Java 为图形填充渐变色
  9. 威纶触摸屏与台达DVP系列PLC通信的参数设置和连接电缆
  10. 计算机安装软件没有管理员权限设置,实用技巧:如何在win10中安装没有管理员权限的软件...
  11. 一阶滤波算法公式推导
  12. teraterm 执行sql_「teraterm」tera term的TTL脚本命令之strdim - 金橙教程网
  13. Easyx——基于easyx的c语言简单动画入门
  14. go的目录结构pkg
  15. 英语单词默写本的制作
  16. 各坐标系转换,百度、高德、wgs84、cgcs2000坐标系互转
  17. 爱国者P8880,完美展示!
  18. Thumbnailator的简介和使用范例(图片压缩)
  19. 1.电磁波传播原理,慢衰落、快衰落、阴影效应、多径传播、多普勒效应、塔下黑。
  20. Android开发者指南-搜索配置文件-Searchable Configuration[原创译文]

热门文章

  1. oracle省市表,省市之一 创建全国省市Sql表
  2. 指尖大冒险、跳一跳升级版html5游戏全代码
  3. LeetCode 报错解决 heap-buffer-overflow Heap-use-after-free Stack-buffer-overflow Global-buffer-overflow
  4. Linux下 curl 代理设置注意事项--curl proxy
  5. Java 使用线程池ThreadPool:newFixedThreadPool
  6. mysql查看某个数据库下的所有视图
  7. win7访问不了服务器共享文件夹权限设置,win7系统开启共享文件夹访问权限的操作方法...
  8. 深度学习如何提高训练集准确率_吴恩达深度学习笔记(61)-训练调参中的准确率和召回率...
  9. [Spring 深度解析]第4章 Spring之AOP
  10. Logstash(二)input、codec插件详解