1、计算方法习题答案第一章数值计算中的误差1. 什么是计算方法?(狭义解释)答:计算方法就是将所求的的数学问题简化为一系列的算术运算和逻辑运算,以便在计算机上编程上机,求出问题的数值解,并对算法的收敛性、稳定性和误差进行分析、计算。2. 一个实际问题利用计算机解决所采取的五个步骤是什么?答:一个实际问题当利用计算机来解决时,应采取以下五个步骤: 实际问题建立数学模型构造数值算法编程上机获得近似结果10-101-4-3-39-2472-2191-38-2473-2234. 利用九韶算法计算多项式P(x) = x - x 3 + x 5 - 4 在 x = -3 处的值,并编程获得解。解: P(x)
2、= x5 + 0 x 4 - x 3 + 0 x 2 + x - 4 ,从而所以,多项式 P(x) = x - x3 + x5 - 4 在 x = -3 处的值 P(-3) = -223 。5叙述误差的种类及来源。答:误差的种类及来源有如下四个方面:(1) 模型误差:数学模型是对实际问题进行抽象,忽略一些次要因素简化得到的, 它是原始问题的近似,即使数学模型能求出准确解,也与实际问题的真解不同,我们把数学模型与实际问题之间存在的误差称为模型误差。(2) 观测误差:在建模和具体运算过程中所用的一些原始数据往往都是通过观测、实验得来的,由于仪器的精密性,实验手段的局限性,周围环境的变化以及人们的工
3、作态度和能力等因素,而使数据必然带有误差,这种误差称为观测误差。(3) 截断误差:理论上的精确值往往要求用无限次的运算才能得到,而实际运算时只能用有限次运算的结果来近似,这样引起的误差称为截断误差(或方法误差)。(4) 舍入误差:在数值计算过程中还会用到一些无穷小数,而计算机受机器字长的限制,它所能表示的数据只能是一定的有限数位,需要把数据按四舍五入成一定位数的近似的有理数来代替。这样引起的误差称为舍入误差。6. 掌握绝对误差(限)和相对误差(限)的定义公式。答:设 x* 是某个量的精确值, x 是其近似值,则称差 e = x* - x 为近似值 x 的绝对误差(简称误差)。若存在一个正数e
4、使 e = x* - x e ,称这个数e 为近似值 x 的绝对误差限(简称误差限或精度)。r把绝对误差 e 与精确值 x* 之比 e= e = x* - x 称为近似值 x 的相对误差,称xx*ex*h =为近似值 x 的相对误差限 er h , 由于真值 x* 是未知的, 所以常常用e = x* - x = e 来表示相对误差,于是相对误差可以从绝对误差求出。rxx7. 近似值的规格化表示形式如何?答:一般地,对于一个精确值 x* ,其近似值 x 的规格化形式为 x = 0.x x Lx1 2p10m ,其中 x1 0, xi 0,1,2,L9(i = 1,2,L p) , p 为正整数,
5、 m 为整数。8. 有效数字的概念是什么?掌握有效数字与误差的关系。答:若近似值 x 的(绝对)误差限是它的某一位的半个单位,也就是说该近似值准确到这一位,且从该位起直到前面第一个非零数字为止的所有数字都称为有效数字。若近似值 x 的(绝对)误差限为 e = x* - x 1 10m-n ,则称 x 为具有 n 位有效2数字的有效数,或称它精确到10 m-n 位,其中的每一位数字 x , x12,L xn都是 x 的有效数字。设精确值 x* 的近似值 x 的规格化形式为 x = 0.x x Lx1 2p10m ,若 x 具有n 位有效 数 字 , 则 其 相 对 误 差 限 为 er 1 10
6、1-n ; 反 之 , 若 x 的 相 对 误 差 限 为2x1e 1r2(x1+ 1)101-n ,则 x 至少有n 位有效数字。9. 下列各数都是对真值进行四舍五入后获得的近似值,试分别写出它们的绝对误差限,相对误差限和有效数字的位数。(1)x1= 0.024 (2)x2= 0.4135 (3)x3= 57.50 (4)xx* - x xex4= 60000 (5)x5= 8 105 ;解:(1) e=x * - xx* - x xex11 0.0005 ; e =r= 0.0021;有三位有效数字。(2) e=x * - xx* - x xex22 0.00005 ;e =r= 0.00
7、0121;有四位有效数字。(3) e=x * - xx* - x xex33 0.005 ; e =r= 0.000087 ;有四位有效数字。(4) e=x * - x44 0.5 ; e =r= 0.0000084 ;有五位有效数字。(5) ) ex * 5x0.5 ; e5r0.000000625 ;有六位有效数字。x*x xex1910 为了使的相对误差 0.1% ,问至少应取几位有效数字?解:由e (x* )r的首位数是 4.设近似数 x*有n 位有效数字,由定理 4.1 可知,相对误差191101 n0.001,解得n3.097 ,即取 4 位有效数字,近似数的相对误差24不超过 0
8、.1% 。11 已知 yP (x)x2x 1150,x*100 ,x33 ,计算 y*p 100)及 yP (33),(33并求 x 和 y 的相对误差。解: y*100100)2100) 11505.55555p()(333yP (33)(33)2(33) 115028e(x)x*x0.333e(x)xe (x)r0.0101e(y)y*y22.44444e(y) ye (y)r0.80158712 写出误差估计的一般公式(以二元函数zf(x,y)为例)。解:二元函数zf(x,y)的绝对误差:e(z)f |e(x)f |x (x,y)y (x,y)e(y)二元函数的相对误差:e (z)e(z
9、)f |e(x)f |e(y)rzxxf |(x,y)e (x)zyyf |(x,y)ze (y)zx (x,y)rzy (x,y)r13 用电表测得一个电阻两端的电压和流过的电流围分别为 V = 220 2V ,I = 10 0.1A ,求这个电阻的阻值 R ,并估算其绝对误差和相对误差。解: e(V ) 2 , e(I ) 0.1,又 R = V , R = 1 , R = - V 。所以:e(R) RRV|e(V ) +(V ,I )II VI II 2|e(I ) (V ,I )RVRI1220|e(V ) +|e(I ) = 2 + 0.1 = 0.42(V ,I )(V ,I )1
10、0100e(R)e (R) =r 1.99 10-2 。R14若 x* = 1.03 0.01, x* = 0.45 0.01,计算 y = x 2 + 1 ex2 的近似值,并估计 e( y) 及1其上界。解: y (1.03)2 +2121 e0.4521112222e( y) = y* - y = (x* +ex* ) - (x +ex ) = (x* - x )(x* + x ) +(ex* - ex )121211112 (x - x )(x + x ) +(e- e1*x*x22) = 2.06 10-2 + 1 ex 0.01,x (x, x* )1111222215. 已测得某
11、场地长为 l = 110m ,宽 d 的值为 d = 80m ,已知 e(l) = l * - l 0.2m ,e(d ) = d * - d 0.1m ,试求面积s = ld 的绝对误差限和相对误差限。解:由 s = ld , s = d , sld= l , e(l) = l * - l 0.2m , e(d ) = d * - d 0.1m 。可得:e(s) sl|(l ,d )e(l) + s |d(l ,d )e(d ) |(l ,d )e(l) +|(l ,d )e(d )slsd= 110 0.2 + 80 0.1 = 30e(s)e (s) =r 3.4 10-3 。s16.
12、掌握二元函数的加、减、乘、除和开方运算的绝对误差和相对误差估计公式。解:(1)加、减运算:由 于 (x + y)/ x = 1 (x + y)/ y = 1, (x - y)/ x = 1, (x - y)/ y = -1, , 所 以e(x + y) e(x)+ e(y), e(x + y) x /(x + y) e(x)+ y /(x + y) e(y), e(x - y) e(x)- e(y),()() r ( )()( r)(r)()( )e x - y x / x - y e x - y / x - y e y ,从而有| e x - y | x / x - y | e x | +r
13、 ()( )rrrr| y / x - y | |ey |r(2) 乘法运算:由于 (xy) = y, (xy) = x,所以 e(xy ) ye(x)+ xe(y), exyr| e(xy)| y | | e(x)+ | x | | e(y)|(3) 除法运算:(xy) er(x)+ er(y),从而( )( )x1由 于 xx = 1 , xy = - x, 所 以 e( ) e(x) - x e( y) ,yyyy 2yyy 2xe ( ) er yr(x) - er( y)( )(4) 乘方及开方运算: xn( )( )( )( )由 于 x= nxn-1 ,所以e x n nxn-1
14、e x , e x nr ne xr78317. 求方程 x 2 - 56x + 1 = 0 的两个根,使它至少具有 4 位有效数字( 27.982 )。解: x1= 56 +(-56)2 - 4 11 28 + 27.982 = 55.7822 1x = c =2x1155.782 0.01786319. 求方程 x 2 - 16x + 1 = 0 的较小正根,要求有 3 位有效数字。解: x1= 16 +(-16)2 - 4 11 8 + 7.937 = 15.9372 1x = c =2x1115.937 0.062747所以较小正根为 x 0.062747 。220. 设 In= 1
15、xnex dx, n = 0,1,2,L,104 。0(1)证明: I = e - nI, n = 0,1,2,L,10 4 ;nn-1(2)给出一个数值稳定的算法,并证明算法的稳定性。(1) 证明: I= 1 xnex dx = 1 xn dex = e - 1 nxn-1ex dx = e - nIn000n-1(2) In-1= 1 (e - I )nn设 e= I * - I , 则nnnen-1= I *n-1- I=e1nn-1nen-2= I *n-2- I=e1n2n-2nLL1nne = I * - I=e000n当n 无限大时, e 越小,所以该算法稳定。n21. 用递推算
16、法计算积分I= 1xndx, n = 0,1,2L,10 ,并验证算法的数值稳定性。n0 1 + 4x1 1 4xn + xn-1 - xn-1111 xn-111解: I=dx =( xn-1dx -dx) =-In4 01 + 4x400 1 + 4x4n4n-1设 e= I * - I , 则0001e = I * - I =e1114 0142e= I * - I=e2220LLe= I *1010- I=e1410100所以该算法是稳定的。22. 设计一个计算 f (x) = x12 + 3x 24 + 16x36 的最小计算量的算法。解: f (x) = x12 + 3x 24 +
17、 16x 36 = x x x 2 x 4 x 4 + 3 x12 x12 + 16 x12 x 2423. 什么是数值稳定的算法?数值计算应遵循的六条规则是什么?答:一个算法如果原始数据有误差(扰动),而计算过程中舍入误差不增长或增长可以控制,则称此算法是数值稳定的。否则,称此算法是数值不稳定的。数值计算应遵循的六条规则是:(1) 选用数值稳定的算法(计算公式);(2) 尽量避免两个相近数相减;(3) 尽量避免用绝对值很大的数作乘数;(4) 尽量避免用绝对值很小的数作除数;(5) 防止大数“吃掉”(或“淹没”)小数(即合理安排运算顺序);(6) 简化计算步骤,减少运算次数。第二章非线性方程的
18、数值解法1叙述零点定理的容。答: 设函数 f (x) 在闭区间a, b 上连续且 f (a) f (b) 0 , 则存在 x* (a, b) 使f (x* ) = 0 ,即 f (x) 在区间(a, b) 存在实的零点,称区间a, b 为方程的有根区间。2方程求根的两个步骤是什么?确定方程有根区间的方法有哪些?答:第一步 确定方程 f (x) = 0 的有根区间。第二步 近似根的精确化。确定方程有根区间的方法有两种:作图法和逐步搜索法。3利用作图法确定方程 f (x) =x3 -x - 1 = 0 的有根区间。解f (x) = x3 - x - 1:y-101x由于 f (0) = -1 0,
19、 于是,在区间(0,2) 至少有一个根,取步长h = 0.5 向 右 进 行 根 的 搜 索 , 即 计 算f (0.5), f (1.0), f (1.5) 的 值 得 到f (0.5) 0, f (1.0) 0 ,从而,原方程的有根区间缩小为(1,1.5) 4利用逐步搜索法确定方程 f (x) = x 3 - 3x 2 + 4x + 3 = 0 的有根区间。解:由于 f (0) = 3 0, f (-1) = -5 0 ,从8而,原方程的有根区间缩小为(-1,- 1 ) 。25. 确定方程 x3 + 4x 2 - 10 = 0 的有根区间。解:由于函数 f (x) = x 3 + 4x 2
20、 - 10 的定义域为 (- ,+),用逐步搜索法:由于f (0) = -10 0 ,于是,方程在(0,2) 至少有一个实根,所以,从 x = 0 ,取步 长 h = 0.5 向 右 进 行 根 的 搜 索 , 即 计 算 f (0.5), f (1.0), f (1.5) 的 值 得 到f (0.5) 0, f (1) 0 ,从而原方程的有根区间缩小为(1,1.5)6. 二分发的基本思想是什么?解:二分发的基本思想是将方程 f (x) = 0 的有根区间逐步分半,通过判别 f (x) 在端点的符号以及零点定理来缩小有根区间,使在足够小的区间使方程 f (x) = 0 有且仅有一个根,并满足给
21、定的精度要求为止。7. 以方程 f (x) = 0 的有根区间为a, b为例( f (a) 0) ,简述二分法的具体作法。解:第一步:将有根区间a, b分半,用区间a, b的中点 a + b 将a, b分为两个相等2区间,计算中点的函数值 f ( a + b ) 。若 f ( a + b ) = 0 ,则 x* = a + b 就是方程 f (x) = 0 的222根;否则,若 f ( a + b ) 0 ,则方程的有根区间变为a, a + b ,从而将新222 的有根区间记为a , b ,且区间a , b 的长度仅为区间a, b的一半,即b - a= b - a 。1111112a + b第
22、二步:对压缩了的有根区间a , b又可施行同样的方法,即用中点 11 将区112间a , b 再分为两半,然后通过根的搜索判定所求的根位于哪半个区间,从而又确定一个11新的有根区间a, b ,该区间的长度是区间a , b 的一半。2211如此反复可得出一系列有根区间且具有关系a, b a , b L a , b L,11kk其中后一个区间长是前一个区间长的一半,因此区间 a , bkk的长度 b - akk= b - a ,当2kk 时,区间a , bkk的长度必趋于零,即这些区间最终收缩于一点 x* ,显然 x* 就是方程 f (x) = 0 的根。8. 以方程 f (x) = 0 的有根区
23、间为a, b,精度要求为e ,试写出利用二分法求该方程的近似根所需二分次数k 的计算公式。解:若事先给定的精度要求为e 0 ,则只需 x* - xk b - a b - aln2e,ln 2此时 x 就是满足给定精度要求的近似值, k 为二分法的次数。k9. 用二分法求下列方程在给定的有限区间及精度要求下的近似值及二分次数k (编程)(1) f (x) = xex - 20.5,1JD = 0.0001解: xk= 0.852600k = 12(2) f (x) = x 3 - 3x 2 + 4x - 31,1.5JD = 0.00001解: xk= 1.499992k = 15(3) f (
24、x) = x3 + 4x 2 - 101,2JD = 0.0005解: xk= 1.364746k = 10(4) f (x) = x3 - x - 11,1.5JD = 0.00005解: xk= 1.324707k = 1310. 若应用二分法求方程e- x - sin p x = 0 在区间0,1上误差不超过 1 的近似值,应二分225多少次?解:其近似根为0.437500 ,应分k = 5 次。11. 迭代法的基本思想是什么?解:迭代法是一种逐次逼近法,首先给定方程 f (x) = 0 的一个粗糙的初始近似根x ,0然后用一个固定公式反复校正这个根的近似值使之逐步精确化,直到满足预先给
25、定的精度要求为止。12. 迭代法的具体做法如何?解:(1)将方程 f (x) = 0 改写成等价形式 x = j (x) ,在根 x*的附近任取一个初始近似根x 。0(2)构造近似根序列:将x0代入j (x) 计算得到 x1= j (x0) ,一般x1 x ,再把x 作10为新的近似根代入j (x) 得到 x2= j (x ) ,重复上述步骤即可。113. 迭代法的几何意义是什么?答:方程 x = j (x)的求根问题在几何上就是确定曲线 y = j (x)与直线 y = x 交点 p* 的横坐标 x* 。设迭代初值为x ,曲线 y = j (x)上以 x 为横坐标的点为 p ,j (x )为
26、 p 点的00000纵坐标,过 p点引平行于 x 轴的直线,并与直线 y = x 相交于 P ,其横坐标为 x= j (x ),0010然后过点 P 引平行线于 y 轴的直线,并与曲线 y = j (x)的交点记作 p ,重复上述过程可得01+点列 p , p ,K, p ,K, 他们横坐标依次由迭代公式 x= j (x ), k = 0,1L 所确定。如果12kk 1k点列 p , p ,K, p ,K, 逐步逼近 p* ,则迭代过程收敛,否则迭代过程发散。12k14. 叙述迭代过程收敛定理的容。解:假设迭代函数满足下列两个条件(1) 对任意的 x a, b有a j (x) b ;(2) 存
27、在正数 L 1,使对任意 x a, b有 j (x) L 1。+则(1)对任意初值 x a, b迭代过程 x= j (x ) 均收敛于方程 x = j (x) 的根 x* ,0k 1k即lim xk= x* (k ) 。(2)误差事后估计公式为 x* - xkx11 - Lk +1- x 。k15. 试构造收敛的迭代公式求解下列方程:cos x + sin x(1) x =;(2) x = 4 - 2 x 。42 sin(x + p )解:(1 )将方程 x = cos x + sin x 改写为 x =44 ,从而得到迭代公式4x=k +12 sin(xk4+ p )4k = 0,1,2,L
28、。( 2 ) 将 方 程 x = 4 - 2 xx= ln(4 - x ) k = 0,1,2,L 。k +1k改 写 为 x = ln(4 - x) , 从 而 得 到 迭 代 公 式16. 判断迭代法解方程 f (x) = x - ln(x + 2) = 0 在0,2的根时所用的迭代过程的收敛性。解 : 将 方 程 x - ln(x + 2) = 0 改 写 为 x = ln(x + 2) , 从 而 得 到 迭 代 公 式xk +1= ln(xk+ 2), k = 0,1,2,L 。则j (x) = ln(x + 2) 为迭代函数。由 j (x) =1 1 ,x + 24 6 + 4 6
29、 + 4 6 + 4 6 +L由定理 3.2 可得该迭代法是收敛的。17. 用迭代法计算s =的近似值。19. 牛顿法的基本思想是什么?具体做法如何?解:基本思想:牛顿迭代法实质上是一种线性化的方法,其基本思想是将非线性方程f (x) = 0 逐步归结为某种线性方程来求解的方法。具体做法:设已知方程 f (x) = 0 有近似根 x ,将 f (x) 在 x 作一阶泰勒展开,于是方kk程 f (x) = 0 可近似地表示为 f (x ) + f (x )(x - x ) = 0 是一个线性方程,设 f (x ) 0 ,kkkk则 x = xf (x )-=-k,于是就有牛顿迭代公式 xxf (
30、xk ) , k = 0,1,2,L 。kf (x )kk +1kf (x )k20. 牛顿法的几何意义是什么?+解:牛顿迭代法实质上是用过点(x , f (x ) 的切线与 x 轴交点的横坐标 x来逐步逼kkk 1近曲线 y = f (x) 与 x 轴交点的横坐标 x* ,所以牛顿法又叫切线法。22. 试证:用牛顿法求方程(x - 2) 2 (x + 3) = 0 在1,3的根 x* = 2 是线性收敛的。证 明 : 由 牛 顿 迭 代 公 式 x= x - f (xk ) , k = 0,1,2,L , 可 得 ,k +1kf (x )kj (x) = x -f (x)= 2x 2 + 3
31、x + 6 ,显然,j (2) 0 ,所以该迭代过程是线性收敛的。f (x)3x + 423. 用牛顿法求方程 x3 - a = 0 ,导出求立方根3 a 的迭代公式,并讨论其收敛性。解:设 f(x)= x3 - a =0 ,得牛顿迭代公式为x= xk +1kx3 - a- k3x 2k=, k = 0,1,L ,牛顿迭代函数j (x) = 2x3 + a ,j (x) = 2x3 - 2a , j (3 a ) = 0 1,所以该迭代公式收敛。3x 23x326. 正割迭代法的基本思想是什么?具体做法如何?几何意义是什么?-解:基本思想:用过两点 (x , f (x ) , (x, f (x
32、) 的直线的斜率这个差商来代替kkk 1k 1牛堆迭代公式中的倒数 f (x )。k-具体做法: 对方程 f (x) = 0 经过 k 次迭代后得到近似根 x, x , 从而取k 1kf (x( f (x ) - f (x) kk -1,于是牛顿迭代公式变为k(xk- x)k -1x= x -f (x )k(x - x) ,此公式为正割法迭代公式。k +1kf (xk) - f (x)kk -1k -1-几何意义:正割迭代法是用过两点A(x , f (x ) , B(x, f (x) 的直线与 x 轴交点kkk 1k 1+的横坐标 x来逐步逼近曲线 f (x) 与 x 轴交点的横坐标 x*,因
33、此正割迭代法又叫割线法。k 127. 简述正割迭代法与牛顿迭代法的区别。+解:牛顿迭代法在计算时只需要一个初值x ,在计算 x只用到前一步的值Xk,但要0k 1计算 f (xk);而正割法在计算时需要两个初值x0, x 1,在计算xk +1时要用到前两次的迭代-值 x, x ,但不用计算导数。k 1k30使迭代法加速的方法有哪些?并分别写出它们的迭代公式。答:使迭代法加速的方法有艾特肯加速公式和斯蒂芬森方法:艾特肯加速公式:校正: CK +1= j (C )(K)再校正: CK +2= j CK +1(K = 0,1,2,L)2改进: C= C-CK + 2 -CK +1K +1K +2C -
34、2 C+C斯蒂芬森方法:KK +1K + 2迭代: UK= j(CK), ZK= j(UK)(K = 0,1,2,L);加速: C= CK +1K- (UK -CK )2ZK -2UK +CK(K = 0,1,2,L).第三章线性方程组的数值解法1. 线性方程组的数值解法有哪两大类?并简述他们的概念。答:线性方程组的数值解法有两大类:(1) 直接法 :直接法就是在没有舍入误差的情况下,经过有限步算术运算可求得方程组精确解的算法。(2) 迭代法:迭代法就是用某种极限过程去逐步逼近线性方程组精确解的方法, 即先给定一个初始解向量,然后按新的迭代公式逐步求出解的更准确值的方法。2. 高斯消去法的基本
35、思想是什么?答:高斯消去法的基本思想是用逐次消去未知量的方法把原来方程组AX = b 化为与其同解的三角形方程组,而求解三角形方程组就容易了。3. 高斯主元素消去法是在何种情况下提出来的?答:用高斯消去法解线性方程组AX = b 的消元过程中,可能会出现以下两种情况:第一是主元素全是 0 的情形,致使消元过程无法进行下去;第二即使主元素不为 0,但其绝对值很小时作除数可能会导致其他元素数量级的严重增长和舍入误差的传播,使计算结果不可靠。所以对于一般矩阵来说,最好每一步选取系数矩阵中绝对值大的元素作为主元素。4. 用高斯顺序消去法,完全主元素消去法和列主元素消去法解下列方程组,并写出高斯顺序消去
36、法的程序。2x + x + 2x= 53x - x + 4x = 7(1) 5x1 - x 2 + x 3 8;(2) - 1 + 2- 3= -1 。=x 123x2x2x123- 3x - 4x = -42x - 3x - 2x = 0123123解:(1)将方程组的增广矩阵进行初等变化,并利用高斯顺序消去法得: 2 1 2M5 2 12 M 5 2 1 2 M 5x = 1 15 -1 1M8 0 - 7 - 8 M - 9 0 7 8M 9 x = -1;1 - 3 - 4 M - 4 0 - 7 -10 M -13 0 0 2 M 4 x2 = 23利用完全主元素消去法得: 2 1 2M5 5 -11 M 85 -11 M 851-1 M 8 5 -1 1 M8 212 M 5 078 M 9 087 M 91 - 3 - 4 M - 41 - 3 - 4M - 4 023 M 4 032 M 4 51-1 M 8 x = 1 087 M 9 x1 = 2 ; 005 M - 5x3 = -1 2利用列主元素消去法得: 2 1 2M5 5 -11 M 85 -11 M 85 -11 M 8 x = 15 -1 1 M8 212 M 5 078 M 9 078 M 9 x1 = -121 - 3 - 4 M - 41 - 3 - 4M - 4 023 M 4 005