附录B数值计算中的误差 数值方法的特点之一就是所求得的解是近似解,总是存在一定的误差.因此,误差分析是数值 分析中一个很重要的课题. 误差是人们用来描述数值计算中近似解的精确程度,是科学计算中的一个十分重要的概念 误差大致可分为以下儿种类型: ·模型误差:数学棋型是对实际问题的数学描述,它往往是抓住问题的主要因素而略去次要因 素,因此,它是实际问题的一个近似 ·观测误差:在数学模型中通常包含一些参量(数据),这些参量的值一般都是通过测量或实验 的方法所得到的,因此也存在误差。 ·截海误差:也称方法误差,在对数学模型进行数值求解时,需要做一些近似,如对导数离散时 可用差商代替 ·舍人误差:由于机器字长有限,由于机器字长有限,计算机对浮点数的表示和算术运算都存在 一定的误差 在数值分析中,我们总是假定数学模型和所给的数据都是准确的,因而不考虑模型误差和观 测误差,主要研究截断误差和舍入误差对计算结果的影响 例1近似计算厂。山的值 解.这里我们采用Taylor展开,即 -(-++) =1-+员××+量× 1 S+R4 其中S:为前四项的部分和,R:为剩余部分.如果我们以S:作为定积分的近似值,则R就是由 此产生的误差,这种误差就称为截断误差。 在计算S4的值,假定我们保留小数点后4位有效数字,则 111 54=1-3+0-2≈1-0.33+0.1000-0.0238=0.7429 这就是我们最后得到的近似值.这里,在计算S4时所产生的误差就是舍入误差, 0 B.1误差与有效数字 309
仅供课堂教学使用,请勿外传 附录 B 数值计算中的误差 数值方法的特点之一就是所求得的解是近似解, 总是存在一定的误差. 因此, 误差分析是数值 分析中一个很重要的课题. 误差是人们用来描述数值计算中近似解的精确程度, 是科学计算中的一个十分重要的概念. 误差大致可分为以下几种类型: • 模型误差: 数学模型是对实际问题的数学描述, 它往往是抓住问题的主要因素而略去次要因 素, 因此, 它是实际问题的一个近似. • 观测误差: 在数学模型中通常包含一些参量 (数据), 这些参量的值一般都是通过测量或实验 的方法所得到的, 因此也存在误差. • 截断误差: 也称方法误差, 在对数学模型进行数值求解时, 需要做一些近似, 如对导数离散时 可用差商代替. • 舍入误差: 由于机器字长有限, 由于机器字长有限, 计算机对浮点数的表示和算术运算都存在 一定的误差. 在数值分析中, 我们总是假定数学模型和所给的数据都是准确的, 因而不考虑模型误差和观 测误差, 主要研究截断误差和舍入误差对计算结果的影响. 例 B.1 近似计算 ˆ 1 0 e −x 2 dx 的值. 解. 这里我们采用 Taylor 展开, 即 ˆ 1 0 e −x 2 dx = ˆ 1 0 x − x 2 + x 4 2! − x 6 3! + x 8 4! − · · · = 1 − 1 3 + 1 2! × 1 5 − 1 3! × 1 7 + 1 4! × 1 9 − · · · ≜ S4 + R4 其中 S4 为前四项的部分和, R4 为剩余部分. 如果我们以 S4 作为定积分的近似值, 则 R4 就是由 此产生的误差, 这种误差就称为截断误差. 在计算 S4 的值, 假定我们保留小数点后 4 位有效数字, 则 S4 = 1 − 1 3 + 1 10 − 1 42 ≈ 1 − 0.3333 + 0.1000 − 0.0238 = 0.7429 这就是我们最后得到的近似值. 这里, 在计算 S4 时所产生的误差就是舍入误差. □ B.1 误差与有效数字 309
·310. 附录B数值计算中的误差 定义B.1设x是精确值,工是其近似值,则绝对误差和相对误差e,分别定义为 e=z-x' 和 若存在e>0满足l=一x1≤,则称e为绝对误差限,简称误差限.类似地,若存在,>( 满足e,|≤er,则称Er为相对误差限. 几点说明: ·绝对误差可能为正,也可能为负: ·绝对误差越小越具有参考价,但绝对误差却不能很好地表示近似值的精确程度: ·近似值的精确程度取决于相对误差的大小: ·实际计算中我们所能估计的通常是误差限或相对误差限; ·由于真值难以求出,通常也使用下面的定义作为相对误差限 e=-x ·工程中通常用下面的表达式来刻画近似值的精度: x=x±, 表示精确值在区间[z一,x+中. 定义B.2若近似值x的误差限是某一位的半个单位,且该位到x的第一位非零数字共有n位 则称x有n位有效数字 关于有效数字的判断,我们可以使用下面的方法 定理B.1设x是x*的近似值,若工可表示为 x=±0.a1a2..an.×10m 其中是0到9中的数字,且1≠0.若 e-x1≤0.5×10m-n 则x至少有n位有效数字 换而言之,若口-x≤0.5×10,则x至少有m-k位有效数字 例B.2设1=3.1415和x2=3.1416是π=3.14159265.的近似值,则x1有4位有效数字,而 2有5位有效数字 例B.3根据四舍五入原则,写出下列各数的具有5位有效数字的近似值 187.9325,0.03785551,8.000033. 解.这三个数的具有5位有效数字的近似值分别为:187.93,0.037856,8.0000. 有两点需要注意的是 http://math.ecnu.edu.cn/-jypan
仅供课堂教学使用,请勿外传 · 310 · 附录 B 数值计算中的误差 定义 B.1 设 x ∗ 是精确值, x 是其近似值, 则绝对误差 e 和相对误差 er 分别定义为 e = x − x ∗ 和 er = x − x ∗ x ∗ . 若存在 ε > 0 满足 |e| = |x − x ∗ | ≤ ε, 则称 ε 为绝对误差限, 简称误差限. 类似地, 若存在 εr > 0 满足 |er| ≤ εr, 则称 εr 为相对误差限. 几点说明: • 绝对误差可能为正, 也可能为负; • 绝对误差越小越具有参考价, 但绝对误差却不能很好地表示近似值的精确程度; • 近似值的精确程度取决于相对误差的大小; • 实际计算中我们所能估计的通常是误差限或相对误差限; • 由于真值难以求出, 通常也使用下面的定义作为相对误差限 er = x − x ∗ x . • 工程中通常用下面的表达式来刻画近似值的精度: x ∗ = x ± ε, 表示精确值在区间 [x − ε, x + ε] 中. 定义 B.2 若近似值 x 的误差限是某一位的半个单位, 且该位到 x 的第一位非零数字共有 n 位, 则称 x 有 n 位 有效数字. 关于有效数字的判断, 我们可以使用下面的方法. 定理 B.1 设 x 是 x ∗ 的近似值, 若 x 可表示为 x = ±0.a1a2 . . . an . . . × 10m, 其中 ai 是 0 到 9 中的数字, 且 a1 ̸= 0. 若 |x − x ∗ | ≤ 0.5 × 10m−n , 则 x 至少有 n 位有效数字. 换而言之, 若 |x − x ∗ | ≤ 0.5 × 10k , 则 x 至少有 m − k 位有效数字. 例 B.2 设 x1 = 3.1415 和 x2 = 3.1416 是 π = 3.14159265... 的近似值, 则 x1 有 4 位有效数字, 而 x2 有 5 位有效数字. 例 B.3 根据四舍五入原则, 写出下列各数的具有 5 位有效数字的近似值: 187.9325, 0.03785551, 8.000033. 解. 这三个数的具有 5 位有效数字的近似值分别为: 187.93, 0.037856, 8.0000. □ 有两点需要注意的是: http://math.ecnu.edu.cn/~jypan
B.1误差与有效数字 311 ·按四舍五入原则得到的数字是有效数字 ·一个数末尾的0不可以随意添加或省略. 定理B.2(有效数字与相对误限)设工是工·的近似值,若工可表示为 x=t0.a1a2..an.×10m, 其中1是0到9中的数字,且a1≠0.若x具有n位有效数字,则其相对误差限满足 ≤2×101 反之,若工的相对误差限满足 r≤2a+Dx10a 1 则x至少有n位有效数字. 证明.由x的表达式可知 a1×10m-1≤≤(a1+1)×10m- 若x具有n位有效数字,则 6,=E-≤05x10m- x 反之,若6,≤a×10+1,则 z-x1=·er≤0.5×10m- 故x至少有n位有效数字, 从这个定理可以看出,有效数字与相对误差是紧密相关的:有效数字越多,相对误差就越小 反之,相对误差越小,有效数字就越多. B.1.1基本算术运算的误差估 误差估计主要是指如何估计误差限或相对误差限.我们用()表示x的误差限,则有 c(r1±x2)≤c(x1)+c(a2), E(r122)2l()+(2) s lem 22 B.1.2函数求值的误差估计 般地,设f(x)是可微函数,x为x的近似值,则由Tyor公式可知,存在使得 f四-fe)=fee-)+fe- 所以有 sfe》≤r()+"g2a. 2 http://math.ecnu.edu.cn/-jypan
仅供课堂教学使用,请勿外传 B.1 误差与有效数字 · 311 · • 按四舍五入原则得到的数字是有效数字; • 一个数末尾的 0 不可以随意添加或省略. 定理 B.2 (有效数字与相对误差限) 设 x 是 x ∗ 的近似值, 若 x 可表示为 x = ±0.a1a2 . . . an . . . × 10m, 其中 ai 是 0 到 9 中的数字, 且 a1 ̸= 0. 若 x 具有 n 位有效数字, 则其相对误差限满足 εr ≤ 1 2a1 × 10−n+1 . 反之, 若 x 的相对误差限满足 εr ≤ 1 2(a1 + 1) × 10−n+1 . 则 x 至少有 n 位有效数字. 证明. 由 x 的表达式可知 a1 × 10m−1 ≤ |x| ≤ (a1 + 1) × 10m−1 . 若 x 具有 n 位有效数字, 则 εr = |x − x ∗ | |x| ≤ 0.5 × 10m−n a1 × 10m−1 = 1 2a1 × 10−n+1 . 反之, 若 εr ≤ 1 2(a1+1) × 10−n+1 , 则 |x − x ∗ | = |x| · εr ≤ 0.5 × 10m−n . 故 x 至少有 n 位有效数字. □ 从这个定理可以看出, 有效数字与相对误差是紧密相关的: 有效数字越多, 相对误差就越小; 反之, 相对误差越小, 有效数字就越多. B.1.1 基本算术运算的误差估计 误差估计主要是指如何估计误差限或相对误差限. 我们用 ε(x) 表示 x 的误差限, 则有 ε(x1 ± x2) ≤ ε(x1) + ε(x2), ε(x1x2) ≤ |x2|ε(x1) + |x1|ε(x2), ε x1 x2 ≤ |x1|ε(x1) + |x1|ε(x2) |x2| 2 . B.1.2 函数求值的误差估计 一般地, 设 f(x) 是可微函数, x 为 x ∗ 的近似值, 则由 Taylor 公式可知, 存在 ξ 使得 f(x) − f(x ∗ ) = f ′ (x ∗ )(x − x ∗ ) + 1 2 f ′′(ξ)(x − x ∗ ) 2 . 所以有 ε(f(x)) ≤ |f ′ (x ∗ )|ε(x) + |f ′′(ξ)| 2 ε 2 (x). http://math.ecnu.edu.cn/~jypan
·312. 附录B数值计算中的误差 当f"(引与矿(红的比值不是很大时,我们可以舍去二次项,从而得到 c(fe)≤f(x')le(e). 由于x通常是不知道的,所以我们也用f(x)来近似f(红),即 e(f(z))f(r)le(z). 关于相对误差限,我们有如下的估计: 其中C,=巴称为f回的条件数 J() 对于多元可微函数f(1,正2,,n),设工=(m1,2,,正n)是x=(r1,吃,,x)的近似 值,则有 ea-2器a B2误差分析 ·数值计算中的误差分析很重要,但也很复杂 ·在计算过程中,误差会传播、积累、对消; ·实际计算中的运算次数通常都在干万次以上,因此对每一步运算都做误差分析比较不切实 际 误差分析一般可分为定量分析和定性分析. B2.1定量分析 ·主要方法有:向前误差分析法,向后误差分析法,区间误差分析法,概率分析法等 ·向前误差分析:用输入数据的误差和数值方法本身的误差来分析计算结果的误差 ·向后误差分析:用某个算法计算f(x),得到的近似解为广,假定于是f(x)对应于某个数据玉 的精确解,即了=∫(,分析元一x的大小就是向后误差分析. 向后误差分析法(backward o anaysis由著名数值分析专家.H.Wilkinson于1960年提出。 这是误差理论中最基本的误差分析方法之一, 向后误差分析是一种先验误差估计方法,不仅可以用来讨论算法的稳定性,还可以用于讨论 算法的收敛性. 后验误差估计则是利用得到的数值结果来估计近似解的误差,如在解方程组时,可以利用残 量来估计解的误差。 B.2.2定性分析 ·目前在数值计算中更关注的是误差的定性分析 ·定性分析包括研究数学问题的适定性,数学问题与原问题的相容性,数值算法的稳定性,避免 扩大误差的准则等 http://math.ecnu.edu.cn/-jypan
仅供课堂教学使用,请勿外传 · 312 · 附录 B 数值计算中的误差 当 |f ′′(ξ)| 与 |f ′ (x ∗ )| 的比值不是很大时, 我们可以舍去二次项, 从而得到 ε(f(x)) ⪅ |f ′ (x ∗ )|ε(x). 由于 x ∗ 通常是不知道的, 所以我们也用 f ′ (x) 来近似 f ′ (x ∗ ), 即 ε(f(x)) ⪅ |f ′ (x)|ε(x). 关于相对误差限, 我们有如下的估计: εr(f(x)) = f(x) − f(x ∗ ) f(x ∗) ≈ f ′ (x ∗ )(x − x ∗ ) f(x ∗) = x ∗f ′ (x ∗ ) f(x ∗) · x − x ∗ x ∗ = Cpεr(x), 其中 Cp = x ∗f ′ (x ∗ ) f(x ∗) 称为 f(x) 的 条件数. 对于多元可微函数 f(x1, x2, . . . , xn), 设 x = (x1, x2, . . . , xn) 是 x = (x ∗ 1 , x∗ 2 , . . . , x∗ n ) 的近似 值, 则有 ε(f(x)) ≈ Xn k=1 ∂f(x) ∂x∗ k ε(xk). B.2 误差分析 • 数值计算中的误差分析很重要, 但也很复杂; • 在计算过程中, 误差会传播、积累、对消; • 实际计算中的运算次数通常都在千万次以上, 因此对每一步运算都做误差分析比较不切实 际. 误差分析一般可分为定量分析和定性分析. B.2.1 定量分析 • 主要方法有: 向前误差分析法, 向后误差分析法, 区间误差分析法, 概率分析法等. • 向前误差分析: 用输入数据的误差和数值方法本身的误差来分析计算结果的误差. • 向后误差分析: 用某个算法计算 f(x), 得到的近似解为 ˜f, 假定 ˜f 是 f(x) 对应于某个数据 x˜ 的精确解, 即 ˜f = f(˜x), 分析 x˜ − x 的大小就是向后误差分析. 向后误差分析法 (backward error analysis) 由著名数值分析专家 J. H. Wilkinson 于 1960 年提出, 这是误差理论中最基本的误差分析方法之一. 向后误差分析是一种先验误差估计方法, 不仅可以用来讨论算法的稳定性, 还可以用于讨论 算法的收敛性. 后验误差估计则是利用得到的数值结果来估计近似解的误差, 如在解方程组时, 可以利用残 量来估计解的误差. B.2.2 定性分析 • 目前在数值计算中更关注的是误差的定性分析; • 定性分析包括研究数学问题的适定性, 数学问题与原问题的相容性, 数值算法的稳定性, 避免 扩大误差的准则等; http://math.ecnu.edu.cn/~jypan
B.3数值稳定性 313 ·定性分析的核心是原始数据的误差和计算过程中产生的误差对最终计算结果的影响 凸算法有“优劣”之分,问题有“好坏”之别,即使不能定量地估计出最终误差,但是若能确保 计算过程中误差不会被任意放大,那就能放心地实施计算,这就是研究定性分析的初衷。 B.3数值稳定性 数值计算中的稳定性包括数学问题的稳定性和数值算法的稳定性 B.3.1数学问题的稳定性 如果数学问题满足 ()对任意满足一定条件的输入数据,存在一个解, (②)对任意满足一定条件的输入数据,解是唯一的, ()问题的解关于输入数据是连续的, 则称该数学问题是适定的(we-posed,)否则就称为不适定的(l-posed). 如果输入数据的微小扰动会引起输出数据(即计算结果)的很大变化(误差),则称该数值问 题是病态的, 例B.4解线性方程组 z+ay=1 lax+y=0 解.易知当α=1时,方程组无解.当a≠1时,解为 当a≈1时,解的误差可能会很大.比如当a=0.999时,x≈500.25.假定输入数据a带有0.0001 的误差,即输入数据为a°=0.9991,则此时有x*≈555.81,解的误差约为55.56,是输入数据误差 的五十多万倍,因此该问题的病态的。 ◇ B.3.2病态问题与条件数 设f(x)可导,则其条件数定义为 c=将 ·一般情况下,条件数大于10时,就认为问题是病态的: 。条件数我大问颗病态就拔亚重: ·病态是问题本身固有的性质,与数值算法无关: ·对于病态问题,选择数值算法时需要谨慎。 http://math.ecnu.edu.cn/-jypan
仅供课堂教学使用,请勿外传 B.3 数值稳定性 · 313 · • 定性分析的核心是原始数据的误差和计算过程中产生的误差对最终计算结果的影响. b 算法有 “优劣” 之分, 问题有 “好坏” 之别, 即使不能定量地估计出最终误差, 但是若能确保 计算过程中误差不会被任意放大, 那就能放心地实施计算, 这就是研究定性分析的初衷. B.3 数值稳定性 数值计算中的稳定性包括数学问题的稳定性和数值算法的稳定性. B.3.1 数学问题的稳定性 如果数学问题满足 (1) 对任意满足一定条件的输入数据, 存在一个解, (2) 对任意满足一定条件的输入数据, 解是唯一的, (3) 问题的解关于输入数据是连续的, 则称该数学问题是适定的 (wellposed), 否则就称为不适定的 (illposed). b 如果输入数据的微小扰动会引起输出数据 (即计算结果) 的很大变化 (误差), 则称该数值问 题是病态的. 例 B.4 解线性方程组 x + αy = 1 αx + y = 0 解. 易知当 α = 1 时, 方程组无解. 当 α ̸= 1 时, 解为 x = 1 1 − α2 , y = −α 1 − α2 . 当 α ≈ 1 时, 解的误差可能会很大. 比如当 α = 0.999 时, x ≈ 500.25. 假定输入数据 α 带有 0.0001 的误差, 即输入数据为 α ∗ = 0.9991, 则此时有 x ∗ ≈ 555.81, 解的误差约为 55.56, 是输入数据误差 的五十多万倍, 因此该问题的病态的. □ B.3.2 病态问题与条件数 设 f(x) 可导, 则其条件数定义为 Cp = xf′ (x) f(x) . • 一般情况下, 条件数大于 10 时, 就认为问题是病态的; • 条件数越大问题病态就越严重; • 病态是问题本身固有的性质, 与数值算法无关; • 对于病态问题, 选择数值算法时需要谨慎. http://math.ecnu.edu.cn/~jypan