得到矩阵R的所有可能的线性组合

  • 本文关键字:有可能 线性 组合 r matrix
  • 更新时间 :
  • 英文 :


假设我有以下增广矩阵

100 100 0   100
325 0   500 500

用方程式表示:

c1(100) + c2(100) + c3(0) = 100
c1(325) + c2(0) + c3(500) = 500

我无法更改最后一列。如何找到所有可能的线性组合?显而易见的解决方案是c2=1和c3=1。但我如何以系统的方式获得它呢?

我试着在pracma软件包中使用rref,但我得到了

1 0  1.538462   1.5384615
0 1 -1.538462  -0.5384615

我真的不能有任何分数值。

有什么建议吗?

这是一个欠定线性方程组。借助于A的Moore-Penrose逆,可以得到它的所有解。设CCD_ 2为CCD_ 3的Moore-Penrose逆。然后由Ainv %*% b + (I - Ainv %*% A) %*% w给出了A %*% x = b的所有解,其中I是单位矩阵,w是任意向量。

A <- rbind(c(100,100,0), c(325,0,500))
b <- c(100,500)
Ainv <- MASS::ginv(A)
w <- c(1,2,3) # arbitrary
one_solution <- Ainv %*% b + (diag(3L) - Ainv %*% A) %*% w
A %*% one_solution
#      [,1]
# [1,]  100
# [2,]  500

最新更新