习题2.4

生成一个5阶的Hilbert 矩阵,

  • 计算Hilbert 矩阵H 的行列式.
  • 求H的逆矩阵.
  • 求H的特征值和特征向量.

解:

> n=5;x=array(0,dim=c(n,n))
> for(i in 1:n){
+ for(j in 1:n){
+ x[i,j]<-1/(i+j-1)
+ }
+ }
> n
[1] 5
> x
          [,1]      [,2]      [,3]      [,4]      [,5]
[1,] 1.0000000 0.5000000 0.3333333 0.2500000 0.2000000
[2,] 0.5000000 0.3333333 0.2500000 0.2000000 0.1666667
[3,] 0.3333333 0.2500000 0.2000000 0.1666667 0.1428571
[4,] 0.2500000 0.2000000 0.1666667 0.1428571 0.1250000
[5,] 0.2000000 0.1666667 0.1428571 0.1250000 0.1111111
>

(1):

>  det(x)
[1] 3.749295e-12
> 

(2):

>  solve(x)
      [,1]   [,2]    [,3]    [,4]   [,5]
[1,]    25   -300    1050   -1400    630
[2,]  -300   4800  -18900   26880 -12600
[3,]  1050 -18900   79380 -117600  56700
[4,] -1400  26880 -117600  179200 -88200
[5,]   630 -12600   56700  -88200  44100
> 

(3):

>  s=crossprod(x,x)
> e=eigen(s)
> e
$values
[1] 2.455648e+00 4.348652e-02 1.301309e-04 9.357361e-08 1.081050e-11

$vectors
           [,1]       [,2]       [,3]        [,4]         [,5]
[1,] -0.7678547  0.6018715 -0.2142136  0.04716181  0.006173863
[2,] -0.4457911 -0.2759134  0.7241021 -0.43266733 -0.116692747
[3,] -0.3215783 -0.4248766  0.1204533  0.66735044  0.506163658
[4,] -0.2534389 -0.4439030 -0.3095740  0.23302451 -0.767191193
[5,] -0.2098226 -0.4290134 -0.5651934 -0.55759995  0.376245546

>