> land.t <- read.table(('/home/michel/Www/INF6304/Lab/RI/landauer.rtable')) 
 > land.t 
          c1 c2 c3 c4 c5 m1 m2 m3 m4
human      1  0  0  1  0  0  0  0  0
interface  1  0  1  0  0  0  0  0  0
computer   1  1  0  0  0  0  0  0  0
user       0  1  1  0  1  0  0  0  0
system     0  1  1  2  0  0  0  0  0
response   0  1  0  0  1  0  0  0  0
time       0  1  0  0  1  0  0  0  0
EPS        0  0  1  1  0  0  0  0  0
survey     0  1  0  0  0  0  0  0  1
trees      0  0  0  0  0  1  1  1  0
graph      0  0  0  0  0  0  1  1  1
minors     0  0  0  0  0  0  0  1  1
 > land <- as.matrix(land.t) 
 > land.svd <- svd(land) 
 > land.svd 
$d
[1] 3.3408838 2.5417010 2.3539435 1.6445323 1.5048316 1.3063820 0.8459031
[8] 0.5601344 0.3636768

$u
             [,1]        [,2]       [,3]          [,4]        [,5]        [,6]
 [1,] -0.22135078 -0.11317962  0.2889582 -0.4147507404 -0.10627512 -0.34098332
 [2,] -0.19764540 -0.07208778  0.1350396 -0.5522395837  0.28176894  0.49587801
 [3,] -0.24047023  0.04315195 -0.1644291 -0.5949618181 -0.10675529 -0.25495513
 [4,] -0.40359886  0.05707026 -0.3378035  0.0991137295  0.33173372  0.38483192
 [5,] -0.64448115 -0.16730121  0.3611482  0.3334616013 -0.15895498 -0.20652259
 [6,] -0.26503747  0.10715957 -0.4259985  0.0738121922  0.08031938 -0.16967639
 [7,] -0.26503747  0.10715957 -0.4259985  0.0738121922  0.08031938 -0.16967639
 [8,] -0.30082816 -0.14127047  0.3303084  0.1880919179  0.11478462  0.27215528
 [9,] -0.20591786  0.27364743 -0.1775970 -0.0323519366 -0.53715000  0.08094398
[10,] -0.01274618  0.49016179  0.2311202  0.0248019985  0.59416952 -0.39212506
[11,] -0.03613585  0.62278523  0.2230864  0.0007000721 -0.06825294  0.11490895
[12,] -0.03175633  0.45050892  0.1411152 -0.0087294706 -0.30049511  0.27734340
              [,7]          [,8]        [,9]
 [1,] -0.522657771  0.0604501376  0.40667751
 [2,]  0.070423441  0.0099400372  0.10893027
 [3,]  0.302240236 -0.0623280150 -0.49244436
 [4,] -0.002872175  0.0003905042 -0.01232935
 [5,]  0.165828575 -0.0342720233 -0.27069629
 [6,] -0.282915727  0.0161465472  0.05387469
 [7,] -0.282915727  0.0161465472  0.05387469
 [8,] -0.032994110  0.0189980144  0.16533917
 [9,]  0.466897525  0.0362988295  0.57942611
[10,]  0.288317461 -0.2545679452  0.22542407
[11,] -0.159575477  0.6811254380 -0.23196123
[12,] -0.339495286 -0.6784178789 -0.18253498

$v
              [,1]        [,2]        [,3]        [,4]        [,5]
 [1,] -0.197392802 -0.05591352  0.11026973 -0.94978502  0.04567856
 [2,] -0.605990269  0.16559288 -0.49732649 -0.02864890 -0.20632728
 [3,] -0.462917508 -0.12731206  0.20760595  0.04160920  0.37833623
 [4,] -0.542114417 -0.23175523  0.56992145  0.26771404 -0.20560471
 [5,] -0.279469108  0.10677472 -0.50544991  0.15003543  0.32719441
 [6,] -0.003815213  0.19284794  0.09818424  0.01508149  0.39484121
 [7,] -0.014631468  0.43787488  0.19295557  0.01550719  0.34948535
 [8,] -0.024136835  0.61512190  0.25290398  0.01019901  0.14979847
 [9,] -0.081957368  0.52993707  0.07927315 -0.02455491 -0.60199299
               [,6]        [,7]         [,8]        [,9]
 [1,] -7.659356e-02 -0.17731830  0.014393259  0.06369229
 [2,] -2.564752e-01  0.43298424 -0.049305326 -0.24278290
 [3,]  7.243996e-01  0.23688970 -0.008825502 -0.02407687
 [4,] -3.688609e-01 -0.26479952  0.019466944  0.08420690
 [5,]  3.481305e-02 -0.67230353  0.058349563  0.26237588
 [6,] -3.001611e-01  0.34083983 -0.454476523  0.61984719
 [7,] -2.122014e-01  0.15219472  0.761527011 -0.01797518
 [8,]  9.743417e-05 -0.24914592 -0.449642757 -0.51989050
 [9,]  3.622190e-01 -0.03803419  0.069637550  0.45350675

 > round(land.svd$u %*% diag(land.svd$d) %*% t(land.svd$v),2) 
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
 [1,]    1    0    0    1    0    0    0    0    0
 [2,]    1    0    1    0    0    0    0    0    0
 [3,]    1    1    0    0    0    0    0    0    0
 [4,]    0    1    1    0    1    0    0    0    0
 [5,]    0    1    1    2    0    0    0    0    0
 [6,]    0    1    0    0    1    0    0    0    0
 [7,]    0    1    0    0    1    0    0    0    0
 [8,]    0    0    1    1    0    0    0    0    0
 [9,]    0    1    0    0    0    0    0    0    1
[10,]    0    0    0    0    0    1    1    1    0
[11,]    0    0    0    0    0    0    1    1    1
[12,]    0    0    0    0    0    0    0    1    1
 > round(land.svd$u %*% (diag({temp=land.svd$d;temp[3:9]=0;temp}))%*% t(land.svd$v),2) 
       [,1] [,2]  [,3]  [,4] [,5]  [,6]  [,7]  [,8]  [,9]
 [1,]  0.16 0.40  0.38  0.47 0.18 -0.05 -0.12 -0.16 -0.09
 [2,]  0.14 0.37  0.33  0.40 0.16 -0.03 -0.07 -0.10 -0.04
 [3,]  0.15 0.51  0.36  0.41 0.24  0.02  0.06  0.09  0.12
 [4,]  0.26 0.84  0.61  0.70 0.39  0.03  0.08  0.12  0.19
 [5,]  0.45 1.23  1.05  1.27 0.56 -0.07 -0.15 -0.21 -0.05
 [6,]  0.16 0.58  0.38  0.42 0.28  0.06  0.13  0.19  0.22
 [7,]  0.16 0.58  0.38  0.42 0.28  0.06  0.13  0.19  0.22
 [8,]  0.22 0.55  0.51  0.63 0.24 -0.07 -0.14 -0.20 -0.11
 [9,]  0.10 0.53  0.23  0.21 0.27  0.14  0.31  0.44  0.42
[10,] -0.06 0.23 -0.14 -0.27 0.14  0.24  0.55  0.77  0.66
[11,] -0.06 0.34 -0.15 -0.30 0.20  0.31  0.69  0.98  0.85
[12,] -0.04 0.25 -0.10 -0.21 0.15  0.22  0.50  0.71  0.62
 > temp 
[1] 3.340884 2.541701 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
[9] 0.000000
 > land.svd2 <- round(land.svd$u %*% (diag({temp=land.svd$d;temp[3:9]=0;temp}))%*% t(land.svd$v),2) 
 > round(lower.tri(cor(land), diag=T) * cor(land),2) 
      c1    c2    c3    c4    c5    m1   m2   m3 m4
c1  1.00  0.00  0.00  0.00  0.00  0.00 0.00 0.00  0
c2 -0.19  1.00  0.00  0.00  0.00  0.00 0.00 0.00  0
c3  0.00  0.00  1.00  0.00  0.00  0.00 0.00 0.00  0
c4  0.00  0.00  0.47  1.00  0.00  0.00 0.00 0.00  0
c5 -0.33  0.58  0.00 -0.31  1.00  0.00 0.00 0.00  0
m1 -0.17 -0.30 -0.21 -0.16 -0.17  1.00 0.00 0.00  0
m2 -0.26 -0.45 -0.32 -0.24 -0.26  0.67 1.00 0.00  0
m3 -0.33 -0.58 -0.41 -0.31 -0.33  0.52 0.77 1.00  0
m4 -0.33 -0.19 -0.41 -0.31 -0.33 -0.17 0.26 0.56  1
 > round(lower.tri(cor(land), diag=T) * cor(land.svd2),2) 
       [,1]  [,2]  [,3]  [,4]  [,5] [,6] [,7] [,8] [,9]
 [1,]  1.00  0.00  0.00  0.00  0.00    0    0    0    0
 [2,]  0.91  1.00  0.00  0.00  0.00    0    0    0    0
 [3,]  1.00  0.91  1.00  0.00  0.00    0    0    0    0
 [4,]  1.00  0.88  1.00  1.00  0.00    0    0    0    0
 [5,]  0.85  0.99  0.85  0.81  1.00    0    0    0    0
 [6,] -0.85 -0.56 -0.85 -0.88 -0.45    1    0    0    0
 [7,] -0.85 -0.56 -0.85 -0.88 -0.44    1    1    0    0
 [8,] -0.85 -0.56 -0.85 -0.88 -0.44    1    1    1    0
 [9,] -0.81 -0.50 -0.81 -0.84 -0.37    1    1    1    1


Exemple de Grossman et Frieder 

 >  m
         D1 D2 D3
a         1  1  1
arrived   0  1  1
damaged   1  0  0
delivery  0  1  0
fire      1  0  0
gold      1  0  1
in        1  1  1
of        1  1  1
shipment  1  0  1
sliver    0  2  0
truck     0  1  1
 >  m.svd <- svd(m)
 >  dim(m)
[1] 11  3
 >  q=rep(0,11)
 >  q[c(6,10,11)]=1
 >  q
 [1] 0 0 0 0 0 1 0 0 0 1 1
 >  t(q) %*% m.svd$u[,1:2] %*% solve(diag(m.svd$d[1:2]))
           [,1]      [,2]
[1,] -0.2140026 0.1820571
 >  t(m) %*% m.svd$u[,1:2] %*% solve(diag(m.svd$d[1:2]))
         [,1]       [,2]
D1 -0.4944666 -0.6491758
D2 -0.6458224  0.7194469
D3 -0.5817355 -0.2469149
 >  rbind(t(m) %*% m.svd$u[,1:2] %*% solve(diag(m.svd$d[1:2])),t(q) %*% m.svd$u[,1:2] %*% solve(diag(m.svd$d[1:2])))
         [,1]       [,2]
D1 -0.4944666 -0.6491758
D2 -0.6458224  0.7194469
D3 -0.5817355 -0.2469149
   -0.2140026  0.1820571
 >  matrix.cos((rbind(t(m) %*% m.svd$u[,1:2] %*% solve(diag(m.svd$d[1:2])),t(q) %*% m.svd$u[,1:2] %*% solve(diag(m.svd$d[1:2])))))
            D1         D2        D3            
D1  1.00000000 -0.1872244 0.8685840 -0.05395084
D2 -0.18722443  1.0000000 0.3241593  0.99098743
D3  0.86858397  0.3241593 1.0000000  0.44795947
   -0.05395084  0.9909874 0.4479595  1.00000000
 >