2013-05-12 98 views
2

我想在C++中編寫一個算法,我使用了Eigen庫。在C++/Eigen中求解線性方程

的問題是,我需要解決以下等式在C + +:

Find the coefficients: s1,..., sn ∈ R such that a(-1)ψi = s1ψ1 +...+snψn 

ψi:矩陣是已知的。

+1

你已經試過了什麼? – 2013-05-12 17:57:59

+0

給出一個實際表達式的例子,你會找到係數並告訴我們你掛了什麼。 – ChiefTwoPencils 2013-05-12 18:17:01

+1

我有一個方程:X = a.M1 + b.M2 + c.M3 與X,M1,M2,M3已知矩陣 我的問題是如何找到係數a,b和c。 – user2342513 2013-05-12 18:42:52

回答

2

使用您的評論的符號,形成未知數y:=[a,b,c]的載體,形成右手側包含基質X作爲向量的係數向量f,並且類似地形成矩陣A其中第j個列對應於矩陣Mj的條目。

在這一點上,你現在必須解決形式A*y = f的超定問題。假設您正在尋找最小二乘法解決方案,那麼您可以閱讀doc page以獲取有關如何使用Eigen執行此任務的所有詳細信息。

+0

謝謝你的解釋,這非常有幫助,這正是我需要的。 – user2342513 2013-05-15 14:31:52

+0

不好意思,但是我怎樣才能形成矩陣A?一列不能包含矩陣的所有條目..你能舉個例子嗎?謝謝 – user2342513 2013-05-15 15:41:22

+0

假設Mj是一個特徵矩陣:'A.col(j)= VectorXd :: Map(Mj.data(),A.rows())'。我們有A.rows()== Mj.rows()* Mj.cols() – ggael 2013-05-15 21:38:59