繁体   English   中英

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

[英]Getting all possible Linear Combinations of a matrix R

假设我有以下增广矩阵

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 逆,您可以得到它的所有解。 Ainv是的Moore-Penrose逆A 然后A %*% x = b所有解都由Ainv %*% b + (I - Ainv %*% A) %*% w ,其中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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM