数值分析——线性方程组直接解法Hilbert矩阵
- 格式:docx
- 大小:55.34 KB
- 文档页数:7
实验五 解线性方程组的直接方法实验5.1 (主元的选取与算法的稳定性)问题提出:Gauss 消去法是我们在线性代数中已经熟悉的。
但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss 消去法作为数值算法的稳定性呢?Gauss 消去法从理论算法到数值算法,其关键是主元的选择。
主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。
实验内容:考虑线性方程组n n n R b R A b Ax ∈∈=⨯,,编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss消去过程。
实验要求:(1)取矩阵⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=1415157,6816816816M O O O b A ,则方程有解T x )1,,1,1(*Λ=。
取n=10计算矩阵的条件数。
让程序自动选取主元,结果如何?(2)现选择程序中手动选取主元的功能。
每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。
若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。
(3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。
(4)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。
重复上述实验,观察记录并分析实验结果。
思考题一:(Vadermonde 矩阵)设⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=∑∑∑∑====n i i n n i i n i i n i i n n n n n n n x x x x b x x x x x x x x x x x x A 002010022222121102001111M ΛM ΛM M M ΛΛΛ,, 其中,n k k x k ,,1,0,1.01Λ=+=,(1)对n=2,5,8,计算A 的条件数;随n 增大,矩阵性态如何变化?(2)对n=5,解方程组Ax=b ;设A 的最后一个元素有扰动10-4,再求解Ax=b(3)计算(2)扰动相对误差与解的相对偏差,分析它们与条件数的关系。
Hilbert 代数方程组的数值解法1 Hilbert 矩阵的条件数和矩阵的阶数的关系编制Matlab 程序:clear,clc format long %format short for n=1:14; A=hilb(n); %A=rand(n);condA(n)=cond(A,inf); endplot(log10(condA)) 得出图形图1:Hilbert 矩阵和阶次的关系由图可见a.Hilbert 矩阵的2-条件数的对数与阶次近似正比;b.阶次超过12后,计算困难,舍入误差会导致计算不准 结论:Hilbert 矩阵的2-条件数随阶次指数增长,关系大概是: Log 10(Cond(A))= 1.33791720780254(n-1)0246810121424681012141618nl o g 10(c o n d A )条件数的对数-阶次2.各种求解方法的对比2.1 直接法:Gauss 消去方法(程序见附录,下同)在双精度型变量下,即eps=2.220446049250313e-016,对于直接法Gauss 消去方法,求解Hilbert 矩阵方程组,在阶次n=13时,解得: X=[1 0.99997 1.0013 0.97881 1.1906 -0.035441 4.6171 -7.3967 14.089 -12.542 9.9162 -2.3817 1.5624]出现明显错误,可见Gauss 消去方法对病态问题比较敏感。
求解阶次不高。
2.2 Jacobi 迭代法很遗憾,jakobi 迭代法的迭代矩阵的谱半径随阶次线性上升(程序见附录2),普遍大于1,计算结果发送,无法迭代出满意的结果。
需放弃图2:Jacobi 迭代矩阵的谱半径2.3 Gauss-Seidel 迭代与SOR 迭代求解先分析SOR 迭代矩阵的谱半径和松弛因子w 的关系0510152025510152025阶次谱半径Jacobi 迭代收敛性分析图3:SOR 迭代矩阵的谱半径和松弛因子w 的关系可以发现SOR 迭代和G-S 迭代的谱半径都普遍接近于1,因此松弛因子的选择对计算结果的影响不大。
1 / 7 数值分析课程实验报告题目:病态线性方程组的求解理论分析表明,数值求解病态线性方程组很困难。
考虑求解如下的线性方程组的求解Hx = b ,期中,期中H 是Hilbert 矩阵,()ij n n H h ´=,11ij h i j =+-,i ,j = 1,2,…,n 1.估计矩阵的2条件数和阶数的关系2.对不同的n ,取(1,1,,1,1))nx =Î,分别用Gauss 消去,Jacobi 迭代,Gauss-seidel 迭代,SOR 迭代和共轭梯度法求解,比较结果。
3.结合计算结果,试讨论病态线性方程组的求解。
解答过程1.估计矩阵的2-条件数和阶数的关系矩阵的2-条件数定义为:1222()Cond A A A-=´,将Hilbert 矩阵带入有:1222()Cond H H H -=´调用自编的Hilbert_Cond 函数对其进行计算,取阶数n = 50,可得从,可得从1阶到50阶的2-条件数,以五位有效数字输出,其中前10项见表1。
表1.前十阶Hilbert 矩阵的2-条件数阶数1 2 3 4 5 2-条件数1 19.281 524.06 1.5514e+004 4.7661e+005 阶数6 7 8 9 10 2-条件数1.4951e+007 4.7537e+008 1.5258e+010 4.9315e+011 1.6025e+013 从表1可以看出,随着阶数每递增1,Hilbert 矩阵的2-条件数都至少增加一个数量级,但难以观察出明显的相依规律。
故考虑将这些数据点绘制在以n 为横轴、Cond (H )2为纵轴的对数坐标系中(编程用Hilbert_Cond 函数同时完成了这个功能),生成结果如图1。
图1.不同阶数下Hilbert 矩阵的2-条件数分布条件数分布由图可见,当维数较小时,在y-对数坐标系中Cond (H )2与n 有良好的线性关系;但n 超过10后,线性趋势开始波动,n 超过14后更是几乎一直趋于平稳。
(Hilbert 矩阵)病态线性方程组的求解理论分析表明,数值求解病态线性方程组很困难。
考虑求解如下的线性方程组的求解Hx = b ,期中H 是Hilbert 矩阵,()ij n n Hh ,11ij h i j ,i ,j = 1,2,…,n 1.估计矩阵的2条件数和阶数的关系2.对不同的n ,取(1,1,,1)nx K ?,分别用Gauss 消去,Jacobi 迭代,Gauss-seidel 迭代,SOR 迭代和共轭梯度法求解,比较结果。
3.结合计算结果,试讨论病态线性方程组的求解。
第1小题:condition.m %第1小题程序t1=20;%阶数n=20x1=1:t1;y1=1:t1;for i=1:t1H=hilb(i);y1(i)=log(cond(H));endplot(x1,y1);xlabel('阶数n');ylabel('2-条件数的对数(log(cond(H))');title('2-条件数的对数(log(cond(H))与阶数n 的关系图');t2=200;%阶数n=200x2=1:t2;y2=1:t2;for i=1:t2H=hilb(i);y2(i)=log(cond(H));endplot(x2,y2);xlabel('阶数n');ylabel('2-条件数的对数(log(cond(H))');title('2-条件数的对数(log(cond(H))与阶数n 的关系图');画出Hilbert 矩阵2-条件数的对数和阶数的关系n=200时n=20时从图中可以看出,1)在n小于等于13之前,图像近似直线log(cond(H))~1.519n-1.8332)在n大于13之后,图像趋于平缓,并在一定范围内上下波动,同时随着n的增加稍有上升的趋势第2小题:solve.m%m第2小题主程序N=4000;xGauss=zeros(N,1);xJacobi=zeros(N,1);xnJ=zeros(N,1);xGS=zeros(N,1);xnGS=zeros(N,1);xSOR=zeros(N,1);xnSOR=zeros(N,1);xCG=zeros(N,1);xnCG=zeros(N,1);for n=1:N;x=ones(n,1);t=1.1;%初始值偏差x0=t*x;%迭代初始值e=1.0e-8;%给定的误差A=hilb(n);b=A*x;max=100000000000;%可能最大的迭代次数w=0.5;%SOR迭代的松弛因子G=Gauss(A,b);[J,nJ]=Jacobi(A,b,x0,e,max);[GS,nGS]=G_S(A,b,x0,e,max);[S_R,nS_R]=SOR(A,b,x0,e,max,w);[C_G,nC_G]=CG(A,b,x0,e,max);normG=norm(G'-x);xGauss(n)=normG;normJ=norm(J-x);nJ;xJacobi(n)=normJ;xnJ(n)=nJ;normGS=norm(GS-x);nGS;xGS(n)=normGS;xnGS(n)=nGS;normS_R=norm(S_R-x);nS_R;xSOR(n)=normS_R;xnSOR(n)=nS_R;normC_G=norm(C_G-x);nC_G;xCG(n)=normC_G;xnCG(n)=nC_G;endGauss.m%Gauss消去法function x=Gauss(A,b)n=length(b);l=zeros(n,n);x=zeros(1,n);%消去过程for i=1:n-1for j=i+1:nl(j,i)=A(j,i)/A(i,i);for k=i:nA(j,k)=A(j,k)-l(j,i)*A(i,k);endb(j)=b(j)-l(j,i)*b(i);endend%回代过程x(n)=b(n)/A(n,n);for i=n-1:-1:1c=A(i,:).*x;x(i)=(b(i)-sum(c(i+1:n)))/A(i,i);endJacobi.m%Jacobi迭代,x0表示迭代初值,e表示允许误差(迭代停止条件),n表示迭代次数,m 可能最大的迭代次数function [x,n]=Jacobi(A,b,x0,e,m)n=length(A);D=diag(diag(A));U=-triu(A,1);L=-tril(A,-1);B=D\(L+U);f=D\b;x=B*x0+f;n=1;while norm(x-x0)>ex0=x;x=B*x0+f;n=n+1;if n>mdisp('Jacobi迭代次数过多,迭代可能不收敛');break;endendG_S.m%Gauss-Seidel迭代,x0表示迭代初值,e表示允许误差(迭代停止条件),n表示迭代次数,m可能最大的迭代次数function [x,n]=G_S(A,b,x0,e,m)n=length(A);D=diag(diag(A));U=-triu(A,1);L=-tril(A,-1);B=(D-L)\U;f=(D-L)\b;x=B*x0+f;n=1;while norm(x-x0)>ex0=x;x=B*x0+f;n=n+1;if n>mdisp('Gauss-Seidel迭代次数过多,迭代可能不收敛');break;endendSOR.m%SOR超松弛迭代,x0表示迭代初值,e表示允许误差(迭代停止条件),n表示迭代次数,m可能最大的迭代次数,w松弛因子function [x,n]=SOR(A,b,x0,e,m,w)n=length(A);D=diag(diag(A));U=-triu(A,1);L=-tril(A,-1);B=(D-w*L)\((1-w)*D+w*U);f=(D-w*L)\b*w;x=B*x0+f;n=1;while norm(x-x0)>ex0=x;x=B*x0+f;n=n+1;if n>mdisp('SOR超松弛迭代次数过多,迭代可能不收敛');break;endendCG.m%CG共轭梯度法,x0表示迭代初值,e表示允许误差(迭代停止条件),n表示迭代次数,m可能最大的迭代次数function [x,n]=CG(A,b,x0,e,m)r=b-A*x0;p=r;alpha=(r'*r)/(p'*(A*p));x=x0+alpha*p;r1=b-A*x;n=1;while norm(r1)>ebelta=(r1'*r1)/(r'*r);p=r1+belta*p;r=r1;x0=x;alpha=(r'*r)/(p'*(A*p));x=x0+alpha*p;r1=b-A*x;n=n+1;if n>mdisp('CG共轭梯度法迭代次数过多,迭代可能不收敛');break;endend。
病态线性代数方程组的求解理论的分析表明,求解病态的线性代数方程组是困难的。
考虑方程组Hx = b 的求解,其中H 为Hilbert 矩阵,n n ij h H ⨯=)(,11-+=j i h ij ,n j i ,...,2,1,=1. 估计Hilbert 矩阵2-条件数与阶数的关系;2. 选择问题的不同维数,分别用Gauss 消去法,Jacobi 迭代,GS 迭代和SOR 迭代求解,比较结果;3. 讨论病态问题求解的算法。
解: 1、取Hilbert 矩阵阶数最高分别为n=20和n=100。
采用Hilbert 矩阵的2-条件数作为实验的比较对象,画出的曲线如下图所示:lg(())n cond H n从图中可以看出,在n ≤13之前,图像接近直线,在n >13之后,图像趋于平缓,在一定的范围内上下波动。
为了比较图像的线性部分,作出一条直线与已知曲线进行比较。
比较直线的关系式为:833.1519.1))(lg(-=n H cond n ,结果下图所示。
nl g (c o n d (H n ))lg(cond(Hn))~n 关系图从图2中可以看出,当n 较小时,n H cond n ~))(lg(之间近似满足线性关系。
当n 继续增大到100时,n H cond n ~))(lg(关系图下图所示:从图中可以看出,图像的走势符合在n=20时的猜想,在n 大于一定的值之后,图像趋于平缓,且在一定范围内震荡,同时又有一定上升趋势,但上升速度很慢。
2、选择不同的阶数n ,设方程组的精确解为xz=(1,1,…,1)T进行计算,用四种方法解x_Guass1、x_Jacobi1、x_GS1、x_SOR1对比表如下nl g (c o n d (H n ))lg(cond(Hn))~n关系图nl g (c o n d (H n ))lg(cond(Hn))~n 关系图Gauss消去法求解:选择问题的阶数为3~8时,用Gauss消去法求得的解与精确解一致,当阶数为9~14时,解开始出现偏差,而且n越大,偏差越大。
因‖R0‖<1,故lim‖R0‖k→∞2k=0.则2k‖Rk‖≤‖R0‖→0(k→∞),-1即Rk→0(k→∞).Rk=I-ACk,故当Rk→0时,Ck→A.四、习题1畅用Gauss消去法解方程组2x1+x2+x3=4,3x1+x2+2x3=6,x1+2x2+2x3=5.2畅(1)设A是对称矩阵且a11≠0,经过Gauss消去法一步后,A约化为a110证明A2是对称矩阵.(2)用Gauss消去法解对称方程组0畅6428x1+0畅3475x2-0畅8468x3=0畅4127,0畅3475x1+1畅8423x2+0畅4759x3=1畅7321,-0畅8468x1+0畅4759x2+1畅2147x3=-0畅86.3畅(1)用表达式(7畅4)证明其中aij=aij.(1)a1TA2.aij=aij-li1a1j-li2a2j-…-li,k-1ak-1,j,i,j≥k,(k)(1)(1)(2)(k-1)(r)(2)使Gauss消去法中arj=urj(j≥r),利用(1)证明urj=arj-k∑lrkukj(j=r,r+1,…,n),=1lir=(air-k∑likukr)/urr(i=r+1,…,n).=14畅设方程组x1+2x2+3x3=1,5x1+4x2+10x3=0,3x1-0.1x2+x3=2.r-1r-1318(1)试用Gauss全主元消去法求解.(2)试用Gauss列主元消去法求解.5畅设A为n阶非奇异矩阵且有分解式A=LU,其中L为单位下三角阵,U为上三角阵,求证A的所有顺序主子式均不为零.2,…,n-1)时,则有6畅由Gauss消去法证明:当Δi≠0(i=1,A=LU,其中L为单位下三角阵,U为上三角阵.7畅设A为n阶矩阵,若|aii|>j∑|aij|(i=1,2,…,n),则称A=1j≠in为对角优势矩阵.试证明:设A是对角优势矩阵,又设经过Gauss消去法一步后,A具有形式a110α1TA2,则A2是对角优势矩阵.且由此推断:对于对称的对角优势矩阵,用Gauss消去法和部分(列)主元Gauss 消去法可得到同样的结论.8畅设Lk为指标是k的初等下三角矩阵,即1筹Lk=1mk+1,k…mnk1筹1.(除第k列对角元下元素外,Lk与单位阵I相同)求证当i,j>k时,L珟k=IijLkIij也是一个指标为k的初等下三角矩阵,其中Iij 为初等排列矩阵.9畅试推导矩阵A的Crout分解的计算公式:A=LU,其中L为下三角矩阵,U 为单位上三角矩阵.10畅设UX=b,其中U为三角矩阵.(1)就U为上及下三角矩阵推导一般的求解公式.(2)计算解三角形方程组UX=b的乘除法次数.319(3)设U为非奇异矩阵,试推导求U323T-1的计算公式.11畅用平方根法(Cholesky分解)解方程组2203591-2103012591701-21-2A=-4-64182x1x2x3x1x2x3001-28-16.-20,b=5=3.710=16.30110-1-112畅用LDL分解法解方程组335-2A=10013畅用追赶法解三对角方程组AX=b,其中.14畅求矩阵A的LU分解,并利用分解结果计算A.15畅下述矩阵能否分解为A=LU,其中L为单位下三角矩阵,U为上三角矩阵.若能分解,那么分解是否唯一?1A=24246370.60.10.50.31312311162515615.461,B=21,C=216畅设A=F唱范数.17畅求证:,计算A的行范数、列范数、2唱范数及(1)‖X‖∞≤‖X‖1≤n‖X‖∞,320(2)‖A‖F≤‖A‖2≤‖A‖F.n×n18畅设P∈R范数.定义且为非奇异矩阵,又设‖X‖为R上一向量‖X‖P=‖PX‖.n试证明‖X‖P是R上向量的一种范数.19畅设X∈R,X=(x1,x2,…,xn),求证:p→∞nTn20畅证明:当且仅当与Y线性相关且XY≥0时,才有Tlim(i∑|xi|=1np)1=1max|xi|=‖X‖∞.≤i≤n‖X+Y‖2=‖X‖2+‖Y‖2.21畅设A∈Rn×n,求证特征值相等λ(AA)=λ(AA).TT22畅证明:如果A=(α1,α2,…,αn)是按列分块的,则‖A‖2F=‖α1‖2+‖α2‖2+…+‖αn‖2.222-123畅证明:如果‖B‖<1,则‖I-(I-B)‖≤‖B‖.24畅证明:对任何矩阵算子范数有‖I‖=1(其中I是单位矩阵),‖A‖‖A-1‖≥1.nj≠i25畅(1)如果A是对角优势矩阵,即|aii|>j∑|aij|(i=1,2,=1…,n),证明aii≠0(i=1,2,…,n).(2)设A为对角优势矩阵,使A=DB,其中D=diag(aii),证明B=I-C,其中‖C‖∞<1,因此由定理(7畅16),A是非奇异阵.(3)证明:如果应用Gauss消去法解对角优势方程组,则所有元素akk≠0.(k)26畅设‖A‖s、‖A‖t为任意两种R明存在常数c1、c2>0,使n×n上矩阵算子范数,证n×nc1‖A‖s≤‖A‖t≤c2‖A‖s(对一切A∈R).32127畅设A=100999998,计算A的条件数cond(A)ν(ν=2,∞).28畅证明:如果A是正交阵,则Cond(A)2=1.29畅设A,B∈Rn×n且‖·‖为Rn×n上矩阵的算子范数,证明TT30畅设A为对称正定矩阵,且其分解为A=LDL=WW,其中W=L,求证:T1Cond(A·B)≤Cond(A)·Cond(B).(1)cond(A)2=(cond(W)2).2(2)cond(A)2=cond(W)2·cond(W)2.31畅设对称正定矩阵A=试计算‖A-1T2-1-12,λ2,且找出b1‖2=1/λ,‖A‖2=λ2及cond2(A)=(常数)及扰动δb,使‖δb‖2‖δX‖2=cond2(A).2232畅求下面两个方程组的解,并利用矩阵的条件数估计‖δX‖.240-179240-179畅5-319240240x1x2=x1x234=,即AX=b,34,即(A+δA)(X+δX)=b.-319畅533畅已知Hilbert矩阵3221H3=11T1=b时,若H3及b有微小误‖δX‖∞.∞7畅0003-7T.(1)计算H3的条件数cond∞(H).111347(2)解方程H3X=差(取3位有效数字),估计解X的误差34畅设A=2畅0001-2-11,b=,已知方程组AX=b的精确解为X=(3,-1).(1)计算条件数cond∞(A).计算剩余r=b-AX珚.(2)若近似解X珚=(2.97,-1.01),(3)利用定理7畅20计算不等式右端,并与不等式左端比较,此结果说明什么?35畅填空题(1)X=(2,3,-4),则‖X‖1=,‖X‖2=,‖X‖∞TT=.1-32-10201,则‖A‖1=,ρ(A)=.0-1则cond2(A)=.20a,为使A可分解为A=LL,其中L为323T(2)A=-12-112(3)A=(4)设A=10a2对角线元素为正的下三角形矩阵,a的取值范围,取a=1,则L=.五、习题解答1畅解为消去第2、3两个方程中的x1,取l21=,l31=.将第2个方程减去-l21倍的第1个方程,第3个方程减去-l31倍的第1个方程,得2x1+x2+x3-=4,x2+x3=0,x2+x3=3.为消去第3个方程中的x2,取l32=-3.将第3个方程减去-l32倍的第2个方程,得三角方程组2x1+x2+x3=4,-11x2+x3=0,3x3=3.回代,算出方程组的解x3=3/3=1,x2=0-1x3(1)-1=1,x1=(4-x2-x3)/2=1.2畅解(1)记A=(aij)=(aij).经Gauss消元一步后,A2的元素为a(2)ij(1)=a(1)ij(1)i1(1)-a1j.11(1)(1)(1)因A是对称的,所以有aij=aji,ai1=aj1,于是有324a故A2是对称的.(2)ij=a(1)jij1(1)(2)-a1i=aji.11(1)(2)用Gauss消去法求解所给对称方程组,得X=(4畅586035,-0畅6315228,2畅735199).倡T 3畅解(1)因aij=aij(k)(k-1)-li,k-1ak-1,j,(k-1)而故aij=aij(k)(k-2)(1)aij(k-1)=aij(k-2)-li,k-2ak-2,j,(k-2)(k-1)-li,k-2ak-2,j-li,k-1ak-1,j=…(k-2)(1)(2)(k-2)(k-1)=aij-li1a1j-li2a2j-…-li,k-2ak-2,j-li,k-1ak-1,j,i,j≥k.(2)由(1)有urj=a又0=air由此解出(r+1)(r)rj=arj-k∑lrkakj(j=r,r+1,…,n).=1(k)r-1=air-li1u1r-li2u2r-…-lirurr.lir=likukrair-k∑=1rrr-1.4畅解(1)选主元为10,将第一行与第二行交换,第1列与第3列交换,得10x3+4x2+5x1=0,3x3+2x2+x1=1,x3-0.1x2+3x1=2.消去第2、3方程中的x3,得10x3+4x2+5x1=0,0畅8x2-0.5x1=1,-0.5x2+2.5x1=1.第2次选的主元为2畅5.将上述第2个方程与第3个方程交325换,第2列与第3列交换,得10x3+5x12畅5x1消去第3方程中的未知数x1,得10x3+5x1+4x2=0,2畅5x1-0.5x2=2,0.7x2=1.4.回代求得,x2=2,x1=1.2,x3=-1.4.得(2)列主元为5,将第1行与第2行交换,再消去x1,5x1+4x2+10x3=0,1畅2x2+x3=1,-2.5x2-5x3=2.列主元为-2.5,将第2行与第3行交换,再消去x2,得5x1+4x2+10x3=0,-2畅5x2-5x3回代求得x3=-1.4,x2=2,x1=1.2.5畅证设A、L、U的k阶顺序主子矩阵分别为Ak、Lk、Uk(k=1,2,…,n),显然Ak=LkUk.由A=LU分解的定义可知,L1U的各阶顺序主子式均不为零,即故det(Lk)=1,det(Uk)≠0.det(Ak)=det(Lk)det(Uk)≠0,k=1,…,n,=2,-1畅4x3=1畅96.+4x2=0,-0.5x2=2,-0.5x1+0.8x2=1.即A的各阶顺序主子式均不为零.(i)6畅证因Δi≠0,(i=1,2,…,n-1)(Δi是i阶顺序主子式),所以aii≠0(i=1,2,…,n-1),则Gauss消去法可进行到底,即存326在指标为i的初等下三角阵Li,使Ln-1Ln-2…L1A=U,故A=L1其中L=L1-1-1-1(2)-1…Ln-2Ln-1U=LU,-1-1…Ln-2Ln-1为下单位三角阵,U是上三角阵.aij=aij-(2)7畅证记A2=(aij),则有i1a1j.11nj≠in又A是对角优势矩阵,可知|aii|>j∑|aij|,i=1,2,…,n.故=1∑|a|=j∑j=2=2(2)ijj≠innnj≠ii1aij-a1j11≤j∑|aij|+j∑=2=2j≠i|ai1||a1j|11j≠in|aij|n∑|a1j|=j∑|aij|-|ai1|+=111j=2j≠ij≠i≤|aii|-=|aii|-≤|aii|-≤aii-ni1(|a11|-j∑|a1j|)=211j≠ini1(|a11|-j∑|a1j|+|a1i|)=211ni1|a1i|(|a11|-j∑|a1j|>0.)=211i1(2)a1i=|aii|(i=2,…,n).11即A2也是对角优势矩阵.若A是对角优势矩阵,经Gauss消元一步后.A→A(2)=a110αTA2.由上述证明及第2题结论知,A2仍是对角优势矩阵,即|a|>j∑|aij|(i=2,…,n).=2(2)ii(2)由对称性也有327|a|>i∑|a|=i∑|aij|,(j=2,…,n).=2=2(2)jj(2)ji(2)i≠ji≠jnn这正好与Gauss顺序消去而第二步消元前所选列主元应为a22,(k)法的主元相同.以此类推第k次所选主元就是akk,所以用Gauss (2)顺序消去法和列主元消去法得到同样的结果.8畅证因1筹Lk=1mk+1,k…mnk0,1,0,…,0).故ek=(0,…,T第k列=I-lkek.筹TT其中I是单位阵,lk=(0,…,0,-mk+1,k,…,-mik,…,-mn,k),L珟k=IijLkIij=Iij(I-lkek)Iij=IijIIij-(Iijlk)(ekIij)=I-lkek′TTT仍是指标为k的初等下三角阵,其中lk=(0,…,0,-mk+1,k,…,mjk,…,-mik,…,-mnk).′T9畅解设A=LU,即a11a12…a1na21a22…a2n…………an1an2…ann根据矩阵乘法,有ai1=li1u11=li1,i=1,…,n,a1j=l11u1j,得u1j=328,j=2,…,n.11=l11l21l22……筹ln1ln2…lnn1u121…u23筹……筹筹u1nu2n…un-1,n1.现设L的前k-1列与U的前k-1行已算好,因akk-1ik=r∑=1lirurk=r∑=1lirurk+likukk(i=k,…,n,ukk=1),k-1所以lik=aik-r∑=1lirurk(i=k,…,n).同样akk-1kj=r∑=1lkrurj=r∑=1lkrurj+lkkukj(j=k+1,…,n),k-1kj所以u-r∑=1lkrurjkj=akk,j=k+1,…,n.综上,Crout分解公式li1=ai1,i=1,2,…,n,u1j=a1j/l11,j=2,…,n,lk-1ik=aik-r∑=1lirurk,i=k,…,n,uk-1kj=(akj-r∑=1lkrurj)/lkk,j=k+1,…,n.10畅解(1)设U为上三角阵,则有u11……u1nx1b1u22…u2nx2筹……=b2….unnxnbn由unnxn=bn,得xn=bn/unn.一般地,由uiixi+ui,i+1xi+1+…+uinxn=bi,得nxbi-j=∑ijxji=ui+1ii(i=n-1,n-2,…,1).当U是下三角矩阵时,有329u11u21…un1u22…un2筹…unnx1x2 (x)n=b1b2…bn.由u11x1=b1,得x1=b1/u11.一般地,由ui1x1+ui2x2+…+uiixi=bi,i=2,…,n,得xi=(bi-j∑uijxj)/uii,i=2,…,n.=1(2)乘法次数,对固定的i有n-i次,i从1到n,所以总乘法次数R(n-i)=i∑i=R=i∑=1=1除法次数D,D=n.+n故总的乘除法次数=+n=.2nn-1i-1.(3)设Uu11…筹-1=V,这里V也是上三角阵,即u1n…unn v11…筹v1n (v)nnj1=UV=1筹1.V按行计算,i=n-1,…,1,vij=-k=i+1∑uikvkjii,j=i+1,…,n.vii=,i=1,2,…,n.ii223=2>0,Δ3=232203012>0.11畅解因系数矩阵顺序主子式Δ1=3>0,Δ2=32且系数矩阵对称,故为正定方程组.按照算法(7畅9)得330l11=,l21=2/,l31=,l22=则有3232203012由2/得再由2/y1=-y1y2y35=3,7=2/-2/-.,l32=-,l33=.511,y2=-,y3=.x1x2x3=5/-1/,1/-得x3=11,x2=,x1=1.12畅解此方程组的系数矩阵为对称正定矩阵,因此可用改进的平方根法,用算式(7畅11)得到d1=a11=3,t21=a21=3,l21=d2=a22-t21l21=5-3=2,t32=a32-t31l21=9-1=8,l32=t213==1,1315=,1t31=a31=5,l31=3282==4,d3=a33-t31l31-t32l32=.23311则A=LDL=T3121115/32.15/3212/31由LY=b,即1y11011y2=16,5/321y330得y1=10,y2=6,y3=4/3.再解DLTX=Y,得x3=2,x2=-1,x1=1.13畅解设-21001u1d11-210l21u2d201-21=l 31u3001-2l41由分解公式(7畅15)计算得d1=1,d2=1,d3=1,u1=-2,l2=-1,u2=-3,l3=-2,u3=-4,l4=-3,u4=-5.由公式(7畅16)解1y11-11LY=b=痴y21-21y=30,-1y4-1得y1=1,y2=3,y3=1,y4=-1.再由公式(7畅17)解332d3.u4-2UX=Y痴1-x11-41-x2x3=131,1-x41376得x4=,x3=-,x2=-,x1=-.14畅解由矩阵的三角分解公式(7畅6),计算得1-248A=LU=21010-32.3-1100-76100-0.50畅2-0畅1369-1-1L=-210,U=0畅1-0畅04211.-511-0畅01316所以-0畅21550畅0631-0畅1369-1-1-1A=UL=0畅010550畅05789-0畅04211.0畅0653-0畅01316-0畅0131615畅解设A能分解,则有1A=LU=l21l3101l32001u1100u12u220u13u33u331=2424631.7由分解公式(7畅6)知,u11=1,u12=2,u13=3,l21=2,l31=4,u22=0,而a32=l32u22+l31u12=0+4×2=8与a32=6矛盾,故A的LU分解不能进行.但A为非奇异阵,所以存在排列阵P,使PA=LU.即将A的1行与2行交换,则可分解为LU.设B=LU,则12312311=11l21l3101l32001u1100u12u220u13u23u33333.由分解公式(7畅6)知,u11=u12=u13=1,l21=2,l31=3,u22=0.而由3=l31u12+l32u22,得3=3+l32u22.故l32可任选,即B的三角分解存在且不唯一.因C的各阶顺序主子均不为0,故由定理7畅4知,C的三角分解存在且唯一.16畅解A的行范数6+0.5,0.1+0.3}=1.1.‖A‖∞=max{0.A的列范数6+0.1,0.5+0.3}=0.8.‖A‖1=max{0.‖A‖F=(0.36+0.25+0.01+0.09)AA=T1/2=0.8426.0畅330畅34.0畅60畅50畅10畅30畅60畅10畅60畅3=20畅370畅33|λI-AA|=Tλ-0畅37-0畅33-0畅33λ-0畅34=λ-0.71λ+0.0169=0.所以λmax(AA)=0.685,则‖A‖2=17畅证(1)由定义知,‖X‖∞≈0畅83.n=1max|xi|≤i∑|xi|≤i≤n=1=‖X‖1≤i∑max|xi|=n‖X‖∞,=11≤i≤n∞n从而‖X‖2∞≤‖X‖1≤n·‖X‖TT.(2)由范数定义有‖A‖2=λmax(AA)≤λ1(AA)+λ2(AA)+…+λn(AA)TT=AA的对角元之和=i∑a+i∑a+…+i∑ani=1=1=1T21i222i2nnn=j∑∑a=i∑∑aij=‖A‖F.=1i=1=1j=122nnnn又‖A‖2=λmax(AA)2T334≥=从而TTT[λ1(AA)+λ2(AA)+…+λn(AA)]12‖A‖F.‖A‖F≤‖A‖2≤‖A‖F.注:此处用到了矩阵的特征值之和等于其对角线上元素之和的概念.从所证不等式也知道,矩阵的2唱范数可由F唱范数得到控制;矩阵的2唱范数与F唱范数是等价的.18畅证只要证明‖X‖P=‖PX‖满足范数定义的(1),(2),(3).(1)因P非奇异,故对任意X≠0,PX≠0,则‖X‖P=‖PX‖>0;当X=0时,PX =0,则‖X‖(2)对任意实数α,‖αX‖P=‖PαX‖=‖αPX‖=|α|‖PX‖=|α|‖X‖(3)‖X+Y‖PPP=‖PX‖=0;当‖X‖P=‖PX‖=0时,则PX=0,即X=0..=‖P(X+Y)‖=‖PX+PY‖≤‖PX‖+‖PY‖=‖X‖P+‖Y‖P.综上所述,‖X‖P是R上的一种向量范数.19畅证因‖X‖p∞n=1max|xi|≤i∑|xi|≤n·1max|xi|=n·‖X‖≤i≤n≤i≤n=1‖X‖∞≤(i∑|xi|)=1np1/ppnppp∞,两边开p次方有≤n‖X‖∞.1而plim=1,故→∞20畅证由Cauchy不等式,有|(X,Y)|≤‖X‖2‖Y‖2,且当且仅当X、Y线性相关时,有335lim(i∑|xi|)p→∞=1pn1/p1=‖X‖∞.|(X,Y)|=‖X‖2‖Y‖2;又当且仅当XY≥0时,有|(X,Y)|=(X,Y).T故(X,Y)=‖X‖2‖Y‖2当且仅当X、Y线性相关,且XYT≥0时,所以‖X+Y‖2=(X+Y,X+Y)=(X,X)+2(X,Y)+(Y,Y)=‖X‖2+2‖X‖2‖Y‖2+‖Y‖222=(‖X‖2+‖Y‖2)2当且仅当X、Y线性相关,且X,Y≥0时,即‖X+Y‖2=‖X‖2+‖Y‖2迟痴X,Y线性相关,且XY≥0.T21畅证由于I-A及记B=μIATTOμI-AIμIAATTAμIAμIμIO22AμI-AATT,.(7畅26)(7畅27)μIOAμIμIμI-AAATOμI.对(7畅26)、(7畅27)两式两边取行列式得μdet(B)=μdet(μI-AA),nnnn22T记λ=μ≠0,故2μdet(B)=μdet(μI-AA).TTT22畅证设A=(α1α2…αn)按列分块,即αj=(α1j,α2j,…,αnj)(j =1,2,…,n),则‖αj‖=i∑αij.而=1222Tndet(λI-AA)=det(λI-AA).‖α1‖+‖α2‖22nn2ij22+…+‖αn‖=j∑‖αj‖2=1222nn22n=j∑(∑α)=j∑∑αij=‖A‖F.=1i=1=1i=123畅证因‖B‖<1,由定理7畅16知I-B可逆且‖(I-B)-1‖≤,所以336‖I-(I-B)-1‖=‖(I-B)≤‖(I-B)≤-1-1(I-B-I)‖‖‖B‖‖B‖.24畅证由矩阵算子范数定义有‖I‖=maxX≠O由矩阵范数的相容性有‖A‖‖A优势矩阵,则j=1j≠i0-1‖IX‖‖X‖=max=1.X≠O‖≥‖AA-1‖=‖I‖=1.25畅证(1)用反证法.若有某个i0使ai0i0=0,因A是对角∑|ai0j|<|ai0j0|=0.n这是不可能的.得证.(2)因A=DB,即a11A=a21…an1而1B=a2122…n1nn12111………………1n11a2n22…1=1111337…………a1na2n…anna11a22筹ann12122…n1nn a12111………………a1n112n22…1=DB.=0---a2122n1nn -12110…………-1n11=I-C.a2n220‖C‖∞=maxi∑j=1nj≠iaijii=max∑ij=1n|aij|<1i ij≠in|aij|<|aii|).所以由定理(这是因为A是对角优势矩阵,则j∑=1j≠i7畅16知,B=I-C为非奇异阵.由(1)aii≠0,故D非奇异.因此A=DB 非奇异.2,…,n.而a11(3)设A为对角优势阵,由(1)知aii≠0,i=1,=a 11,所以a11≠0.又设经Gauss消元一步后A具有形式:(1)(1)a110(2)(k)α1TA2.(2)由习题7知,A2也是对角优势矩阵.又由(1)知aii≠0,i=2,…,n,即有a22≠0.如此类推akk≠0.26畅证因‖A‖s=maxX≠O‖AX‖s.s对一切X都有由定理7畅10知,存在a1,a2>0,b1,b2>0,a1‖AX‖s≤‖AX‖t≤a2‖AX‖s,与b1‖X‖s≤‖X‖t≤b2‖X‖s.于是1‖AX‖s‖AX‖t2‖AX‖s≤≤.1st2s令12=c1=c2,故有12c1‖AX‖s‖AX‖t‖AX‖s≤≤c2.sts338c1maxX≠0即‖AX‖s‖AX‖t‖AX‖s2max≤max≤c.X≠0X≠0stsc1‖AX‖s≤‖AX‖t≤c2‖AX‖s.10099A-127畅解A=9998=,则-9899‖A-199-100.‖A‖∞=199,‖A-1‖∞=199,所以∞因A是对称矩阵,故cond(A)∞=‖A‖‖∞=199×199=39601.λmax(A).min=λ-198λ-1=0,2cond(A)2=由det(λI-A)=得即λ-100-99-99λ-98λ1=198畅0050503,λ2=-0畅00505035.cond(A)2=λ1=39206.2T-128畅证因A是正交阵,故A=Acond(A)2=max=min,则max=1.minmax=min-1-129畅证由条件数的定义及矩阵范数的相容性,有cond(AB)=‖AB‖‖(AB)=‖A‖‖AT-1‖‖‖A≤‖A‖‖B‖‖B‖‖‖‖B‖‖B=cond(A)cond(B).30畅证(1)因A=WW,所以cond(A)2=‖A‖2‖A2-1-1T‖2=‖WW‖2‖(WW)TT-1‖2=‖W‖2‖W‖2=(cond(W)2).22T(2)由习题21知,λ(WW)=λ(WW),则339‖W‖2=TTTmax=-T故由(1)得,cond(W)2=‖W‖2‖Wmax=‖W‖2.-1‖2=‖W‖2‖W2T‖2=cond(W)2.31畅解由cond(A)2=[cond(W)2]=cond(W)2cond(W)2.|λI-A|=λ-21=λ-4λ+3=0,2解得所以‖A设b=-1λ1=1,λ2=3.‖2=1,‖A‖2=3,cond(A)2=,δb=11,这时有λ2=3.11-1‖δX‖2‖δb‖2=cond(A)2.22事实上,设X+δX=Y,则A(X+δX)=b+δb,即2-1解得y1=又解得x1=所以δX==2-12y1y2=20,42,y2=.2-111,x2=-.-12x1x2=1-1,+==3.而cond(A)2=340‖δb‖2=cond(A)22=cond(A)2=3,故‖δX‖2‖δb‖2=cond(X)2.2232畅解记A=T240-179-319240T,δA=0-0畅5-0畅50则AX=b的解X=(4,3),而(A+δA)(X+δX)=b的解(X+δX)=(8,6).故‖X‖而A-1∞=4,‖δX‖=240179-1-1∞=4.,∞∞319240‖A‖‖δA‖‖δA‖cond∞(A)=‖A∞‖‖∞∞=626畅2,=0畅56012.=0畅5,‖A由推论7畅19畅2得‖δX‖∞∞‖δA‖∞∞0畅56012≤=≤1畅274,∞1-cond∞(A)∞∞‖δX‖∞≤1畅274‖X‖∞≤5畅10,表明估计‖δX‖∞=4略大,是符合实际的.933畅解(1)H3-1-36192-18030-180;180=-3630‖H3‖∞=所以cond∞(H3)=748.-1,‖H3‖∞=408,(2)方程组在H3及b有微小变化时为1畅000畅5000畅3330畅5000畅3330畅2500畅3330畅2500畅200x1+δx1x2+δx2x3+δx31畅83=1畅080畅783341简记为(H3+δH3)(X+δX)=b+δb,它的精确解为X+δX=(1畅089512538,0畅487967062,1畅491002798).T而H3X=b的精确解X=(1,1,1),于是δX=(0畅0895,-0畅5120,0畅4910).‖δH3‖∞‖δb‖∞-3≈0畅18×10<0畅02%,≈0畅182%3∞∞而‖δX‖∞≈51畅2%.∞这表明H3及b的相对误差不超过0畅3%,而引起解的相对误差超过50%.由推论7畅19畅2,可得‖δX‖∞≤∞≤3∞1-cond∞(H3)3∞‖δb‖∞‖δH3‖∞+3∞∞TT408((0畅0002)+0畅00182)≤0畅8974=89畅74%.这个估计结果比实际误差大是合理的.34畅解(1)先算出A于是cond∞(A)=‖A(2)r=b-AX珚==7畅0003-7-1=‖∞1000020000‖A‖-∞10000200012畅0001-2=,-1=40001×3畅0001≈120012.-110畅05-0畅05.2畅97-1畅017畅0003-7-6畅9503-6畅95∞∞(3)依定理7畅20,右端为cond∞(A)而左端为342‖r‖=120012×0畅05≤857畅192,‖X-X珚‖∞0畅03==0畅01.∞这表明当A为病态矩阵时,尽管剩余‖r‖很小,误差估计仍然较大,因此,当A病态时用‖r‖大小作为检验解的准确度是不可靠的.35畅解(1)‖X‖1=9,‖X‖2=2(3)由1120a>0,得a<3,故a的取值范围-<a<2,‖X‖∞=5.2(2)‖A‖1=4,ρ(A)=1(|λI-A|=(λ-1),λ1,2=1).0a2,取a=1时,L=10000.2343。
数值分析第一次上机实习报告
——线性方程组直接解法
一、问题描述
设 H n = [h ij ] ∈ R n ×n 是 Hilbert 矩阵, 即
11
ij h i j =+- 对n = 2,3,4,…13,
(a) 取11n n x R ⨯⎛⎫ ⎪=∈ ⎪ ⎪⎝⎭
,及n n b H x =,用Gauss 消去法和Cholesky 分解方法来求解
n n H y b =,看看误差有多大.
(b) 计算条件数:2()n cond H
(c) 使用某种正则化方法改善(a)中的结果.
二、方法描述
1. Gauss 消去法
Gauss 消去法一般用于系数矩阵稠密且没有任何特殊结构的线性方程组。
设H =[h ij ],y = (y 1,y 2,…,y n )T . 首先对系数矩阵H n 进行LU 分解,对于k=1,2,…n,交替进行计算:
1111),,1,,1(),1,2,,k kj kj kr rj r k ik ik ir rk r kk u h l u j k k n l a l u i k k n u -=-=⎧=-=+⎪⎪⎨⎪=-=++⎪⎩
∑∑…… 由此可以得到下三角矩阵L=[l ij ]和上三角矩阵U=[u ij ]. 依次求解方程组Ly=b 和Ux=y ,
111,1,2,,1(),,1,,1i i i ir r r n i i ir r r i ii y b l y i n x y u x i n n u -==+⎧=-=⎪⎪⎨⎪=-=-⎪⎩
∑∑…… 即可确定最终解。
2. Cholesky 分解法
对于系数矩阵对称正定的方程组n n H y b =,存在唯一的对角元素为正数的下三角矩阵L ,使得H=LL T 。
因此,首先对矩阵H n 进行Cholesky 分解,即
1122111()
1()j jj jj jk k j ij ij ik jk k jj l h l l h l l l -=-=⎧=-⎪⎪⎨⎪=-⎪⎩
∑∑ 1,i j n =+… L 的元素求出之后,依次求解方程组Ly=b 和L T x=y ,即
1111111(),2,3,i i i ik k k ii b y l y b l y i n l -=⎧=⎪⎪⎨⎪=-=⎪⎩
∑… 11(),1,2,n n nn n i i ki k k i nn y x l x y l x i n n l =+⎧=⎪⎪⎨⎪=-=--⎪⎩
∑…1 由此求得方程组n n H y b =的解。
3. 病态方程组预处理
通过对病态方程组进行预处理,可以降低系数矩阵的条件数。
选择H n 的对角元素进行开方构成对角矩阵D ,从而构造新的系数矩阵G ,使得G= D -1H n D -1。
从而使得原方程n n H y b =,转化为等价方程组
-1Gz D b =
则原方程的解1y D z -=。
三、方案设计
通过MATLAB 进行编程,对上述问题进行求解。
在所有的程序文件中,main.m 为主程序文件,即对方程组采用Gauss 消去法和Cholesky 分解法分别进行求解,并计算不同阶数Hilbert 矩阵的条件数2()n cond H ;gauss.m 文件为Gauss 消去法解方程的matlab 算法,其中调用了两个函数,分别为求解下三角形方程组的ltri 函数和求解上三角形方程组的utri 函数,这两个函数相应的分别编写在
ltri.m 文件和utri.m 文件中。
通过平衡法对Hilbert 矩阵进行预处理,调用文件balance.m 中的算法进行计算和处理。
四、计算结果及其分析
a) 用Gauss 消去法和Cholesky 分解方法来求解方程n n H y b ,结果如下
b) 计算条件数2()n cond H ,结果如下
c) 通过对矩阵进行预处理,改善a) 中的计算结果。