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);whi
2、le k=1 w=B*x; v=sign(w); z=B'*v; if norm(z,inf)<=z 2="" 67="" 422="" 5079="" 7717="" 943656="" x="zeros(n,1);" v="opt(B);" k="1;" else="" end
3、="" ex2_1="" for="" n="11" a="hilb(n);" b="inv(A、');" k1="v*norm(A,inf);" k2="cond(A,inf);" 0028="" 1232433965549344="" warning:="" matrix="" is="" close=""
4、 to="" singular="" or="" badly="" results="" may="" be="" rcond="2、547634e-17、"> In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled、 Results may beinaccurate、 RCOND = 2、547634e-17、 > In cond a
5、t 47 In ex2_1 at 6 n=12估计条件数为3、9245e+16实际条件数为3、9245e+16Warning: Matrix is close to singular or badly scaled、 Results 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、 >
6、 In cond at 47 In ex2_1 at 6 n=13估计条件数为1、2727e+18实际条件数为1、2727e+18Warning: Matrix is close to singular or badly scaled、 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、246123
7、e-18、 > In cond at 47 In ex2_1 at 6 n=14估计条件数为4、8374e+17实际条件数为4、8374e+17Warning: Matrix is close to singular or badly scaled、 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 = &nbs
8、p;8、491876e-19、 > In cond at 47 In ex2_1 at 6 n=15估计条件数为4、6331e+17实际条件数为5、234289848563619e+17Warning: Matrix is close to singular or badly scaled、 Results may beinaccurate、 RCOND = 9、137489e-19、 > In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled、 Results may beina
9、ccurate、 RCOND = 9、137489e-19、 > In cond at 47 In ex2_1 at 6 n=16估计条件数为8、3166e+17实际条件数为8、3167e+17Warning: Matrix is close to singular or badly scaled、 Results may beinaccurate、 RCOND = 6、244518e-19、 > In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled、 Results
10、 may beinaccurate、 RCOND = 6、244518e-19、 > In cond at 47 In ex2_1 at 6 n=17估计条件数为1、43e+18实际条件数为1、43e+18Warning: Matrix is close to singular or badly scaled、 Results may beinaccurate、 RCOND = 4、693737e-19、 > In ex2_1 at 3 Warning: Matrix is close to singular or badly scaled、 R
11、esults may beinaccurate、 RCOND = 4、693737e-19、 > In cond at 47 In ex2_1 at 6 n=18估计条件数为2、5551e+18实际条件数为2、8893e+18Warning: Matrix is close to singular or badly scaled、 Results may beinaccurate、 RCOND = 4、264685e-19、 > In ex2_1 at 3 Warning: Matrix is close to singular or badly
12、 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 singular or badly scaled、 Results may beinaccurate、 RCOND = 1、351364e-19、 > In ex2_1 at 3 Warning: Matr
13、ix 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结果分析随着矩阵阶数增加,估计值误差开始出现,时估计条件数与实际值存在误差;且条件数很大,Hilbert矩阵为病态得。解(2)分析:先根据题目要求,利用与使从5循环到30,作出与随机得,并计算出;然后再利用第一章习题中得
14、到得与用列主元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);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);  
15、; 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 narg
16、in<5 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)求解e
17、x2_2for n=5:30 A=2*eye(n)+tril(-1*ones(n); A(1:n-1,n)=ones(n-1,1); 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-x
18、1,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('估计相对误差','实际相对误差')计算结果为n=5估计相对误差为2、8265e-15实际相对误差为3、1615e-16n=6估计相对误差为3、3434e-15实际相对误差为
19、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=13估计相对误差为2、8696e-13实际相对误差为4、0392e-14n=14估计相对误差为1、5109e-12实际相对误差为3
20、、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=21估计相对误差为1、7181e-11实际相对误差为2、1433e-12n=22估计相对误差为1、0565e-11实际相对误差为
21、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得增大估计值误差增大