0

我在Matlab中使用polyeig命令來解決Matlab中的階2的多項式特徵值問題。我知道系統有一個單獨的0特徵值(這是由於零係數矩陣的形式,其中每個對角線元素是-1行乘以在同一行中的元素的總和,所以向量(1 1 1 ... 1 )有0個特徵值)。在Matlab中提高polyeig的精度

系統的尺寸爲約150〜150。 當我使用polyeig命令的最低特徵值我得到的是順序1E-4(其被認爲是0的特徵值)和所述第二最低是的爲了1E-1。隨着系統尺寸的減小,最低特徵值降低到1E-14的數量級,這是合理的,但1E-4數量太多。

無論如何要達到更好的準確性或任何其他庫,你會建議? 我也可以將多項式特徵值問題轉化爲更高維度(給定維度的2倍)的廣義特徵值問題,但我不確定這會如何影響速度和準確性。我想看看在重新解決問題之前是否有更簡單的解決方案。所以我希望對這些問題提出任何建議。

編輯:問題已解決,它實際上是關於我正在使用的INPUT文件的精度,它只打印了4位數字。找到更好的那個後,精度有所提高。無論如何謝謝。

+0

很好的工作!我經常發現,爲StackOverflow寫一個詳細的問題可以幫助我找到問題。你可以發佈你的解決方案作爲答案並接受它嗎? –

回答

0

問題原來是我用的輸入文件,它只打印了4個小數點。現在即使使用800x800的矩陣,我也只能得到e-11的精確度問題,這很好。