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 伪逆。
如果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 伪逆。