数 值 计 算 方 法
开课单位:数学系
张敏洪(数学系) mh_zhang@gscas.ac.cn
考试方式:闭卷。 作业占20%―30%,卷面70%―80%。
讲义、作业及答案可下载。
主要参考书:
1.丁丽娟等,《数值计算方法》,北京理工大学,1998。
2.李庆扬等,《数值分析》,华中理工大学出版社,武汉,1994。
3. 施妙根等,《科学和工程计算基础》,清华大学出版社出版,北京,1999。
4. 关治,陆金甫,《数值分析基础》,高等教育出版社,北京,1998。
数 值 计 算 方 法
Chap.1 绪论
§1 数值计算方法研究的对象与特点
数值计算方法:研究适合计算机进行科学计算的方法。
使用计算机、离散。
解决科学技术和工程问题的步骤:
实际问题(建立数学模型(研究计算方法(
编程上机计算(求的结果。
例如:⑴ 某一地区的地形图,用空中航测方法,空中连续拍照。
⑵ 为形成三维地形图,建立了一个大型超定线性方程组。
⑶ 采用最小二乘方法求解该方程组的最小二乘解,然后
再整体平滑。
⑷ 编程序,形成一个大型程序,上机进行计算。
数值计算方法课的主要基础与内容:
计算机只能进行加减乘除四则运算和一些简单的函数计算
数值代数:求解线性方程组的解法(分直接方法和间接方法),求矩阵的特征值与特征向量。
2. 数值逼近:插值和数值逼近,数值微分和数值积分。
3. 方程求解:非线性方程、常微分方程、偏微分方程数值解法。
特点:
面向计算机。
有可靠的理论分析(收敛性、稳定性、误差分析)。
要有好的计算复杂性(时间、空间)
要有数值试验。
对算法所要考虑的问题:
计算速度。 例如,求解一个20阶线性方程组,用消元法需3000次乘法运算;而用克莱姆法则要进行次运算,如用每秒1亿次乘法运算的计算机要30万年。
2.存储量。 大型问题有必要考虑。
3.数值稳定性。 在大量计算中,舍入误差是积累还是能控制,这与算法有关。
§2误差的来源与误差分析的重要性
误差的来源与种类
实际问题(建立数学模型(研究计算方法(
编程上机计算(求的结果。
模型误差: 在建立数学模型过程中,不可能将所有因素均考虑,必然要进行必要的简化,这就带来了与实际问题的误差。
测量误差: 测量已知参数时,数据带来的误差。
截断误差: 在设计算法时,必然要近似处理,寻求一些简化。
例: 当很小时,可用作为的近似值,其截断误差小于。
例: 对函数用Taylor展开,用多项式
近似代替,则数值方法的截断误差为
。
舍入误差: 计算机的字长是有限的,每一步运算均需四舍五入,由此产出的误差称舍入误差。
例:π、1/3,……取小数点8位、16位。
数值分析主要讨论截断误差。测量误差看作初始的舍入误差, 数值分析也要从整体来讨论舍入误差的影响,但这儿不讨论模型误差。
误差分析的重要性:举例说明
例:计算并分析误差, (n=0,1,2……)
由积分估值
且由积分性质知
可设计如下两种算法:
算法1:取 , 按公式
(n=0,1,2……) 依次计算的近似值。
设。假设计算过程中不产生新的舍入误差,
则有
(n=0,1,2……)
=> 误差扩散。
算法2:从计算,应有 => 。
数值稳定,在运算过程中,舍入误差不增大。
§3误差的基本概念
3.1(绝对)误差与(绝对)误差限
是精确值,是它的一个近似值,称是近似值的绝对误差。简称误差。
误差是有量纲的,可正可负。
误差是无法计算的,但可以估计出它的一个上界。即,称是近似值的误差限,即 。
3.2相对误差与相对误差限
称为近似值的相对误差,记作。相对误差是个相对数,是无量纲的,也可正可负。
相对误差的估计,称为相对误差限,即。
实际中, 是未知的,可用来代替。当较小时,因两者的差为:
是的高阶无穷小,可忽略不计。
3.3有效数字
定义: 如果近似值的误差限是(某一位数的半个单位),则称准确到小数点后n位,并从第一个非零的数字到这一位的所有数字均为有效数字。
例:π=3.1415926535,
3.1416有五位有效数字,误差限为0.00005。
例: 近似值准确到小数点后五位,有三位有效数字。
有效数字与误差限的关系:
有n位有效数字,标准形式为,则有。 有效位数越多,(绝对)误差限越小。
例: n=9, m=5,
准确到小数点后3位。
有效数字与相对误差限的关系:
定理1:,若有n位有效数字,则其相对误差限为 反之,若的相对误差限则至少具有n位有效数字。
证:因 ,故当有n位有效数字时, 。
反之,由 ,因此,至少具有n位有效数字。 证毕。
定理说明,有效位数越多相对误差限越小。
3.4数值计算中误差估计
数值计算中误差的传播:
对一元函数的计算: 设是的近似值。如果可微,有
介于与之间,取绝对值得
对多元函数:若分别是 的近似值,则
四则运算中误差的传播 四则运算误差限的公式:
;
;
。
这是因为,
故
§4数值计算中应注意的几个原则
关于数值稳定性的算法。
一个程序往往要进行大量的四则运算才能得出结果,每一步的运算均可能会产生舍入误差。在运算过程中,舍入误差能控制在某个范围内的算法称之为数值稳定的算法,否则就称之为不稳定的算法。
例: ,
用分部积分公式得递推式:。
用四位有效数字计算: ,
, ,
,,
,,
,.
可以估计出 故
, 。
这是由于如果有误差,不计中间再产生的舍入误差,该误差随着计算:
到时 ,
误差扩大了4万倍。因而该算法不是稳定的。
如果递推式改为,由,,逐步计算直到。计算结果有四位有效数字,如果有误差,其传播到所引起的误差仅为。故该算法是稳定的。
注意避免两个相近数的相减。
两个相近的数相减,有效数字会大大损失。
因两数之差x-y的相对误差为,当x与y很接近时,两数之差x-y的相对误差会很大,有效数字位将严重丢失。
避免办法:进行变换。
例:,
如用四位有效数字计算: ,结果只有一位有效数字;
如改为: ,有四位有效数字。
新算法避免了两个相近数的相减。
例:用四位浮点数计算。
解:
只有一位有效数字,有效数字大量损失,造成相对误差扩大。
结果仍然有四位有效数字。这说明了算法设计的重要性。
3.避免除数的绝对值远小于被除数的绝对值。
, 当时,舍入误差会扩大。
例:的舍入误差均为,而,则的舍入误差为:
。
很小的数作除数有时还会造成计算机的溢出而停机。
4.防止大数吃掉小数。
计算机在进行运算时,首先要把参加运算的数对阶,即把两数都写成绝对值小于1而阶码相同的数。
如,必须改写成,如果计算机只能表示8位小数,则算出,大数“吃”了小数,这种情况有时允许,有时不允许。
例如: .
,被大数吃掉了。
如按 , 就没有被吃掉。
这也是构造算法时要注意的问题。
例: 一元二次方程x2-(109+1)x+109=0其精确解为
X1=109, X2=1。
如用求根公式:和字长为8位的计算器求解,有
, 及 ;则
, 。
的值与精确解差别很大。若用 。
因此,算法的选用很重要。
5.简化计算步骤,减少运算次数。
例: 计算的值
如果逐个相乘要用254次乘法。
若 只需14次乘法。
例: 计算多项式的值:
如若按有次乘法运算,计算共需次乘法和次加法运算。
如写成,
用递推算法:,最终,共需次乘法和次加法运算。
例:计算的近似值,要求误差小于。
方法1:用级数 的前n项部分和来计算。
, 若,则需。
即要取前十万项求和,计算量大,舍入误差积累,将使有效数字丢失。
方法2:用级数 来计算。
当时,有
取前5项之和作近似值,产生的截断误差为
此算法有效。