如何在 R 中检查矩阵是否可逆?


如果矩阵是奇异的,则它不可逆;如果它是非奇异的,则它可逆。因此,我们可以检查矩阵是否奇异。我们可以为此目的使用 matrixcalc 的 is.singular.matrix 函数。例如,如果我们有一个名为 M 的矩阵,则要检查它是否可逆,我们可以使用 is.singular.matrix(M)。

示例 1

加载 matrixcalc 包并创建矩阵 -

library(matrixcalc)
M1<−matrix(1:25,ncol=5)
M1

输出

   [,1] [,2] [,3] [,4] [,5]
[1,] 1    6    11 16 21
[2,] 2 7 12 17 22
[3,] 3 8 13 18 23
[4,] 4 9 14 19 24
[5,] 5 10 15 20 25

示例

is.singular.matrix(M1)

输出

[1] TRUE

这意味着 M1 不可逆。

示例 2

 在线演示

M2<−matrix(rpois(64,8),nrow=8)
M2

输出

   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 4    3    9    9    7    8    6   1
[2,] 5    8    8    10  12    9    8   6
[3,] 6    6    7    14   9   11   13   8
[4,] 6    7    10   4   6    8     8   7
[5,] 13   8    10   6   3    7     9   4
[6,] 7    10   14   8   8    5    7    2
[7,] 3    9    7    9   6    4    6    8
[8,] 5    9    13   6   8    15   8    2

示例

is.singular.matrix(M2)

输出

[1] FALSE

这意味着 M2 可逆。

示例 3

 在线演示

M3<−matrix(rpois(36,5),nrow=6)
M3

输出

    [,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1    8    5    5     8    4
[2,] 4    9    4    2     4    6
[3,] 2    5    1    7     7    4
[4,] 4    4    1    7     5    2
[5,] 6    6    2    4     6   10
[6,] 9    6    1    4     9    3

示例

is.singular.matrix(M3)

输出

[1] FALSE

这意味着 M3 可逆。

示例 4

 在线演示

M4<−matrix(rnorm(36),nrow=6)
M4

输出

         [,1]       [,2]       [,3]       [,4]       [,5]       [,6]
[1,] −0.2336251 0.3096045 −0.8818330 −0.04347818 −0.1778513 −0.4080015
[2,] −1.2177266 2.1817922 −0.9377145 −1.78284702 0.4995368 −1.3991093
[3,] 1.2766525 −0.2323218 0.8519997 0.31299613 −0.6803835 −1.1479453
[4,] 0.7903845 0.9700842 0.5117611 1.19601996 0.5250466 1.6161917
[5,] −1.3520358 0.6123879 1.9760799 −2.26366053 −1.4070510 0.8421128
[6,] 0.7777491 −2.0503730 −0.2613909 −1.35740539 0.9093589 0.9895680

示例

is.singular.matrix(M4)

输出

[1] FALSE

这意味着 M4 可逆。

示例 5

 在线演示

M5<−matrix(runif(25,2,5),nrow=5)
M5

输出

      [,1]    [,2]     [,3]     [,4]     [,5]
[1,] 4.576693 3.199907 4.005826 2.526450 3.443598
[2,] 2.470785 2.327514 2.169090 4.098793 3.940592
[3,] 4.547359 4.909557 3.066596 2.676077 3.837429
[4,] 4.135820 2.309655 3.839309 3.164276 3.802660
[5,] 2.634209 3.422963 3.619294 2.017092 3.601271

示例

is.singular.matrix(M5)

输出

[1] FALSE

这意味着 M5 可逆。

示例 6

 在线演示

M6<−matrix(rexp(25,1.25),nrow=5)
M6

输出

      [,1 ]          [,2]       [,3]       [,4]    [,5]
[1,] 0.1643510 0.1040981 0.584215338 2.2388616 0.05568353
[2,] 0.1125260 0.6645813 0.004011225 0.4228827 2.27699989
[3,] 0.7495866 1.3936340 0.823750284 0.9881828 0.51836239
[4,] 0.2237822 2.6784765 0.614246592 1.1034886 1.11131293
[5,] 3.9557367 1.4623781 0.594690357 0.4180981 0.70791124

示例

is.singular.matrix(M6)

输出

[1] FALSE

这意味着 M6 可逆。

示例 7

 在线演示

M7<−matrix(rpois(64,2),ncol=8)
M7

输出

      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    2    2    1    1    2    2    2    1
[2,]    3    3    1    2    4    0    1    1
[3,]    0    3    1    3    2    2    1    2
[4,]    2    1    2    1    2    1    1    4
[5,]    2    3    0    2    0    2    1    1
[6,]    3    2    6    1    0    1    2    2
[7,]    4    1    3    4    2    2    3    4
[8,]    2    0    1    2    4    2    1    1

示例

is.singular.matrix(M7)

输出

[1] FALSE

这意味着 M7 可逆。

示例 8

 在线演示

M8<−matrix(rnorm(16,5,2.1),ncol=4)
M8

输出

         [,1]       [,2]    [,3]    [,4]
[1,] 4.058489 6.951464 4.846994 6.376624
[2,] 3.786127 10.430663 6.350964 4.439200
[3,] 4.166099 1.210901 7.712636 5.234337
[4,] 2.068379 4.461313 4.033786 3.732698

示例

is.singular.matrix(M8)

输出

[1] FALSE

这意味着 M7 可逆。

更新于: 2021 年 2 月 5 日

978 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告