我有向量的子空间w
其元素总和为 0。
我想找到一个投影矩阵Z
这样它将任何x
向量投影到子空间 w(即向量总和为 0 的子空间)上。
是否有 R 函数来执行此操作?
该问题没有指定如何提供w
,但如果w
是一个具有跨越空间 w 的完整秩的矩阵,则
Z <- w %*% solve(crossprod(w), t(w))
如果w
有正交列,则上面的行简化为:
Z <- tcrossprod(w)
另一种可能性是使用 pracma
包,在这种情况下w
不需要是完整的等级:
library(pracma)
Z <- tcrossprod(orth(w))
如果w
是所有 n 向量的总和为零的空间,则:
Z <- diag(n) - matrix(1, n, n) / n
注意 重读问题后已修改。