如何求解R中b = 0的线性方程组

Mah*_*oud 1 linear-equation r system

R我需要求解线性方程系统(Ax = b的),其中b = 0.通过使用solve()它只返回一个零向量的答案,但我想要系统的非零解决方案.有什么办法吗?

liu*_*hao 5

我想你正在寻找矩阵的零空间A.试试:

library(MASS)
Null(t(A))

R > (A <- matrix(c(1,2,3,2,4,7), ncol = 3, byrow = T))
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    4    7
R > Null(t(A))
              [,1]
[1,] -8.944272e-01
[2,]  4.472136e-01
[3,]  7.771561e-16
R > (A <- matrix(c(1,2,3,2,4,6), ncol = 3, byrow = T))
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    4    6
R > Null(t(A))
           [,1]       [,2]
[1,] -0.5345225 -0.8017837
[2,]  0.7745419 -0.3381871
[3,] -0.3381871  0.4927193
Run Code Online (Sandbox Code Playgroud)

小心.有一些舍入错误.

此外,表示r矩阵的等级A,以及q列的数量A.如果r = q,则零向量是唯一的答案.如果r> q,则没有解决方案.如果r <q,我们可以使用上面的Null函数得到零空间A,但记住它们不是唯一的,无论是大小还是方向.

参考:http://stat.ethz.ch/R-manual/R-patched/library/MASS/html/Null.html