r语言中矩阵QR分解_R语言--矩阵运算

一、数学上的矩阵运算:

1.生成矩阵:matrix()

> a<-matrix(data = 1:16,nrow = 4)
> a
     [,1] [,2] [,3] [,4]
[1,]    1    5    9   13
[2,]    2    6   10   14
[3,]    3    7   11   15
[4,]    4    8   12   16

2.矩阵加法:+ -

> a+a
     [,1] [,2] [,3] [,4]
[1,]    2   10   18   26
[2,]    4   12   20   28
[3,]    6   14   22   30
[4,]    8   16   24   32
> a-a
     [,1] [,2] [,3] [,4]
[1,]    0    0    0    0
[2,]    0    0    0    0
[3,]    0    0    0    0
[4,]    0    0    0    0

3.矩阵乘法(数乘法: *矩阵乘法: %*%)

> 10*a
     [,1] [,2] [,3] [,4]
[1,]   10   50   90  130
[2,]   20   60  100  140
[3,]   30   70  110  150
[4,]   40   80  120  160
> a*a
     [,1] [,2] [,3] [,4]
[1,]    1   25   81  169
[2,]    4   36  100  196
[3,]    9   49  121  225
[4,]   16   64  144  256
> a%*%a
     [,1] [,2] [,3] [,4]
[1,]   90  202  314  426
[2,]  100  228  356  484
[3,]  110  254  398  542
[4,]  120  280  440  600

*:表示矩阵的 Hadamard 积,也就是对应位置相乘。

%*%:是一般矩阵的乘法

4.矩阵转置:t()

> t(a)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
[4,]   13   14   15   16

5.矩阵求逆:solve(a,b)

r语言中矩阵QR分解_R语言--矩阵运算_第1张图片

这个函数其实是求解线性方程组ax=b,a是一个系数矩阵,x是变量,b也是矩阵。当b缺失时,b默认为单位阵,此时x为a的逆矩阵。

> solve(a)
Error in solve.default(a) : 
  Lapack例行程序dgesv: 系统正好是奇异的: U[3,3] = 0

由6可知,矩阵的行列式为0,故a不可逆。

6.矩阵行列式 : det()

> det(a)
[1] 0

7.对角矩阵:

7.1 生成对角阵:diag(1,2,3,4)

> diag(c(1,2,3,4))
     [,1] [,2] [,3] [,4]
[1,]    1    0    0    0
[2,]    0    2    0    0
[3,]    0    0    3    0
[4,]    0    0    0    4

7.2 提取对角线上的元素:diag()

> diag(c(1,2,3,4))
     [,1] [,2] [,3] [,4]
[1,]    1    0    0    0
[2,]    0    2    0    0
[3,]    0    0    3    0
[4,]    0    0    0    4

8. 解矩阵方程:solve()

9.特征值和特征向量:eigen()

以下为参考资料:

R语言-强大的矩阵运算 - openthings的个人空间 - OSCHINA​my.oschina.net
r语言中矩阵QR分解_R语言--矩阵运算_第2张图片
R语言矩阵运算 - 百度文库​wenku.baidu.com

二、多元统计中的矩阵

1.协方差矩阵:

> cov(iris[,1:4])
             Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length    0.6856935  -0.0424340    1.2743154   0.5162707
Sepal.Width    -0.0424340   0.1899794   -0.3296564  -0.1216394
Petal.Length    1.2743154  -0.3296564    3.1162779   1.2956094
Petal.Width     0.5162707  -0.1216394    1.2956094   0.5810063

2.相关系数矩阵:

> cor(iris[,1:4])
             Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length    1.0000000  -0.1175698    0.8717538   0.8179411
Sepal.Width    -0.1175698   1.0000000   -0.4284401  -0.3661259
Petal.Length    0.8717538  -0.4284401    1.0000000   0.9628654
Petal.Width     0.8179411  -0.3661259    0.9628654   1.0000000

3.均数向量:rowmean();colmean();

> colMeans(iris[,1:4])
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
    5.843333     3.057333     3.758000     1.199333 

你可能感兴趣的:(r语言中矩阵QR分解,r语言向量转置,利用逆矩阵解线性方程组,生成全1矩阵)