1、1) 估计5到20阶Hilbert矩阵的范数条件数(2) 设,先随机地选取,并计算出;然后再用列主元Gauss消去法求解该方程组,假定计算解为。试对n从5到30估计计算解的精度,并且与真实相对误差作比较。解(1)分析:利用使从5循环到20,利用函数得到Hilbert矩阵;先将算法2.5.1编制成通用的子程序,利用算法2.5.1编成的子程序,对求解,得到的一个估计值;再利用得到;则条件数。 另,矩阵的范数条件数可由直接算出,两者可进行比较。程序为 1 算法2.5.1编成的子程序function v=opt(B)k=1;n=length(B);x=1./n*ones(n,1);while k=1
2、 w=B*x; v=sign(w); z=B*v; if norm(z,inf) In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled. Results may beinaccurate. RCOND = 2.547634e-17. In cond at 47 In ex2_1 at 6 n=12估计条件数为3.924509699943713e+16实际条件数为3.924509699943713e+16Warning: Matrix is close to singular or badly scaled. Res
3、ults may beinaccurate. RCOND = 7.847381e-19. In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled. Results may beinaccurate. RCOND = 7.847381e-19. In cond at 47 In ex2_1 at 6 n=13估计条件数为1.271531365675327e+18实际条件数为1.271531365675327e+18Warning: Matrix is close to singular or badly scaled.
4、 Results may beinaccurate. RCOND = 2.246123e-18. In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled. Results may beinaccurate. RCOND = 2.246123e-18. In cond at 47 In ex2_1 at 6 n=14估计条件数为4.138368891288374e+17实际条件数为4.138368891288374e+17Warning: Matrix is close to singular or badly sca
5、led. Results may beinaccurate. RCOND = 8.491876e-19. In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled. Results may beinaccurate. RCOND = 8.491876e-19. In cond at 47 In ex2_1 at 6 n=15估计条件数为4.633108811649674e+17实际条件数为5.234289848563619e+17Warning: Matrix is close to singular or badly
6、 scaled. Results may beinaccurate. RCOND = 9.137489e-19. In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled. Results may beinaccurate. RCOND = 9.137489e-19. In cond at 47 In ex2_1 at 6 n=16估计条件数为8.036171638973166e+17实际条件数为8.036171638973167e+17Warning: Matrix is close to singular or b
7、adly scaled. Results may beinaccurate. RCOND = 6.244518e-19. In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled. Results may beinaccurate. RCOND = 6.244518e-19. In cond at 47 In ex2_1 at 6 n=17估计条件数为1.40155292233093e+18实际条件数为1.40155292233093e+18Warning: Matrix is close to singular or
8、 badly scaled. Results may beinaccurate. RCOND = 4.693737e-19. In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled. Results may beinaccurate. RCOND = 4.693737e-19. In cond at 47 In ex2_1 at 6 n=18估计条件数为2.550260641580651e+18实际条件数为2.800000737997893e+18Warning: Matrix is close to singula
9、r or badly scaled. Results may beinaccurate. RCOND = 4.264685e-19. In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled. Results may beinaccurate. RCOND = 4.264685e-19. In cond at 47 In ex2_1 at 6 n=19估计条件数为2.411858563109357e+18实际条件数为2.411858563109357e+18Warning: Matrix is close to sin
10、gular or badly scaled. Results may beinaccurate. RCOND = 1.351364e-19. In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled. Results may beinaccurate. RCOND = 1.351364e-19. In cond at 47 In ex2_1 at 6 n=20估计条件数为2.31633670586674e+18实际条件数为6.37335273308473e+18结果分析随着矩阵阶数增加,估计值误差开始出现,时估计条件数
11、与实际值存在误差;且条件数很大,Hilbert矩阵为病态的。解(2)分析:先根据题目要求,利用和使从5循环到30,作出和随机的,并计算出;然后再利用第一章习题中得到的和用列主元Gauss消去法求解该方程组,假定计算解为,得,利用第(1)问所得函数计算的一个估计值,利用计算的无穷范数,则的相对误差估计为,真实相对误差为。程序为1 列主元Gauss消去法求解该方程组的程序为的分解:function L,U,P=GaussCol(A)n=length(A);for k=1:n-1s,t=max(abs(A(k:n,k);p=t+k-1;temp=A(k,1:n);A(k,1:n)=A(p,1:n);
12、A(p,1:n)=temp; u(k)=p;if A(k,k)=0 A(k+1:n,k)=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n);else break;endendL=tril(A);U=triu(A);L=L-diag(diag(L)+diag(ones(1,n); P=eye(n);for i=1:n-1 temp=P(i,:); P(i,:)=P(u(i),:); P(u(i),:)=temp;endend高斯消去法解线性方程组function x=Gauss(A,b,L,U,P)if
13、nargin5 P=eye(length(A);endn=length(A);b=P*b;for j=1:n-1 b(j)=b(j)/L(j,j); b(j+1:n)=b(j+1:n)-b(j)*L(j+1:n,j);endb(n)=b(n)/L(n,n);y=b; for j=n:-1:2 y(j)=y(j)/U(j,j); y(1:j-1)=y(1:j-1)-y(j)*U(1:j-1,j);endy(1)=y(1)/U(1,1);x=y;end2 问题(2)求解ex2_2for n=5:30 A=2*eye(n)+tril(-1*ones(n); A(1:n-1,n)=ones(n-1,1
14、); x=100*rand(n,1); b=A*x; L,U,P=GaussCol(A); x1=Gauss(A,b,L,U,P); r=b-A*x1; p1=norm(r,inf)*opt(inv(A.)*norm(A,inf)/norm(b,inf); p2=norm(x-x1,inf)/norm(x,inf); disp(n=,num2str(n) disp(估计相对误差为,num2str(p1)disp(实际相对误差为,num2str(p2) y1(n-4)=p1;y2(n-4)=p2;endplot(5:30,y1,5:30,y2)legend(估计相对误差,实际相对误差)计算结果为
15、n=5估计相对误差为2.8265e-15实际相对误差为3.1615e-16n=6估计相对误差为3.3434e-15实际相对误差为2.8523e-16n=7估计相对误差为9.882e-16实际相对误差为1.7941e-16n=8估计相对误差为4.8733e-14实际相对误差为1.0891e-14n=9估计相对误差为2.2282e-14实际相对误差为3.6143e-15n=10估计相对误差为1.5622e-14实际相对误差为3.9702e-15n=11估计相对误差为1.9668e-14实际相对误差为5.1566e-15n=12估计相对误差为4.808e-14实际相对误差为8.5677e-15n=1
16、3估计相对误差为2.8696e-13实际相对误差为4.0392e-14n=14估计相对误差为1.5109e-12实际相对误差为3.8759e-13n=15估计相对误差为4.3829e-13实际相对误差为1.67e-13n=16估计相对误差为8.7941e-13实际相对误差为2.6417e-13n=17估计相对误差为2.4842e-12实际相对误差为5.8841e-13n=18估计相对误差为7.6311e-12实际相对误差为2.4718e-12n=19估计相对误差为1.9214e-11实际相对误差为5.9876e-12n=20估计相对误差为5.612e-11实际相对误差为1.5802e-11n=
17、21估计相对误差为1.7181e-11实际相对误差为2.1433e-12n=22估计相对误差为1.0565e-11实际相对误差为2.8952e-12n=23估计相对误差为6.9651e-12实际相对误差为1.2037e-12n=24估计相对误差为3.1487e-10实际相对误差为1.4479e-10n=25估计相对误差为9.884e-10实际相对误差为2.3499e-10n=26估计相对误差为4.1606e-09实际相对误差为6.3158e-10n=27估计相对误差为5.8332e-09实际相对误差为1.7298e-09n=28估计相对误差为3.9754e-09实际相对误差为6.9346e-10n=29估计相对误差为7.8248e-09实际相对误差为1.4376e-09n=30估计相对误差为1.1681e-07实际相对误差为2.0748e-08结果分析n较小时估计的较好,随着n的增大估计值误差增大