2013-09-16 127 views
0

我需要一個MATLAB代碼轉換成C++,並且我卡用指令:我可以使用Eigen來求解線性方程組,其形式爲Ax = b且A是稀疏的。

a = K\F 

,其中K是大小爲n×n個的稀疏矩陣,F是大小爲n的列向量。

我知道使用Eigen庫很容易解決 - 我嘗試了fullPivLu()方法,並且我已經能夠使用Matrix和Vector構建工作片段。

但是,我的KSparseMatrix<double>(而FVectorXd)。我聲明:

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是一個稀疏矩陣?

謝謝你的幫助。

+0

請看相關文檔[page](http://eigen.tuxfamily.org/dox/group__TopicSparseSystems.html)。 – ggael

回答

3

Eigen :: SparseLU會爲你工作嗎?

+0

謝謝,我錯過了! –

相關問題