2011-05-02 93 views
10

我已經搜索了很多這個,但我找不到任何有關兩種方法'eig'和'eigs'如何不同的答案。特徵值和特徵向量之間有什麼區別?'eig'和'eigs'有什麼區別?

+1

這可能是不適合這個網站,因爲它主要是一個大約兩個數值算法的差,以確定本徵值/矢量問題。 – 2011-05-02 09:38:54

+0

注意截至r2017b:'eigs'的輸出順序與'eig'不同。參見[這裏](https://nl.mathworks.com/help/matlab/release-notes.html?rntext=eigs&startrelease=R2015a&endrelease=R2017b&groupby=release&sortby=descending&searchHighlight=eigs) – 2017-12-06 13:10:11

回答

18

他們使用不同的算法,針對不同的問題和不同的目標。

eig是好,速度快,一般採用特徵值/向量解算器。當你的矩陣具有符合記憶的實際尺寸時,以及當你需要所有的特徵值/矢量時,適合使用。稀疏矩陣在eig中完全不起作用。

Eigs是一個求解器是比較合適的,因爲當你只需要特徵值/向量的有限的子集。這裏矩陣通常以稀疏格式存儲,因爲作爲一個完整的矩陣,它將佔用太多的內存來存儲。看來eigs基於ARPACK

如果你真正所要求的實際算法的細節,這是一個問題,顯然是不合適的這個網站。坐下來一份「矩陣計算」的副本,或者更好,請閱讀文檔中列出的eigs的參考對。