数 值 计 算 方 法 开课单位:数学系 张敏洪(数学系) 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项之和作近似值,产生的截断误差为    此算法有效。