R中矩阵的非标准化零空间基础

时间:2017-09-01 02:03:21

标签: r linear-algebra

我正在使用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

但是我仍然希望得到后者,非标准化形式的零空间基础,就好像这些值直接从减少的行梯形矩阵中获得。

1 个答案:

答案 0 :(得分:1)

您可能想尝试

B = rref(A)
solve(B[,1:2], -B[,3])

这为您提供了前两列所需的组合,以获得第三列的一个单元。只需添加一个即可获得结果。

类似地,对于零空间大小大于1的情况。