MATLAB矩阵反转:inv(X)与X \ eye(size(X))

时间:2018-07-25 18:14:46

标签: matlab matrix matrix-inverse

基于wonderful MATLAB documentation,很明显,在求解线性方程组时,出于数值稳定性的考虑,最好使用X\binv(X)*b。它还注意到X^(-1)等效于inv(X)。但是,它没有提到X\eye(size(X))inv(X)之间的关系!我想使用更简洁的表示法,inv(X)应该是首选形式,但在文档的任何地方都找不到对此的确认。

文档提到\使用高斯消除,而inv使用LU分解。

当我使用类似于that provided in the documenation的示例对它们进行测试时,发现两者并不相同:

n = 500;
Q = orth(randn(n,n));
d = logspace(0,-10,n);
A = Q*diag(d)*Q';

y = inv(A);
z = A\eye(n);
disp(['Difference: ', num2str(norm(inv(A) - A\eye(n)))]);

结果:

Difference: 2.2957e-05

谁能解释这两种方法中哪个在数值上更稳定?

0 个答案:

没有答案