看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《lin780222 (饅頭)》之銘言: : 複數3X3矩陣求eigenvalue及eigenvector,Eigen求出的3個eigenvalue與matlab一致, : 但當求出的eigenvalue虛部不為0的時候,Eigen與matlab所求出的eigenvector不同。 : 餵入的資料(Input): : 3x3矩陣A : row1:11 -12 13 : row2:-4 -5 6 : row3:-2 -3 -4 : 拜託各位了,實在不清楚哪裡出問題,試了好久QQ 因為一般求 eigen value 的演算法是近似的解析解 實作細節不同,本來就會有不同的誤差,這很正常 想要代數解的話,就要避開浮點數運算誤差,用有理數去算 eigen 是 template library 可以試試看套用 boost::rational typedef Matrix<boost::rational<int>, 3, 3> Matrix3r; Matrix3r m; m << 11, -12, 13, -4, -5, 6, -2, -3, -4; 不過我不確定 boost::rational 跟 eigen 相處好不好。 你可能要自己試試看會不會動。 以前我線性代數作業都是寫程式用電腦算 一步一步列出運算順序,我再抄到紙上 -_-|| -- To iterate is human, to recurse, divine. 遞迴只應天上有, 凡人該當用迴圈.   L. Peter Deutsch -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.156.82
VictorTom:yoco大真強者....:) (直接印出來不是更好XD) 01/04 00:04
yoco315:因為教授要求要有計算過程 T__________T 01/04 00:05
yoco315:而且作業是要手寫的,嗚嗚 01/04 00:06
VictorTom:(拍拍) 直接手寫source code給他叫他自己去run...XD 01/04 00:07
lin780222:謝謝你用心的解說^^ 01/05 11:12
yoco315:後來有沒有成功阿?我很好奇 XD 01/06 13:01
lin780222:因為我後來試了複數矩陣(也就是每個元素虛部都不等於0, 01/06 23:14
lin780222:也有這個問題,所以推測可能跟精準度沒有直接的關係,所 01/06 23:15
lin780222:幸最終求得的係數並無受到影響,會導致eigenvector不一 01/06 23:20
lin780222:致,(透過請教Grad-ProbAsk)的版友,是說因為除了一維基 01/06 23:23
lin780222:底必會保有比例關係,其他維度之基底會有生成關係 01/06 23:25
yoco315:了解了解 01/07 16:28