此章对应习题,使用python实现github link
现代数值分析对象、特点
“现代数值分析”是研究用计算机求解的各种数学问题的数值计算方法及理论。但范围太广,本书只涉及微积分,高等代数,常微分方程等。
人类计算能力是计算工具的性能和计算方法效率总和。1955年到1975年20年间,计算机速度提高数千倍,对偏微分方程的数值解在一定条件下的方法效率提高100万倍。
数值问题是指对输入数据与输出数据之间函数关系的一个确定而无歧义的描述。
数学问题不一定是数值问题,但往往可用“数值问题”逼近。
误差分析与数值稳定性
误差与分类
从实际问题抽象到数学模型过程中,有一次近似,舍掉的那部分叫做模型误差,建模过程中物理量的观测是有误差的,叫做观测误差。
但二者都不是“数值分析”的研究内容,数值分析研究的是从“数学问题”到“数值问题”过程中产生的截断误差或方法误差,计算是有限位运算,产生的误差称为舍入误差,也是必须研究的。
误差分析方法
针对舍入误差分析,一般使用Taylor展开,但太保守,目前有三种方法,但是都不是很理想。
- 向前向后误差分析
- 向前是每一步找出误差,然后向前推
- 向后是通过摄动法
- 区间分析
- 引出了区间数学
- 结果也是个区间
- 计算先后顺序和算法设计十分重要
- 概率分析方法
- 最后得到的是一个误差分布
病态问题与条件数
病态问题是指输出数据对输入数据的扰动很敏感,与算法选择无关。为了判断问题是否病态,通常可用条件数大小来衡量,一般定义如下:
对给定输入数据的问题,其条件数是假设在输入数据中有一个大小为的相对扰动时,以为单位测量问题输入数据可能有的最大相对改变量。
例如问题是计算函数在处的值,根据定义得
其中或,于是
根据定义,条件数时就认为问题是病态的。
导数和这个的关系?
我的一些想法
导数的绝对值相当于定义了输入的绝对扰动对应输出的可能有的最大相对改变量。
导数的符号给定了改变量的方向。
定义条件数是由于计算机的计算过程不是精确的,有舍入误差,条件数用来衡量有舍入误差时,微小扰动会带来多大的改变。
对于计算机的舍入误差不该一样吗?为什么要用相对的呢?
对病态问题,其计算结果一般是不可靠的,通常应改变问题提法以改善条件数,或采用特殊处理方法,或用高精度运算以减少舍入误差。
算法的数值稳定性
定义 一个算法,吐过输入数据有扰动,而计算过程舍入误差不增长,则称此算法时数值稳定的,否则称此算法不稳定或此算法病态。
几个keypoint:
- 要避免相近数相减,或除数近似为零。
- 条件稳定可以重新设计算法或者利用计算机的多精度运算
- 舍入误差恶性增长的不稳定算法绝对不能使用
关键词回顾与总结
本节介绍了模型误差,观测误差,截断误差,方法误差,舍入误差,病态问题,条件数,数值稳定性
网友评论