Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不放大舍入误差的情况下,将fortran x中的nxn矩阵A乘以以获得其幂?_Fortran_Fortran90_Numerical Methods_Numerical Stability - Fatal编程技术网

如何在不放大舍入误差的情况下,将fortran x中的nxn矩阵A乘以以获得其幂?

如何在不放大舍入误差的情况下,将fortran x中的nxn矩阵A乘以以获得其幂?,fortran,fortran90,numerical-methods,numerical-stability,Fortran,Fortran90,Numerical Methods,Numerical Stability,如何在不放大舍入误差的情况下,将Fortran x中的NxN矩阵A乘以幂?如果A可以对角化为 A p=pd 其中,p是某个NxN矩阵(每列称为“特征向量”),而D是一个NxN对角矩阵(对角元素称为“特征值”),则 A=pdp^{-1} 其中p^{-1}是p的逆矩阵。因此,A的二次幂导致 aa=pdp^{-1}pdp^{-1}=pdp^{-1} 将A重复乘以x得到 A^x=pd^xp^{-1} 请注意,D^x仍然是一个对角矩阵。让D的i第个对角线元素为D{ii}。然后,D^x的第i个对角线元素是

如何在不放大舍入误差的情况下,将Fortran x中的NxN矩阵A乘以幂?

如果A可以对角化为

A p=pd

其中,
p
是某个NxN矩阵(每列称为“特征向量”),而
D
是一个NxN对角矩阵(对角元素称为“特征值”),则

A=pdp^{-1}

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

aa=pdp^{-1}pdp^{-1}=pdp^{-1}

A
重复乘以
x
得到

A^x=pd^xp^{-1}

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

[D^x]{ii}=(D{ii}^x


也就是说,
D^x
的元素只是
x
元素
D
的第四次方,我想可以在没有很大舍入误差的情况下进行计算。现在,将
P
P^{-1}
分别从左侧和右侧乘以
D^x
,得到
A^x
A^x
中的误差取决于
P
P^{-1}
的误差,如果A可以对角化为

A p=pd

其中,
p
是某个NxN矩阵(每列称为“特征向量”),而
D
是一个NxN对角矩阵(对角元素称为“特征值”),则

A=pdp^{-1}

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

aa=pdp^{-1}pdp^{-1}=pdp^{-1}

A
重复乘以
x
得到

A^x=pd^xp^{-1}

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

[D^x]{ii}=(D{ii}^x


也就是说,
D^x
的元素只是
x
元素
D
的第四次方,我想可以在没有很大舍入误差的情况下进行计算。现在,将
P
P^{-1}
分别从左侧和右侧乘以
D^x
,得到
A^x
A^x
中的误差取决于
P
P^{-1}
的误差,这些误差可以通过数值包中的一些子程序(如LAPACK)进行计算。

正如norio在回答中提到的那样,一般可以采用Jordan(或Schur)分解,并以类似的方式进行详细说明(包括简要误差分析)参见Golub和Loan的矩阵计算第11章。

正如norio在回答中提到的,一般可以采用Jordan(或Schur)分解,并以类似的方式进行详细分析(包括简要误差分析)例如,请参阅Golub和Loan的《矩阵计算》第11章。

您的计算需要多精确?您是否尝试过使用64、128位浮点数?如果您可以展示一个带有结果和预期的测试用例,那将是非常棒的显示您的计算需要多精确?您是否尝试过使用64、128位浮点数rs?如果你能展示一个带有结果和期望的测试用例,那就太好了