数值分析13-5.2直接三角分解法
- 格式:ppt
- 大小:1.78 MB
- 文档页数:67
计算⽅法各习题及参考答案第⼆章数值分析2.1 已知多项式432()1p x x x x x =-+-+通过下列点:试构造⼀多项式()q x 通过下列点:答案:54313()()()3122q x p x r x x x x x =-=-++-+. 2.2 观测得到⼆次多项式2()p x 的值:表中2()p x 的某⼀个函数值有错误,试找出并校正它.答案:函数值表中2(1)p -错误,应有2(1)0p -=.2.3 利⽤差分的性质证明22212(1)(21)/6n n n n +++=++ .2.4 当⽤等距节点的分段⼆次插值多项式在区间[1,1]-近似函数xe 时,使⽤多少个节点能够保证误差不超过61102-?.答案:需要143个插值节点.2.5 设被插值函数4()[,]f x C a b ∈,()3()h H x 是()f x 关于等距节点01n a x x x b =<<<= 的分段三次艾尔⽶特插值多项式,步长b a h n-=.试估计()3||()()||h f x H x ∞-.答案:()443||()()||384h M f x H x h ∞-≤.第三章函数逼近3.1 求()sin ,[0,0.1]f x x x =∈在空间2{1,,}span x x Φ=上最佳平⽅逼近多项式,并给出平⽅误差.答案:()sin f x x =的⼆次最佳平⽅逼近多项式为-522sin ()0.832 440 710 1.000 999 10.024 985 1x p x x x ≈=-?+-,⼆次最佳平⽅逼近的平⽅误差为0.122-1220(sin )())0.989 310 710x p x dx δ=-=??.3.2 确定参数,a b c 和,使得积分2121(,,)[I a b c ax bx c -=++-?取最⼩值.答案:810, 0, 33a b c ππ=-== 3.3 求多项式432()251f x x x x =+++在[1,1]-上的3次最佳⼀致逼近多项式()p x .答案:()f x 的最佳⼀致逼近多项式为323()74p x x x =++. 3.4 ⽤幂级数缩合⽅法,求() (11)x f x e x =-≤≤上的3次近似多项式6,3()p x ,并估计6,3||()()||f x p x ∞-.答案:236,3()0.994 574 650.997 395 830.542 968 750.177 083 33p x x x x =+++, 6,3||()()||0.006 572 327 7f x p x ∞-≤3.5 求() (11)xf x e x =-≤≤上的关于权函数()x ρ=的三次最佳平⽅逼近多项式3()S x ,并估计误差32||()()||f x S x -和3||()()||f x S x ∞-.答案:233()0.994 5710.997 3080.542 9910.177 347S x x x x =+++,32||()()||0.006 894 83f x S x -=,3||()()||0.006 442 575f x S x ∞-≤.第四章数值积分与数值微分4.1 ⽤梯形公式、⾟浦⽣公式和柯特斯公式分别计算积分1(1,2,3,4)n x dx n =?,并与精确值⽐较.答案:计算结果如下表所⽰4.2 确定下列求积公式中的待定参数,使得求积公式的代数精度尽量⾼,并指明所确定的求积公式具有的代数精度.(1)101()()(0)()hh f x dx A f h A f A f h --≈-++?(2)11211()[(1)2()3()]3f x dx f f x f x -≈-++? (3)20()[(0)()][(0)()]2h h f x dx f f h h f f h α''≈++-?答案:(1)具有三次代数精确度(2)具有⼆次代数精确度(3)具有三次代数精确度.4.3 设10h x x =-,确定求积公式12300101()()[()()][()()][]x x x x f x dx h Af x Bf x h Cf x Df x R f ''-=++++?中的待定参数,,,A B C D ,使得该求积公式的代数精确度尽量⾼,并给出余项表达式.答案:3711,,,20203020A B C D ====-,(4)6()[]1440f R f h η=,其中01(,)x x η∈.4.4 设2()P x 是以0,,2h h 为插值点的()f x 的⼆次插值多项式,⽤2()P x 导出计算积分30()hI f x dx =?的数值积分公式h I ,并⽤台劳展开法证明:453(0)()8h I I h f O h '''-=+.答案:3203()[(0)3(2)]4h h I p x dx h f f h ==+?.4.5 给定积分10sin xI dx x =(1)运⽤复化梯形公式计算上述积分值,使其截断误差不超过31102-?.(2)取同样的求积节点,改⽤复化⾟浦⽣公式计算时,截断误差是多少?(3)要求的截断误差不超过610-,若⽤复化⾟浦⽣公式,应取多少个节点处的函数值?答案:(1)只需7.5n ≥,取9个节点,0.946I ≈(2)4(4)46111|[]||()|()0.271102880288045n b a R f h f η--=-≤=? (3)取7个节点处的函数值.4.6 ⽤变步长的复化梯形公式和变步长的复化⾟浦⽣公式计算积分10sin xI dx x =?.要求⽤事后误差估计法时,截断误不超过31102-?和61102-?.答案:使⽤复化梯形公式时,80.946I T ≈=满⾜精度要求;使⽤复化⾟浦⽣公式时,40.946 083I s ≈=满⾜精度要求.4.7(1)利⽤埃尔⽶特插值公式推导带有导数值的求积公式2()()[()()][()()][]212ba b a b a f x dx f a f b f b f a R f --''=+--+?,其中余项为 5(4)()[](), (,)4!30b a R f f a b ηη-=∈.(2)利⽤上述公式推导带修正项的复化梯形求积公式020()[()()]12Nx N N x h f x dx T f x f x ''≈--?,其中 0121[()2()2()2()()]2N N N hT f x f x f x f x f x -=+++++ ,⽽ 00, (0,1,2,,), i N x x ih i N Nh x x =+==- .4.8 ⽤龙贝格⽅法计算椭圆2214x y +=的周长,使结果具有五位有效数字.答案:49.6884l I =≈.4.9确定⾼斯型求积公式0011()()()x dx A f x A f x ≈+?的节点0x ,1x 及系数0A ,1A .答案:00.289 949x =,10.821 162x =,00.277 556A =,10.389 111A =.4.10 验证⾼斯型求积公式00110()()()x e f x dx A f x A f x +∞-≈+?的系数及节点分别为0001 2 2A A x x ===-=+第五章解线性⽅程组的直接法5.1 ⽤按列选主元的⾼斯-若当消去法求矩阵A 的逆矩阵,其中11121 0110A -?? ?= ? ?-??.答案: 1110331203321133A -?? ? ?=---5.2 ⽤矩阵的直接三⾓分解法解⽅程组1234102050101312431701037x x x x= ? ? ? ? ? ? ? ? ??答案: 42x =,32x =,21x =,11x =.5.3 ⽤平⽅根法(Cholesky 分解法)求解⽅程组12341161 4.25 2.750.51 2.75 3.5 1.25x x x -?????? ??? ?-=- ??? ? ??? ???????答案: 12x =,21x =,31x =-.5.4 ⽤追赶法求解三对⾓⽅程组123421113121112210x x x x ?????? ? ? ? ? ? ?= ? ? ? ? ? ? ? ? ?????答案:42x =,31x =-,21x =,10x =.第六章解线性代数⽅程组的迭代法6.1对⽅程1212123879897x x x x x x x -+=??-+=??--=?作简单调整,使得⽤⾼斯-赛得尔迭代法求解时对任意初始向量都收敛,并取初始向量(0)[0 0 0]T x =,⽤该⽅法求近似解(1)k x+,使(1)()3||||10k k x x +-∞-≤.答案:近似解为(4)[1.0000 1.0000 1.0000]Tx =.6.2讨论松弛因⼦ 1.25ω=时,⽤SOR ⽅法求解⽅程组121232343163420412x x x x x x x +=??+-=??-+=-? 的收敛性.若收敛,则取(0)[0 0 0]T x=迭代求解,使(1)()41||||102k k x x +-∞-<.答案:⽅程组的近似解为*1 1.50001x =,*2 3.33333x =,*3 2.16667x =-.6.3给定线性⽅程组Ax b =,其中111221112211122A ?? ? ?=,证明⽤雅可⽐迭代法解此⽅程组发散,⽽⾼斯-赛得尔迭代法收敛.6.4设有⽅程组112233302021212x b x b x b -?????? ??? ?= ??? ? ??? ?-??????,讨论⽤雅可⽐⽅法和⾼斯-赛得尔⽅法解此⽅程组的收敛性.如果收敛,⽐较哪种⽅法收敛较快.答案:雅可⽐⽅法收敛,⾼斯-赛得尔⽅法收敛,且较快.6.5设矩阵A ⾮奇异.求证:⽅程组Ax b =的解总能通过⾼斯-赛得尔⽅法得到.6.6设()ij n nA a ?=为对称正定矩阵,对⾓阵1122(,,,)nn D diag a a a = .求证:⾼斯-赛得尔⽅法求解⽅程组1122D AD x b --=时对任意初始向量都收敛.第七章⾮线性⽅程求根例7.4对⽅程230xx e -=确定迭代函数()x ?及区间[,]a b ,使对0[,]x a b ?∈,迭代过程1(), 0,1,2,k x x k ?+== 均收敛,并求解.要求51||10k k x x -+-<.答案:若取2()x x ?=,则在[1,0]-中满⾜收敛性条件,因此迭代法121, 0,1,2,k x k x k +== 在(1,0)-中有惟⼀解.取00.5x =-,*70.458960903x x ≈=-.取2()x x ?=,在[0,1上满⾜收敛性条件,迭代序列121, 0,1,2,k x k x k +== 在[0,1]中有惟⼀解.取00.5x =,*140.910001967x x ≈=- 在[3,4]上,将原⽅程改写为23xe x =,取对数得2ln(3)()x x x ?==.满⾜收敛性条件,则迭代序列21ln(3), 0,1,2,k k x x k +== 在[3,4]中有惟⼀解.取0 3.5x =, *16 3.733067511x x ≈=.例7.6对于迭代函数2()(3)x x c x ?=+-,试讨论:(1)当c 为何值时,1()k k x x ?+=产⽣的序列{}k x(2)c 取何值时收敛最快?(3)取1,2c =-()x ?51||10k k x x -+-<.答案:(1)(c ∈时迭代收敛.(2)c =时收敛最快.(3)分别取1, 2c =--,并取0 1.5x =,计算结果如下表7.7所⽰表7.7例7.13 设不动点迭代1()k x x ?+=的迭代函数()x ?具有⼆阶连续导数,*x 是()x ?的不动点,且*()1x ?'≠,证明Steffensen 迭代式21(), (), 0,1,2,()2k k k k k k k k k k k y x z x k y x x x z y x+===-?=-?-+?⼆阶收敛于*x .例7.15 设2()()()()()x x p x f x q x f x ?=--,试确定函数()p x 和()q x ,使求解()0f x =且以()x ?为迭代函数的迭代法⾄少三阶收敛.答案:1()()p x f x =',31()()2[()]f x q x f x ''=' 例7.19 设()f x 在[,]a b 上有⾼阶导数,*(,)x a b ∈是()0f x =的(2)m m ≥重根,且⽜顿法收敛,证明⽜顿迭代序列{}k x 有下列极限关系:111lim2k kk k k k x x m x x x -→∞-+-=-+.第⼋章矩阵特征值8.1 ⽤乘幂法求矩阵A 的按模最⼤的特征值与对应的特征向量,已知5500 5.51031A -?? ?=- ? ?-??,要求(1)()611||10k k λλ+--<,这⾥()1k λ表⽰1λ的第k 次近似值.答案:15λ≈,对应的特征向量为[5,0,0]T-;25λ≈-,对应的特征向量为[5,10,5]T --. 8.2 ⽤反幂法求矩阵110242012A -??=-- -的按模最⼩的特征值.知A 的按模较⼤的特征值的近似值为15λ=,⽤5p =的原点平移法计算1λ及其对应的特征向量.答案:(1) A 的按模最⼩的特征值为30.2384428λ≈(2) 1 5.1248854λ≈,对应的特征向量为(8)[0.242 4310, 1 ,0.320 011 7]T U =--.8.3 设⽅阵A 的特征值都是实数,且满⾜121, ||||n n λλλλλ>≥≥> ,为求1λ⽽作原点平移,试证:当平移量21()2n p λλ=+时,幂法收敛最快. 8.4 ⽤⼆分法求三对⾓对称⽅阵1221221221A ?? ? ?= ? ? ???的最⼩特征值,使它⾄少具有2位有效数字.答案:取5 2.234375λ≈-即有2位有效数字.8.5 ⽤平⾯旋转变换和反射变换将向量[2 3 0 5]T x =变为与1[1 0 0 0]Te =平⾏的向量.答案:203/2/00001010/0T ??- ?=--?0.324 442 8400.486 664 26200.811 107 1040.486 664 2620.812 176 04800.298 039 92200100.811 107 1040.298 039 92200.530 266 798H --??--= ? ?--8.6 若532644445A -??=- -,试把A 化为相似的上Hessenberg 阵,然后⽤QR ⽅法求A 的全部特征值.第九章微分⽅程初值问题的数值解法9.1 ⽤反复迭代(反复校正)的欧拉预估-校正法求解初值问题0, 0<0.2(0)1y y x y '+=≤??=?,要求取步长0.1h =,每步迭代误差不超过510-.答案: [4]11(0.1)0.904 762y y y ≈==,[4]22(0.2)0.818 594y y y ≈==9.2 ⽤⼆阶中点格式和⼆阶休恩格式求初值问题2, 0<0.4(0)1dy x y x dx y ?=+≤=?的数值解(取步长0.2h =,运算过程中保留五位⼩数).答案:⽤⼆阶中点格式,取初值01y =计算得0n =时,1211.000 00, 1.200 00, (0.2)=1.240 00K K y y ==≈ 1n =时,1221.737 60, 2.298 72, (0.4)=1.699 74K K y y ==≈⽤⼆阶休恩格式,取初值01y =计算得0n =时,1211.000 00, 1.266 67, (0.2)=1.240 00K K y y ==≈ 1n =时,1221.737 60, 2.499 18, (0.4)=1.701 76K K y y ==≈9.3 ⽤如下四步四阶阿达姆斯显格式1123(5559379)/24n n n n n n y y h f f f f +---=+-+-求初值问题, (0)1y x y y '=+=在[0,0.5]上的数值解.取步长0.1h =,⼩数点后保留8位.答案:4(0.4)0.583 640 216y y ≈=,5(0.5) 1.797 421 984y y ≈=. 9.4 为使⼆阶中点公式1(,(,))22n n n n n n h hy y hf x y f x y +=+++,求解初值问题 , (0)y y y aλλ'=-??=?为实常数绝对稳定,试求步长h 的⼤⼩应受到的限制条件.答案:2h λ≤.9.5 ⽤如下反复迭代的欧拉预估-校正格式(0)1(1)()111(,)[(,)(,)]2 0,1,2,; 0,1,2,nn n n k k n n n n n n y y hf x y h y y f x y f x y k n +++++?=+??=++??==,求解初值问题sin(), 01(0)1x y e xy x y '?=<≤?=?时,如何选择步长h ,使上述格式关于k 的迭代收敛.答案:2h e<时上述格式关于k 的迭代是收敛的.9.6 求系数,,,a b c d ,使求解初值问题0(,), ()y f x y y x a '==的如下隐式⼆步法221()n n n n n y ay h bf cf df +++=+++的误差阶尽可能⾼,并指出其阶数.答案:系数为142,,33a b d c ====,此时⽅法的局部截断误差阶最⾼,为五阶5()O h .9.7 试⽤欧拉预估-校正法求解初值问题, (0)=1, 0<0.2()/, (0)2dyxy z y dxx dz x y z z dx=-≤=+=,取步长0.1h =,⼩数点后⾄少保留六位.答案:由初值00(0)1, (0)2y y z z ====可计算得110.800 000z 2.050 000y =??=? , 11(0.1)0.801 500(0.1) 2.046 951y y z z ≈=??≈=? 220.604 820z 2.090 992y =??=? , 22 (0.2)0.604 659(0.2) 2.088 216y y z z ≈=??≈=?。
实验六高斯列主元消去法和直接三角分解法(LU分解)一、实验名称:分别用高斯列主元消去法和直接三角分解法(LU分解)求方程组的解系数矩阵:10 7 8 7 常向量:107 5 6 5 88 6 10 9 67 5 9 10 7精确解为:(-60,102,-27,16)二、试验目的:分别用高斯列主元消去法和直接三角分解法(LU分解)求方程组的解,比较二者不同的特点。
三、算法描述:2、直接三角分解法(LU分解)四、源程序:1、高斯列主元消去法#include <stdio.h>void main(){float a[4][4]={{10,7,8,7},{7,5,6,5},{8,6,10,9},{7,5,9,10}}, y[4],c[4][4],x[4],d[4],m,b; int i,n,j,f;printf("请输入右端项:\n");for(i=0;i<=3;i++)scanf("%f",&y[i]);for(n=0;n<=2;n++){ m=a[n][n]; f=n;for(i=(n+1);i<=3;i++){if(m<a[i][n]){m=a[i][n]; f=i;}}if(f!=n){for(j=0;j<=3;j++){c[n][j]=a[n][j]; a[n][j]=a[f][j];a[f][j]=c[n][j];}d[n]=y[n]; y[n]=y[f]; y[f]=d[n];}for(i=(n+1);i<=3;i++){b=-a[i][n]/a[n][n];for(j=0;j<=3;j++)a[i][j]=a[n][j]*b+a[i][j];y[i]=y[n]*b+y[i];}}x[3]=y[3]/a[3][3];x[2]=(y[2]-a[2][3]*x[3])/a[2][2];x[1]=(y[1]-a[1][3]*x[3]-a[1][2]*x[2])/a[1][1];x[0]=(y[0]-a[0][3]*x[3]-a[0][2]*x[2]-a[0][1]*x[1])/a[0][0];printf("x1的值为%f\nx2的值为%f\nx3的值为%f\nx4的值为%f\n",x[0],x[1],x[2],x[3]);}2、直接三角分解法(LU分解)#include <stdio.h>void main (){float a[4][4]={{10,7,8,7},{7,5,6,5},{8,6,10,9},{7,5,9,10}},y[4], l[4][4],x[4],u[4][4],b[4]; int i,n,j;printf("请输入右端项:");for(i=0;i<=2;i++)scanf ("%f",&b[i]);for (i=0;i<=3;i++){ u[0][i]=a[0][i];l[i][0]=a[i][0]/u[0][0];}for (n=1;n<=2;n++){for(j=0;j<=(3-n);j++){u[n][n+j]=a[n][n+j];for (i=0;i<n;i++)u[n][n+j]=u[n][n+j]-l[n+j][i]*u[i][n]; }if (n=1){l[2][1]=(a[2][1]-l[2][0]*u[0][1])/u[1][1]; l[3][1]=(a[3][1]-l[3][0]*u[0][1])/u[1][1]; } else if (n=2){l[3][2]=(float)(a[3][2]-l[3][0]*u[0][2]-l[3][1]*u[1][2])/u[2][2]; } }for (n=0;n<=3;n++){y[n]=b[n];for (i=0;i<n;i++)y[n]=y[n]-l[n][i]*y[i]; }for (n=3;n>=0;n--){x[n]=y[n];for (i=3;i>n;i--)x[n]=(x[n]-u[n][i]*x[i]);x[n]=x[n]/u[n][n]; }for(i=0;i<=3;i++)printf("x%d的的值为:%f\n",i+1,x[i]); }五、输出结果1、高斯列主元消去法(1)请输入右端项:10 8 6 7X1的值为-59.999584X1的值为101.999306X1的值为-26.999817X1的值为15.999890(2)请输入右端项:5 6 7 8X1的值为-98.999306X1的值为163.998840X1的值为-40.999695X1的值为24.999817六、对算法的理解和改进改变右端项会对结果产生明显的影响,高斯列主元消去法仅考虑依次按列选取主元素,然后按行使之变到主元位置,再进行消去运算,消元结果冲掉A,计算解X冲掉常数项b,则在计算过程中由于右端项的不同解必然不同。