【发布时间】:2013-02-28 17:54:17
【问题描述】:
这是我要解决的方程式:
h = (X'*X)^-1*X'*y
其中 X 是矩阵,y 是向量((X'X)^-1 是 X 转置乘以 X 的倒数)。我在 Matlab 中将其编码为:
h = (X'*X)\X'*y
我认为这是正确的。问题是 X 大约是 10000x10000,即使是我能找到的最强大的计算机(16 核,24GB RAM),试图计算这个逆也会使 Matlab 崩溃。有什么办法可以将其拆分,或者有一个专为进行如此大的反转而设计的库吗?
谢谢。
【问题讨论】:
-
矩阵有多大?你能告诉我向量 y 和矩阵 X。或者至少让我知道它是什么样的吗?
-
X和y的维度是多少?如果维度非常高,您可能需要计算逆的近似值。你不会错过一些*s btw 吗? -
已编辑问题的信息。 X 约为 10,000x10,000。向量 y 的维度匹配(也大约 10,000 长)。
-
你知道矩阵的结构吗?就像它的稀疏等?顺便说一句,我认为您可以使用 inv() 函数代替 '\',因为 '\' 解决了最小二乘问题(伪逆)
-
是稀疏的吗?你需要保持
double精度吗?你可以使用 gpu 吗?
标签: matlab matrix-inverse