我需要一個MATLAB代碼轉換成C++,並且我卡用指令:我可以使用Eigen來求解線性方程組,其形式爲Ax = b且A是稀疏的。
a = K\F
,其中K
是大小爲n×n個的稀疏矩陣,F
是大小爲n的列向量。
我知道使用Eigen庫很容易解決 - 我嘗試了fullPivLu()
方法,並且我已經能夠使用Matrix和Vector構建工作片段。
但是,我的K
是SparseMatrix<double>
(而F
是VectorXd
)。我聲明:
SparseMatrix<double> K(nec, nec);
VectorXd F(nec);
,似乎稀疏矩陣不具有fullPivLu()
方法,也不是lu()
之一。
我試過,其實,這兩種不同的方法,從文檔採取:
//1.
MatrixXd x = K.fullPivLu().solve(F);
//2.
VectorXf x;
K.lu().solve(F, &x);
他們不工作,因爲fullPivLu()
和lu()
都不是'Eigen::SparseMatrix<_Scalar>'
所以成員,我在問:有沒有一種方法可以使用Eigen for C++來解決線性方程組(MATLAB的mldivide或'\'),K是一個稀疏矩陣?
謝謝你的幫助。
請看相關文檔[page](http://eigen.tuxfamily.org/dox/group__TopicSparseSystems.html)。 – ggael