A_inverse*A=Octave 中的单位矩阵?

A_inverse*A=Identity Matrix in Octave?

如果A是nxn矩阵,那么在octave中,pinv(A)表示A的逆矩阵。 然后 pinv(A)*A 应该产生单位矩阵 I(n)。但是下面的代码不起作用。

A=[ 1 2 3,
4 5 6,
7 8 9];

pinv(A)*A


0.83333   0.33333  -0.16667
0.33333   0.33333   0.33333
-0.16667   0.33333   0.83333

i=1,2,3 的对角线元素,(pinv(A)*(A))[i,i] 甚至不接近 one.What 出错了?

尝试使用 inv(A) 函数,您将获得非常有用的信息:

 >> inv(A)
 warning: matrix singular to machine precision, rcond = 1.54198e-018

矩阵A不可逆!它是单一的。尝试更改矩阵 A:

>> A=[ 10 2 3; 4 5 6; 7 8 9]
A =
10    2    3
4    5    6
7    8    9
>> inv(A)*A
ans =
 1.00000   0.00000   0.00000
-0.00000   1.00000   0.00000
 0.00000   0.00000   1.00000
>> pinv(A)*A
ans =
 1.0000e+000  -2.2204e-016  -4.4409e-016
-1.7764e-015  1.0000e+000  -3.5527e-015
 5.3291e-015  5.3291e-015  1.0000e+000

pinv() returns 伪逆。

Moore–Penrose pseudoinverse