计算方法引论课后答案.doc.pdf
- 格式:pdf
- 大小:419.14 KB
- 文档页数:11
第1章 数值计算引论1.1 内容提要一、误差的来源数值计算主要研究以下两类误差。
1. 截断误差数学模型的准确解与用数值方法求得的解的差称为截断误差,又称为方法误差。
这种误差常常是由用有限过程代替无穷过程时产生的误差。
例如,要计算级数∑∞==+++++1!1!1!31!211k k n的值,当用计算机计算时,用前n 项(有限项)的和∑==+++++nk k n 1!1!1!31!211来代替无穷项之和,即舍弃了n 项后边的无穷多项,因而产生了截断误差∑∞+=1!1n k k2. 舍入误差由于计算机字长为有限位,原始数据和四则运算过程中进行舍入所产生的误差称为舍入误差。
例如,用3.141 59表示圆周率π时产生的误差0.000 002 6…,用0.333 33表示1÷3的运算结果时所产生的误差1÷3-0.333 33 = 0.000 003 3…都是舍入误差。
二.近似数的误差表示1. 绝对误差设x *是准值x 的一个近似值,称**)(x x x e -=为近似值x *的绝对误差,简称误差。
令|)(|*x e 的一个上界为*ε,即***|||)(|ε≤-=x x x e把*ε称为近似数*x 的绝对误差限,简称误差限。
2. 相对误差设*x 是精确值x 的一个近似值,称xx x xx e **)(-=为近似值x *的相对误差。
在实际应用中常取***)(xx x x e r -=为*x 的相对误差。
令相对误差绝对值 |)(|*x e r 的一个上界为ε*r,即 ****|||||)(|r r x x x x e ε≤-=把ε*r称为近似数*x 的相对误差限。
3. 有效数字对有多位数字的准确值四舍五入原则得到其前若干位的近似值时,该近似值的绝对误差不超过末位的半个单位。
设数x 的近似值m n x x x x 10.021*⨯±= ,其中,i x 是0~9之间的任一个数,但i x ≠0,n i ,2,1=是正整数,m 是整数,若nm x x -⨯≤-1021||*则称*x 为x 的具有n 位有效数字的近似值,*x 准确到第n 位,n x x x ,,,21 是*x 的有效数字。
1.1 设3.14, 3.1415, 3.1416分别作为π的近似值时所具有的有效数字位数解 近似值x =3.14=0.314×101,即m =1,它的绝对误差是 -0.001 592 6…,有31105.06592001.0-*⨯≤=- x x . 即n =3,故x =3.14有3位有效数字. x =3.14准确到小数点后第2位. 又近似值x =3.1416,它的绝对误差是0.0000074…,有 5-1*10⨯50≤00000740=-.. x x即m =1,n =5,x =3.1416有5位有效数字. 而近似值x =3.1415,它的绝对误差是0.0000926…,有 4-1*10⨯50≤00009260=-.. x x即m =1,n =4,x =3.1415有4位有效数字.这就是说某数有s 位数,若末位数字是四舍五入得到的,那么该数有s 位有效数字1.2 指出下列各数具有几位有效数字,及其绝对误差限和相对误差限:2.0004 -0.00200 9000 9000.00解 (1)∵ 2.0004=0.20004×101, m=1 绝对误差限:4105.0000049.020004.0-*⨯≤≤-=-x x xm -n =-4,m =1则n =5,故x =2.0004有5位有效数字1x =2,相对误差限000025.010221102151)1(1=⨯⨯=⨯⨯=---n r x ε (2)∵ -0.00200= -0.2×10-2, m =-2 5105.00000049.0)00200.0(-*⨯≤≤--=-x x xm -n =-5, m =-2则n =3,故x =-0.00200有3位有效数字1x =2,相对误差限3110221-⨯⨯=r ε=0.0025 (3) ∵ 9000=0.9000×104, m =4, 0105.049.09000⨯<≤-=-*x x xm -n =0, m =4则n =4,故x =9000有4位有效数字4110921-⨯⨯=r ε=0.000056 (4) ∵9000.00=0.900000×104, m =4,2105.00049.000.9000-*⨯<≤-=-x x xm -n =-2, m =4则n =6,故x =9000.00有6位有效数字 相对误差限为6110921-⨯⨯=rε=0.000 00056由(3)与(4)可以看到小数点之后的0,不是可有可无的,它是有实际意义的.10-的近似值是多少?1.3 ln2=0.69314718…,精确到310-=0.001,即绝对误差限是ε=0.0005,解精确到3故至少要保留小数点后三位才可以.ln2≈0.6931.1 设3.14, 3.1415, 3.1416分别作为π的近似值时所具有的有效数字位数解近似值x=3.14=0.314×101,即m=1,它的绝对误差是-0.001 592 6…,有.即n=3,故x=3.14有3位有效数字.x=3.14准确到小数点后第2位.又近似值x=3.1416,它的绝对误差是0.0000074…,有即m=1,n=5,x=3.1416有5位有效数字.而近似值x=3.1415,它的绝对误差是0.0000926…,有即m=1,n=4,x=3.1415有4位有效数字.这就是说某数有s位数,若末位数字是四舍五入得到的,那么该数有s位有效数字1.2指出下列各数具有几位有效数字,及其绝对误差限和相对误差限:2.0004 -0.00200 9000 9000.00 解(1)∵ 2.0004=0.20004×101, m=1绝对误差限:m-n=-4,m=1则n=5,故x=2.0004有5位有效数字=2,相对误差限(2)∵ -0.00200= -0.2×10-2, m=-2m-n=-5,m=-2则n=3,故x=-0.00200有3位有效数字=2,相对误差限 =0.0025(3)∵ 9000=0.9000×104, m=4,m-n=0,m=4则n=4,故x=9000有4位有效数字=0.000056(4) ∵9000.00=0.900000×104, m=4,m-n=-2,m=4则n=6,故x=9000.00有6位有效数字相对误差限为=0.000 00056由(3)与(4)可以看到小数点之后的0,不是可有可无的,它是有实际意义的.1.3 ln2=0.69314718…,精确到的近似值是多少?解精确到=0.001,即绝对误差限是e=0.0005,故至少要保留小数点后三位才可以.ln2»0.6932.1 用二分法求方程在[1, 2]的近似根,要求误差不超过至少要二分多少?解:给定误差限e=0.5×10-3,使用二分法时,误差限为只要取k满足即可,亦即只要取n=10.2.3 证明方程1 -x–sin x=0 在区间[0, 1]内有一个根,使用二分法求误差不超过0.5×10-4的根要二分多少次?证明令f(x)=1-x-sin x,∵f(0)=1>0,f(1)=-sin1<0∴f(x)=1-x-sin x=0在[0,1]有根.又f¢(x)=-1-c os x<0 (xÎ[0.1]),故f(x) 在[0,1]单调减少,所以f(x) 在区间[0,1]内有唯一实根.给定误差限e=0.5×10-4,使用二分法时,误差限为只要取k满足即可,亦即只要取n=14.。
4.1:在我们所了解的早期排序算法之中有一种叫做Maxsort 的算法。
它的工作流程如下:首先在未排序序列(初始时为整个序列)中选择其中最大的元素max ,然后将该元素同未排序序列中的最后一个元素交换。
这时,max 元素就包含在由每次的最大元素组成的已排序序列之中了,也就说这时的max 已经不在未排序序列之中了。
重复上述过程直到完成整个序列的排序。
(a) 写出Maxsort 算法。
其中待排序序列为E ,含有n 个元素,脚标为范围为0,,1n -K 。
void Maxsort(Element[] E) { int maxID = 0;for (int i=E.length; i>1; i--) { for (int j=0; j<i; j++) {if (E[j] > E[maxID]) maxID = k; E[i] <--> E[maxID];(b) 说明在最坏情况下和平均情况下上述算法的比较次数。
最坏情况同平均情况是相同的都是11(1)()2n i n n C n i -=-==∑。
4.2:在以下的几个练习中我们研究一种叫做“冒泡排序”的排序算法。
该算法通过连续几遍浏览序列实现。
排序策略是顺序比较相邻元素,如果这两个元素未排序则交换这两个元素的位置。
也就说,首先比较第一个元素和第二个元素,如果第一个元素大于第二个元素,这交换这两个元素的位置;然后比较第二个元素与第三个元素,按照需要交换两个元素的位置;以此类推。
(a)起泡排序的最坏情况为逆序输入,比较次数为11(1)()2n i n n C n i -=-==∑。
(b) 最好情况为已排序,需要(n-1)次比较。
4.3: (a)归纳法:当n=1时显然成立,当n=2时经过一次起泡后,也显然最大元素位于末尾;现假设当n=k-1是,命题也成立,则当n=k 时,对前k-1个元素经过一次起泡后,根据假设显然第k-1个元素是前k-1个元素中最大的,现在根据起泡定义它要同第k 个元素进行比较,当k 元素大于k-1元素时,它为k 个元素中最大的,命题成立;当k 元素小于k-1元素时,它要同k-1交换,这时处于队列末尾的显然时队列中最大的元素。
31 32.1 用二分法求方程 x3x 1 0在1, 2 的近似根,要求误差不超过 10 3至少要二分多少?2解:给定误差限 =0.5×10-3,使用二分法时,误差限为x *x k 1k 1 (b a) 只要取 k 满足 k 11 (b a) 即可,亦即 lg(b a) lg lg0.5 3lg10 k 1 1 9.96678lg 2 lg2只要取 n = 10.2.3 证明方程 1 - x –sin x =0 在区间[0, 1] 内有一个根,使用二分法求误差不超过0.5 ×10-4的根要二分多少次? 证明 令 f(x)= 1-x -sinx ,∵ f(0)=1>0 , f(1)= - sin1<0∴ f(x)=1-x -sin x=0在[0,1]有根.又f ( x)=-1 - cosx< 0 ( x [0.1]), 故 f(x) 在[0 ,1]单调减少,所以 f(x) 在区间 [0 ,1] 内有唯一实根 .给定误差限 = 0.5×10-4,使用二分法时,误差限为 x * x k 1k 1 (b a) 只要取k 满足k 1 1 (b a) 即可,亦即lg(b a) lg lg 0.5 4lg10 k 1 1 13.287 7lg 2 lg2只要取 n = 14.322.4 方程 x3x 21 0在 x =1.5 附近有根,把方程写成四种不同的等价形式,并建立相应的迭代 公式:(1)x 1 12 ,迭代公式 x k 1 1 12 (2)x3 1 x 2 ,迭代公式 x k 1 31 x k 2x2 k 1x k2(3) x21,迭代公式 xk 1 1(4) xx 31 ,迭代公式 x k 1 x k 31x 1 k 1xk 1试分析每种迭代公式的收敛性,并选取一种收敛迭代公式求出具有四位有效数字的近似根。
12解:( 1)令f (x) 1 2 ,则 f (x) 23 ,由于x 2 x 321f (x) 3 3 0.59 1 ,因而迭代收敛。
数值分析(p11页)4 试证:对任给初值x 0,0)a >的牛顿迭代公式112(),0,1,2,......k ak k x x x k +=+= 恒成立下列关系式:2112(1)(,0,1,2,....(2)1,2,......kk k x k x x k x k +-=-=≥=证明:(1)(21122k k k k k kx a x x x x +-⎫⎛-=+==⎪ ⎝⎭(2) 取初值00>x ,显然有0>k x ,对任意0≥k ,a a x a x x a x x k k k k k ≥+⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎭⎫ ⎝⎛+=+2121216 证明:若k x 有n 位有效数字,则n k x -⨯≤-110218, 而()k k k k k x x x x x 288821821-=-⎪⎪⎭⎫⎝⎛+=-+ nnk k x x 2122110215.22104185.28--+⨯=⨯⨯<-∴>≥ 1k x +∴必有2n 位有效数字。
8 解:此题的相对误差限通常有两种解法. ①根据本章中所给出的定理:(设x 的近似数*x 可表示为m n a a a x 10......021*⨯±=,如果*x 具有l 位有效数字,则其相对误差限为()11**1021--⨯≤-l a x x x ,其中1a 为*x 中第一个非零数)则7.21=x ,有两位有效数字,相对误差限为025.010221111=⨯⨯≤--x x e 71.22=x ,有两位有效数字,相对误差限为025.010221122=⨯⨯≤--x x e 3 2.718x =,有两位有效数字,其相对误差限为:00025.010221333=⨯⨯≤--x e x ②第二种方法直接根据相对误差限的定义式求解 对于7.21=x ,0183.01<-e x∴其相对误差限为00678.07.20183.011≈<-x e x 同理对于71.22=x ,有003063.071.20083.022≈<-x e x 对于718.23=x ,有00012.0718.20003.033≈<-x e x备注:(1)两种方法均可得出相对误差限,但第一种是对于所有具有n 位有效数字的近似数都成立的正确结论,故他对误差限的估计偏大,但计算略简单些;而第二种方法给出较好的误差限估计,但计算稍复杂。
习题一1. 在3位十进制计算机上分别从左到右及从右到左计算:34.53+0.035 24+0.046 219+0.048 9+0.032 7,说明那个结果较为准确。
解:(1)从左到右计算:34.53+0.035 24+0.046 219+0.048 9+0.032 7=0.345×102+0.35 2×10-1+0.46 2×10-1+0.48 9×10-1+0.32 7×10-1 =0.345×102+0.000×102+0.46 2×10-1+0.48 9×10-1+0.32 7×10-1 =0.345×102+0.46 2×10-1+0.48 9×10-1+0.32 7×10-1 =0.345×102+0.000×102+0.48 9×10-1+0.32 7×10-1 =0.345×102+0.48 9×10-1+0.32 7×10-1 ……=0.345×102 =34.5(2)从右到左计算:34.53+0.035 24+0.046 219+0.048 9+0.032 7=0.345×102+0.35 2×10-1+0.46 2×10-1+0.48 9×10-1+0.32 7×10-1 =0.345×102+0.000×102+0.46 2×10-1+0.81 6×10-1 =0.345×102+0.46 2×10-1+1.27 8×10-1 =0.345×102+0.46 2×10-1+0.127 8×100 =0.345×102+0.46 2×10-1+0.128×100 =0.345×102+0.046 ×100+0.128×100 =0.345×102+0.174 ×100 =0.345×102+0.00174 ×102 =0.345×102+0.002 ×102 =0.347×102 =34.7----------------------------------------------------------------------------------------------------------------------2. 用秦九韶算法计算4532)(23-+-=x x x x p 在x =2处的值。
第1章 数值计算引论1.1 内容提要一、误差的来源数值计算主要研究以下两类误差。
1. 截断误差数学模型的准确解与用数值方法求得的解的差称为截断误差,又称为方法误差。
这种误差常常是由用有限过程代替无穷过程时产生的误差。
例如,要计算级数∑∞==+++++1!1!1!31!211k k n的值,当用计算机计算时,用前n 项(有限项)的和∑==+++++nk k n 1!1!1!31!211来代替无穷项之和,即舍弃了n 项后边的无穷多项,因而产生了截断误差∑∞+=1!1n k k2. 舍入误差由于计算机字长为有限位,原始数据和四则运算过程中进行舍入所产生的误差称为舍入误差。
例如,用3.141 59表示圆周率π时产生的误差0.000 002 6…,用0.333 33表示1÷3的运算结果时所产生的误差1÷3-0.333 33 = 0.000 003 3…都是舍入误差。
二.近似数的误差表示1. 绝对误差设x *是准值x 的一个近似值,称**)(x x x e -=为近似值x *的绝对误差,简称误差。
令|)(|*x e 的一个上界为*ε,即***|||)(|ε≤-=x x x e把*ε称为近似数*x 的绝对误差限,简称误差限。
2. 相对误差设*x 是精确值x 的一个近似值,称xx x xx e **)(-=为近似值x *的相对误差。
在实际应用中常取***)(xx x x e r -=为*x 的相对误差。
令相对误差绝对值 |)(|*x e r 的一个上界为ε*r,即 ****|||||)(|r r x x x x e ε≤-=把ε*r称为近似数*x 的相对误差限。
3. 有效数字对有多位数字的准确值四舍五入原则得到其前若干位的近似值时,该近似值的绝对误差不超过末位的半个单位。
设数x 的近似值m n x x x x 10.021*⨯±= ,其中,i x 是0~9之间的任一个数,但i x ≠0,n i ,2,1=是正整数,m 是整数,若nm x x -⨯≤-1021||*则称*x 为x 的具有n 位有效数字的近似值,*x 准确到第n 位,n x x x ,,,21 是*x 的有效数字。
《计算方法教程(第二版)》习题答案第一章 习题答案1、浮点数系),,,(U L t F β共有 1)1()1(21++---L U t ββ 个数。
3、a .4097b .62211101110.0,211101000.0⨯⨯c .6211111101.0⨯4、设实数R x ∈,则按β进制可表达为:,1,,,3,2,011)11221(+=<≤<≤⨯++++++±=t t j jd d l t t d t t d dd x βββββββ按四舍五入的原则,当它进入浮点数系),,,(U L t F β时,若β211<+t d ,则 l tt d dd x fl ββββ⨯++±=)221()(若 β211≥+t d ,则 l tt d d d x fl ββββ⨯+++±=)1221()(对第一种情况:t l lt l t t d x fl x -++=⨯≤⨯+=-βββββ21)21(1)()(11对第二种情况:t l lt l t t d x fl x -++=⨯≤⨯--=-ββββββ21)21(1)(11就是说总有: tl x fl x -≤-β21)( 另一方面,浮点数要求 β<≤11d , 故有l x ββ1≥,将此两者相除,便得t x x fl x -≤-121)(β 5、a . 5960.1 b . 5962.1 后一种准确6、最后一个计算式:00025509.0原因:避免相近数相减,避免大数相乘,减少运算次数7、a .]!3)2(!2)2(2[2132 +++=x x x yb .)21)(1(22x x x y ++=c .)11(222-++=x x x yd . +-+-=!2)2(!6)2(!4)2(!2)2(2642x x x x y e .222qp p q y ++=8、01786.098.5521==x x9、 m )10(m f - 1 233406.0- 3 20757.0- 5 8.07 710计算宜采用:])!42151()!32141()!22131[()(2432 +⨯-+⨯-+⨯--=x x x f第二章 习题答案1、a .Tx )2,1,3(= b .Tx )1,2,1,2(--= c .无法解 2、a .与 b .同上, c .T T x )2188.1,3125.0,2188.1,5312.0()39,10,39,17(321---≈---=7、a .⎪⎪⎪⎪⎭⎫ ⎝⎛--⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎭⎫ ⎝⎛--⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛---14112111473123247212122123211231321213122 b . ⎪⎪⎪⎪⎪⎭⎫⎝⎛--⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎪⎪⎪⎭⎫⎝⎛----333211212110211221213231532223522121⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-=111211212130213221219、T x )3415.46,3659.85,1220.95,1220.95,3659.85,3415.46(1= T x )8293.26,3171.7,4390.2,4390.2,3171.7,8293.26(2= 10、T LDL 分解:)015.0,579.3,9.1,10(diag D =⎪⎪⎪⎪⎪⎭⎫⎝⎛=16030.07895.05.018947.07.019.01L Cholesky 分解⎪⎪⎪⎪⎪⎭⎫⎝⎛=1225.01408.10833.15811.18918.12333.12136.23784.18460.21623.3G 解:)1,1,2,2(--=x 12、16,12,1612111===∞A A A611,4083.1,61122212===∞A A A2)(940)()(12111===∞A Cond A Cond A Cond 524)(748)()(22221===∞A Cond A Cond A Cond⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛=--180.0000 180.0000- 30.0000 180.0000- 192.0000 36.0000- 30.0000 36.0000- 9.0000 ,0.0139 0.1111- 0.0694- 0.1111- 0.0556 0.1111- 0.0694- 0.1111- 0.0139 1211A A1151.372,1666.0212211==--A A15、 1A :对应 Seidel Gauss - 迭代收敛,Jacobi 迭代不收敛; 2A :对应 Seidel Gauss - 迭代收敛,Jacobi 迭代不收敛; 3A :对应 Seidel Gauss - 迭代收敛,Jacobi 迭代收敛;第三章 习题答案1、Lagrange 插值多项式:)80.466.5)(20.366.5)(70.266.5)(00.166.5()80.4)(20.3)(70.2)(00.1(7.51)66.580.4)(20.380.4)(70.280.4)(00.180.4()66.5)(20.3)(70.2)(00.1(3.38)66.520.3)(80.420.3)(70.220.3)(00.120.3()66.5)(80.4)(70.2)(00.1(0.22)66.570.2)(80.470.2)(20.370.2)(00.170.2()66.5)(80.4)(20.3)(00.1(8.17)66.500.1)(80.400.1)(20.300.1)(70.200.1()66.5)(80.4)(20.3)(70.2(2.14)(4--------⨯+--------⨯+--------⨯+--------⨯+--------⨯=x x x x x x x x x x x x x x x x x x x x x LNewton 插值多项式:)80.4)(20.3)(70.2)(00.1(21444779.0)20.3)(70.2)(00.1(527480131.0)70.2)(00.1(855614973.2)00.1(117647059.22.14)(4----+------+-+=x x x x x x x x x x x N2、设)(x y y =,其反函数是以y 为自变量的函数)(y x x =,对)(y x 作插值多项式:)1744.0)(1081.0)(4016.0)(7001.0(01253.0)1081.0)(4016.0)(7001.0(01531.0)4016.0)(7001.0(009640.0)7001.0(3350.01000.0)(----+---+--+--=y y y y y y y y y y y N3376.0)0(=N 是0)(=x y 在]4.0,3.0[中的近似根。
2.1 证明方程043=-+x x 在区间[1,2]内有且仅有一个根。
如果用二分法求它具有五位有效数字的根,试问需对分多少次?(不必求根) 14,10log 4,10210211021212||2451*11=≥>⨯=⨯=<=---++K k a b k n m k k ε 2.2 用二分法求方程0134=+-x x 在[0.3, 0.4]内的一个根, 精度要求21021-⨯=ε。
k a b x f(x)0 0.300 0.350 0.325 0.0361 0.325 0.350 0.337 0.0002 0.337 0.350 0.344 -0.0173 0.337 0.344 0.341 -0.0084 0.337 0.341 0.339 -0.004x=0.3392.3 找出下列方程的有根区间,选择适当的初始点用二分法求方程的根,精度要求210-=ε2.3-1 x=0.645 2.3-2x=1.78 2.3-3x=1.13 2.3-4 x=0.9182.4 考虑方程032=-x e x ,将其改写为3xe x ±=,取00=x ,用两种迭代公式迭代,分别收敛到1.0和-0.5附近的两个根(取精度要求310-=ε) (1) 910840.0,0.13*0===x x e x x, k x g(x)0 0.951890 0.9292651 0.929265 0.9188122 0.918812 0.9140223 0.914022 0.9118364 0.911836 0.9108405 0.910840 0.910386(2) 459075.0,5.03-*0-=-==x x e x x, k x g(x)0 -0.449641 -0.4611061 -0.461106 -0.4584712 -0.458471 -0.4590753 -0.459075 -0.4589362.5 为求方程0123=--x x 在5.1=x 附近的一个根,建立下列形式的迭代公式:(1) 2121111kk x x x x +=⇒+=+,; )7.1,3.1(,7.1)(3.1∈≤≤x x g)7.1,3.1(,191.0/2)(3∈<≤='x x x g ,收敛,1.489(2) 3212311k k x x x x +=⇒+=+,;)2,1(,2)(1∈≤≤x x g)2,1(,1)1(61)(3/22∈<+='x x x x g ,收敛,1.465 (3) 111112-=⇒-=+k k x x x x , )6.1,4.1(,107.1)1(21)(2/3∈>≥-='x x x g ,发散 2.6 考虑用迭代法求解下列方程: (1) )2(312x e x x +-=- 0.608 (2) x x -=50.467 (3) 27475.1--+=x x x 6 2.7 用迭代法的思想,给出求22222+++++ 的迭代公式,并证明:222222lim =+++++∞→nn 。