6第I部分数值分析 x=x土E, 误差限的大小不能很好表示近似值的精确程度,例如测量真空中光速℃的某一 实验近似值c=299791.5km/s,误差限约为0.9km/s,约为光速本身的0.0003%,显 然,这个测量是非常准确的.如果测量运动员奔跑的速度,误差限为0.01k/s,即 10m/s,这与运动员真正奔跑的速度差不多,显然这种测量标准是错误的,为了较好 地反映近似值的精确程度,必须考虑误差与真正值的比值,即相对误差。 若x是真正值,x是近似值,则称 6(x)=△(x)/x=(x-x)/x 为近似值x的相对误差,如果已知数e,使 |8(x)川=|x-x|/八x|<e, 则称e,为x的相对误差限.实用中,由于真正值x往往难以求出,当,很小时,也取 6(x)=△(x)/x 三、准确位数与有效数字 大家知道,当x有很多位数字时,常常按照“四舍五人”原则取前几位数字作为x 的近似值x.例如,x=√2=1.41421356237…,取前五位数字得 x=1.4142 其误差为0.0001356,误差限为00005=合×101,此时,称工准确到小数点后 第四位,并称由此算起的前五位数字14142为元的有效数字, 一般来说,如果立的误差限界为乞×10“,即 1x-≤2×10-” 则称x准确到小数点后第位,并称x的第一个非零数字到这一位的全部数字为x 的有效数字,此时,若元的形式为 士x1x2…xm·a102…0m",x1年0, 则x具有n十m位有效数字,若x的形式为 士0.00…0am+1am+2…0,…,0m+1主0
分 数值 X=X 误差限的大小不能很好表示近似值的精确程度,例如测量真空中光速 C的某一 实验近似值二 9 7 1. 5km/s 限约 为0.9km/s 光速 的O. 0003 %,显 然,这个测量是非常准确的.如果测量运动员奔跑的速度,误差限为 s,即 10m/s 奔跑 度 差 显 然 这 量标 是错 较好 地反映近似值的精确程度,必须考虑误差与真正值的比值,即相对误差. Z是真正值,王是近似值,则称 S(X) =6.(x ) / x = (x 王)/X 为近似值玉的相对误差,如果已知数飞,使 IS(x) I= I 则称 ε,为王的相对误差限.实用中,由于真正值 Z往往难以求出,当飞很小时,也取 S(x)= 6.(x)/ 三、准确位数与有效鼓字 大家知道,当 z有很多位数字时,常常按照"四舍五入"原则取前几位数字作为 的近似值五例如 J2= 1. 41421356237 五位 x= 1. 4142 其误差为 3 5 6…,误差限为 0 0 0 第四位,并称由此算起的前五位数字 14 效数 一般来说,如果王的误差限界为 10-·, ~P Ix-x 则称王准确到小数点后第n位,并称王的第一个非零数字到这一位的全部数字为 的有效数字,此时,若王的形式为 则玉具有 m位有效数字,若王的形式为 00···0
第一章绪论 则x具有n-m位有效数字.由此可见,此时若x的形式为 土10mX0.a2…am,a1牛0, (1-1) 则x具有n十m位有效数字,且x的相对误差满足 交大10 11≤o008≤站×10-- 反过来,若x中的相对误差限为 2(a,+1)X10-m+0 (1-2) 且具有式(1-1)的形式,则 1A01≤100a×10-+-"≤号×10 2(a1+1) 即元至少准确到小数后n位,至少具有n十m位有效数字.由此可知,若元的相对误 差限为2×10m+0,即比式(1-2)还小,则王至少具有n十m位有效数字。 §1.3数值计算中必须注意的几个原则 在数值计算中,每步都可能产生误差,而一个问题的解决,往往要经过成千上万 次运算,我们不可能(也不必要)每步都加以分析.下面,通过对误差的某些传播规律 的简单分析,指出在数值计算中应该注意的几个问题 一、相近两数应避免相减 在数值计算中,两个相近的数作减法时有效数字会损失.例如,求: y=√x+I-√E (1-3) 之值,当x=1000时,取4位有效数字计算得 √x+I=31.64,√x=31.62 两者相减得
第一章绪论 则主具有 m位有效数字.由此可见,此时若王的形式为 rn X o.αlα2 ,αl 则王具有 m位有效数字,且 z的相对误差满足 10- IO'( x ) I'" Xl 。 一 J) lorn X O.αIαz …α ~Zαl 反过来,若王中的相对误差限为 I) 2(α1 +1) 且具有式(1-1)的形式,则 10m XO. !6.( x ) Iζ"X10 I) 一X 10- n 2(α1 (1-1) (1 - 2) 即王至少准确到小数后 η位,至少具有 m位有效数字.由此可知,若王的相对误 差限为÷× 1俨+时,即比式川 §1. 必须 几个原则 在数值计算中,每步都可能产生误差,而一个问题的解决,往往要经过成千上万 次运算,我们不可能(也不必要)每步都加以分析.下面,通过对误差的某些传播规律 的简单分析,指出在数值计算中应该注意的几个问题. 一、相近两鼓应避免相减 在数值计算中,两个相近的数作减法时有效数字会损失.例如,求: y=vx 之值,当 0 0 0时,取 4位有效数字计算得 vx 1. 64 , 5=31. 62 两者相减得 (1 - 3)
8第I部分数值分析 y=0.02 这个结果只有一位有效数字,损失了三位有效数字,从而绝对误差和相对误差都变得 很大,严重影响计算结果的精度,必须尽量避免出现这种运算,遇到这种运算时,最好 是改变计算公式,防止这种情形的出现 例如把公式(1-3)处理成 y=中-压=+i+匠 按此公式可求得y=0.01581,则y有三位有效数字,可见改变计算公式,可以避免两 相近数相减引起的有效数字的损失,而得到较精确的结果, 类似地,由 lax-lny=in号, sin(x+e)-z=2cos(z+乞)sin号(当e很小时) 当x和y很接近时,采用等号右边的算法,有效数字就不损失。 二、绝对值太小的数不宜作除数 在用计算机作运算时,很小的数作除数会溢出停机,而且当很小的数稍有一点误 差时,对计算结果影响很大.例如: 2.7182=2718.2 0.001 如果分母变为0.0011,也即分母只有0.0001的变化时, 2.7182 0.0011≈2471.1, 计算结果起了很大变化.因此,在计算中必须避免绝对值很小的数作除数 三、要注意计算机字长有限等特点,采取相应的措施,以保证计算结果的准确性 由于计算机字长有限,绝对值相差很大的两个数进行加、减法运算时,绝对值较 小的那个数往往被另一个数“吃掉”,不能发挥其作用,有时会严重影响计算结果的准 确性
, 部分 数值 y=0.02 , 这个结果只有一位有效数字,损失了三位有效数字,从而绝对误差和相对误差都变得 很大,严重影响计算结果的精度,必须尽量避免出现这种运算,遇到这种运算时,最好 是改变计算公式,防止这种情形的出现. 例如把公式。 处理成 y=vx+1-5= 1 十5 按此公式可求得 0158 1, 有三位 效数 公式 避免 相近数相减引起的有效数字的损失,而得到较精确的结果. 类似地,由 Inx 一Iny= In y sinCx e: (当 E很小时) Z和 y很接近时,采用等号右边的算法,有效数字就不损失. 二、绝对值太小的数不宜作除数 在用计算机作运算时,很小的数作除数会溢出停机,而且当很小的数稍有一点误 差时,对计算结果影响很大.例如: 2. 7182 一一一一 71 0.001 如果分母变为 1,也即分母只有 0001 2. 7182 一一一一一 O. 0011 - - •. 1.~. 1,~, 计算结果起了很大变化.因此,在计算中必须避免绝对值很小的数作除数. 三、要注意计算机字长有限等特点,采取相应的措施,以保证计算结果的准确性 由于计算机字长有限,绝对值相差很大的两个数进行加、减法运算时,绝对值较 小的那个数往往被另一个数"吃掉",不能发挥其作用,有时会严重影响计算结果的准 确性
第一章绪论9 例如,求x2+(a+)x+10°=0的根,其中 a=-10°,3=-1 根据韦达定理,方程有两个根: x1=103,x2=1 如果我们应用求根公式 x1.2=-b土B-4aG 2a 编制程序,在能将规格化的数表示到小数点后八位的计算机上进行运算,则 -b=10+1=0.1×1010=0.0000000001×10° 由于第二项最后两位数“01”在计算机上表示不出来,故在计算机上运算(用记号△ 表示)时, -b△0.1×1010+0.00000000×101 △0.1×1010叁10°△-a 类似地可得 √62-4ac≌|bl=10 五4==6+B=4ac△10+10△10 Za 2 =-6-B-4ac△10',10'△0 2a 2 显然,根x2严重失真.引起这种错误的主要原因是在计算机上进行加、减法运算时要 对阶,使得绝对值大的数α“吃掉”了绝对值小的数B,当然,只要采取适当措施,还是 能够得到较好的结果的.如在本例中,由于根x是可靠的,可以利用两根与系数的关 系式 来计算x2,此时,有 I1-ax1 109 1X109-1
第一章绪论 例如,求 α十卢)x十 0的根,其中 α= -10 卢=-1 根据韦达定理,方程有两个根: xI=109 , x 2=1 如果我们应用求根公式 -4ac 1. 2 …- 2a 编制程序,在能将规格化的数表示到小数点后人位的计算机上进行运算,则 109 + 1=0. 1 X laID =0.0000000001 X 109 由于第二项最后两位数 1 " 示 不 上 运 记 号 表示)时, -bAO. 1 X 10 十0.00000000X10 AO. 1 X 1010 A109 一α 类似地可得 Jb2-4ac£lbl =109 -b- +109 A 1 ~9 工,=, --一 :::.... I 2α 工。-卢- A旦 • 2a - 显然,根 要原 算机 进行 法运算 时要 对阶,使得绝对值大的数 绝对值小 要 采 取 还是 能够得到较好的结果的.如在本例中,由于根 可靠 两根 系式 C IX2= 来计算岛,此时,有 C A 10 Z==2- ~-一一一一一 a x l = l X 109 - .L
10第I部分数值分析 第二章 解线性代数方程组的直接法 在自然科学与社会科学的研究中,常常需要求解线性代数方程组,例如:实验数 据的曲线、曲面的拟合,用差分法或有限元法解偏微分方程等都要用到线性代数方程 组的求解.由于从不同的问题导出的线代数方程组的系数矩阵不同,比如,矩阵阶数 的大小,矩阵中的非零元稠密情况等,系数矩阵可以粗略地分为低阶稠密矩阵和大型 稀疏矩阵,关于线性代数方程组的求解,主要分为两大类:直接法和迭代法.在理论 上,用直接法可以通过有限步的计算得到精确解,而迭代法是通过逐次迭代逼近来求 得近似解.实际上,由于舍人误差的影响.由直接法得到的解也不精确.因此,在某些 需要高精度解的问题中,常常把由直接法得到的解同时再运用迭代法迭代若干步;以 提高解的精度,一般地说,对于低价稠密的线性代数方程组以及大型带形方程组的求 解,采用直接法比较有效,而对于大型稀疏(非带形)方程组,则用迭代法求解比较有 利.当然,是采用直接法,还是采用迭代法,或是直接法与迭代法交替使用,要根据具 体情况确定. 本章主要讨论一些最基本的直接法,并在此基础上讨论它的变形情况,对于求解 线性代数方程组的迭代法,我们将在下一章中介绍. §2.1 Gauss消去法 考虑n阶线代数方程组 a1x1+a12x2+…十a1nxn=b1 a21x1十a2x2十…十a2mxn=b2 (2-1) … a1x1十a2x2十…十amxn=bn 采用矩阵和向量记号,我们可以把式(2-1)改写成 Ax=b (2-2) 其中
10 分 数 第二章解线性代数方程组的直接法 在自然科学与社会科学的研究中,常常需要求解线性代数方程组,例如:实验数 据的曲线、曲面的拟合,用差分法或有限元法解偏微分方程等都要用到线性代数方程 组的求解.由于从不同的问题导出的线代数方程组的系数矩阵不同,比如,矩阵阶数 的大小,矩阵中的非零元稠密情况等,系数矩阵可以粗略地分为低阶稠密矩阵和大型 稀疏矩阵.关于线性代数方程组的求解,主要分为两大类 t直接法和迭代法.在理论 上,用直接法可以通过有限步的计算得到精确解,而迭代法是通过逐次迭代逼近来求 得近似解.实际上,由于舍人误差的影响.由直接法得到的解也不精确.因此,在某些 需要高精度解的问题中,常常把由直接法得到的解同时再运用迭代法迭代若干步豆以 提高解的精度,一般地说,对于低价稠密的线性代数方程组以及大型带形方程组的求 解,采用直接法比较有效,而对于大型稀疏(非带形)方程组,则用迭代法求解比较有 利.当然,是采用直接法,还是采用迭代法,或是直接法与迭代法交替使用,要根据具 体情况确定. 本章主要讨论一些最基本的直接法,并在此基础上讨论它的变形情况,对于求解 线性代数方程组的迭代法,我们将在下一章中介绍. § 2. 1 Gauss 考虑 n阶线代数方程组 all Xl +a12 X 2 =bl a 2l Xl 十 … 2 n =b2 ••• G时 n 2 十 … nn =bn 采用矩阵和向量记号,我们可以把式 - 1 写成 Ax = b 其中 (2ω 1) (2-2)