是否存在任何已知问题(例如精度问题)eig 和 charpoly 函数足够大矩阵?
即使我改变要么矩阵之间的条目是否能够找到准确的特征值和特征多项式?我正在使用较小的尺寸.
我的矩阵是满秩和对称的。矩阵的条件数似乎在中间到而行/列总和的绝对值相同。
如果我能得到对我来说足够好的 char poly。
是否存在任何已知问题(例如精度问题)eig 和 charpoly 函数足够大矩阵?
即使我改变要么矩阵之间的条目是否能够找到准确的特征值和特征多项式?我正在使用较小的尺寸.
我的矩阵是满秩和对称的。矩阵的条件数似乎在中间到而行/列总和的绝对值相同。
如果我能得到对我来说足够好的 char poly。
如果,如您所说,您只需要矩阵的特征多项式,而不需要特征值(求解特征多项式的根通常不会给出准确的特征值),并且因为您的矩阵非常小() 并且只有整数,因此仅使用 matlab 的符号操作来精确计算特征多项式可能就足够了,如下所示:
>> charpoly(sym(gallery('grcar', 10)))
ans =
[ 1, -10, 54, -200, 553, -1176, 1935, -2424, 2211, -1328, 401]
这回避了数值精度的任何问题eig
。显然,特征多项式的(整数)系数可能非常大。
基里尔使用符号线性代数的建议是正确的。另一种方法是在多个有限域上求解特征多项式,然后使用中国剩余定理重构特征多项式. 有限域线性代数不会遇到与您遇到的相同类型的数值问题eig
。