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的精确度问题,这很好。