作者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