作者Leon (Achilles)
站內MATLAB
標題Re: [問題] 關於找eigenvalue的問題
時間Sat Mar 24 03:27:25 2012
※ 引述《bob10590213 (C-AN)》之銘言:
: 不好意思請問一下各位板友,我想問一個關於抓eigenvalue的問題,
: 我的矩陣的eigenvalue是複數,我想要抓絕對值為1的那些,可是不
: 知道有什麼好的辦法;我本來是用eig直接硬做,然後再寫個if挑出
: 絕對值為1的那些,可是矩陣一大(10000,10000)好像就跑不動了,我
: 是用Mac Pro跑;所以我想問說,不知道有沒有其他指令可以使用或
: 者能不能用eigs來處理這個問題,謝謝。
都不行.
這個問題的關鍵點在於 memory issue.
Matrix (1e^4, 1e^4), 需要 O(1e^8),
在我的 machine 大約用掉了 1 GB.
SVD 會產生 U,S,V, 大致上和原來的 matrix 一樣大.
如果你只有 4GB 的 system memory, 那就暴掉了.
有兩個解決方法:
1. 找台 large memory machine 去做
但 SVD 的 time complexity 很高, 也許要很久.
2. 改用 linear equation, optimization search
簡單的解法:
let x is the eigenvector, then we have
A*x = x. (A-I)*x = 0
Let B = ( A- I ), we can write it as B* x = 0
Use quad-form, write a cost function
f(x) = (B* x)' * (B* x )
Run the gradient search on f(x) you should be able to find x.
Then, remove the corresponding vector from A, do it iteratively..
--
趙客縵胡纓,吾鉤霜雪明。銀鞍照白馬,颯沓如流星。
十步殺一人,千里不留行。是了拂衣去,深藏身與名。
閑過信陵飲,脫劍膝前橫。將炙啖朱亥,持觴勸侯贏。
三杯吐然諾,五嶽倒為輕。眼花耳熱後,意氣素霓生。
就趙揮金錘,邯鄲先震驚。千秋二壯士,烜赫大梁城。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 76.170.77.172
1F:推 bob10590213:先謝謝你這麼認真幫我,然後我想問的是,這樣不就只有 03/27 22:51
2F:→ bob10590213:取到eigenvalue=1的,但是我可能需要eigenvalue絕對值 03/27 22:51
3F:→ bob10590213:為1的那些耶!還是一樣可以這麼做? 03/27 22:52