首先要注意的是,找到多项式(任何多项式)的根和找到任意矩阵的特征值之间的对应关系是非常直接的,而且它是一个丰富的主题,请参阅Toh 和 Trefethen的 Pseudozeros of polynomials and pseudospectra of伴随矩阵以及那里的参考资料。
基本上,2×2 的情况是微不足道的,标准公式
在数值上是稳定和准确的,只要行列式
Δ的计算准确——当b^2时直接公式将不准确≈4ac,但由于 Kahan 有一个使用 FMA 的准确公式(https://hal.inria.fr/ensl-00649347v1/document)。
x1=−b−sign(b)Δ−−√2a,x2=c/(ax1),Δ=det(b2c2ab)
Δb2≈4ac
即使对于三次多项式,也没有这样的直接等价物。(编辑:请参阅下面 CADJunkie 评论中 Kahan 方法的链接。这很可能是错误的。)直接公式并不总是在数值上稳定(我认为与您的假设相反),并且它不能在数值上保持相同通过在某处插入正确的符号来作为二次公式。您可以尝试以更高的精度评估它,例如使用双原生算术。但是直接作用于多项式的方法非常复杂。例如(https://doi.org/10.1145/2699468,它也适用于四次多项式)你可以使用牛顿方法和一个很好的预先计算的第一个猜测,但它变得非常复杂,而且加速甚至不是那么大.
4 次多项式的显式公式同样在数值上并不总是稳定的。最难的多项式往往有不常见的根(小,或彼此接近,大小相差很多),但即使在几十亿个纯随机多项式上测试您的代码通常也可以揭示数值错误。
与此相关的一个奇怪的事情是 Jenkins-Traub 是一种寻找多项式根的常用方法,它实际上是一种变相的特征值算法(逆迭代)。
我会说公式的明确性在某种程度上具有误导性:它会诱使您认为因为公式具有封闭形式,这意味着它在某种程度上更便宜/更容易。我真的建议您在一些测试数据上实际测试/基准测试。不一定是真的:确定 ≥ 3 次多项式的根确定小矩阵特征值的完整问题的一个小整数难度系数,并且特征值的标准库例程更加健壮并且经过良好测试。因此,通过将小特征值问题简化为低次多项式根问题,您不一定会简化它。≥3
在这种情况下,使用特征多项式获取特征值的优缺点是什么?
我认为主要的缺点是你做出的这个假设:
另一方面,这个方程充其量只是四次的,我们有多项式根的解析公式,所以我们不应该离得太远。
因为一个公式是封闭形式的,并且是分析性的,这意味着它很容易/便宜/准确,不一定是真的。对于您可能拥有的特定数据,这可能是正确的,但据我所知,一般情况下并非如此。
PS 封闭形式和非封闭形式之间的整个区别在计算机算术中变得非常挑剔:你可能认为是封闭形式,但就计算机算术而言关心的是,这只是另一个近似有理函数,它可能更快,但与定义特征值算法结果的近似有理函数没有根本不同。cos(⋯)