我正在使用pracma
包,其中包含函数nullspace()
,返回Null(A)的规范化基矢量:
> require(pracma)
> (A = matrix(c(1,2,3,4,5,6), nrow=2, byrow=T))
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> nullspace(A)
[,1]
[1,] 0.4082483
[2,] -0.8164966
[3,] 0.4082483
这很好。但是(不要问),我想快速检查一下如果我要生成减少行的梯形图,我会得到的值:
> rref(A)
[,1] [,2] [,3]
[1,] 1 0 -1
[2,] 0 1 2
并从那里“手动”找出零空间为
N(A) = [1, -2, 1]'
是的,后者是前者的标量倍数:
> c(1,-2,1)/nullspace(A)
[,1]
[1,] 2.44949
[2,] 2.44949
[3,] 2.44949
但是我仍然希望得到后者,非标准化形式的零空间基础,就好像这些值直接从减少的行梯形矩阵中获得。
答案 0 :(得分:1)
您可能想尝试
B = rref(A)
solve(B[,1:2], -B[,3])
这为您提供了前两列所需的组合,以获得第三列的一个单元。只需添加一个即可获得结果。
类似地,对于零空间大小大于1的情况。