我R
需要求解一个线性方程组 (Ax=b),其中 b=0。通过使用solve()
它只返回一个零向量作为答案,但我想要系统的非零解决方案。有什么办法吗?
问问题
1784 次
1 回答
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
当心。有一些舍入误差。
此外,表示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
于 2013-04-22T17:08:49.660 回答