如何在不放大舍入误差的情况下将 nxn 矩阵 A 乘以 fortran x 倍以获得其功率



如何在不放大舍入误差的情况下将 NxN 矩阵 A 乘以 Fortran x 次以获得其功率?

如果 A 可以对角化为

A P = P D

其中P是某个 NxN 矩阵(每列称为"特征向量"(,D是 NxN 对角矩阵(对角元素称为"特征值"(,则

A = P D P^{-1}

其中P^{-1}P的逆矩阵。因此,A的二次幂导致

A A= P D P^{-1} P D P^{-1} = P D D P^{-1} .

重复A乘法 x 倍得到

A^x = P D^x P^{-1} .

请注意,D^x仍然是对角矩阵。让D的第i对角线元素D_{ii}。然后,D^x的第i对角线元素为

[D^x]_{ii} = (D_{ii})^x .

也就是说,D^x的元素只是D元素的x次方,并且可以计算而没有太大的舍入误差,我猜。现在,您将PP^{-1}分别从左和右乘到此D^x以获得A^xA^x中的误差取决于PP^{-1}的误差,这可以通过数字包中的一些子例程(如LAPACK(来计算。

正如Norio在回答中提到的,人们通常可以使用Jordan(或Schur(分解并以类似的方式进行 - 有关详细信息(包括简短的错误分析(,请参阅例如Golub和Loan的矩阵计算第11章。

最新更新