首页 > 解决方案 > 逆矩阵乘法。我没有得到相同的答案

问题描述

我的工作- 除了最后一个问题#A^(-1)*A 是什么之外,我得到了相同的答案?

将 numpy 导入为 np

初始化矩阵 A

A = np.array([[1, 2, 0], [0, 5, 6], [7, 0, 9]])

转置 A

A_trans = np.transpose(A)

取 A 的倒数

A_inv = np.linalg.inv(A)

什么是 A^(-1)*A?

A_invA = (np.linalg.inv(A))*A


print(A)

print(A_trans)

print(A_inv)

print(A_invA)

[[1 2 0]
[0 5 6]
[7 0 9]]

[[1 0 7]
[2 5 0]
[0 6 9]]

[[ 0.34883721 -0.13953488  0.09302326]
[ 0.3255814   0.06976744 -0.04651163]
[-0.27131783  0.10852713  0.03875969]]


[[ 0.34883721 -0.27906977  0.        ]
[ 0.          0.34883721 -0.27906977]
[-1.89922481  0.          0.34883721]]

Coursera

初始化矩阵 A

A = [1,2,0;0,5,6;7,0,9]

转置 A

A_trans = A' 

取 A 的倒数

A_inv = inv(A)

什么是 A^(-1)*A?

A_invA = inv(A)*A



A =

1   2   0
0   5   6
7   0   9

A_trans =

1   0   7
2   5   0
0   6   9

A_inv =

0.348837  -0.139535   0.093023
0.325581   0.069767  -0.046512
-0.271318   0.108527   0.038760

A_invA =

1.00000  -0.00000   0.00000
0.00000   1.00000  -0.00000
-0.00000   0.00000   1.00000

标签: numpymatrix

解决方案


您将矩阵声明为 numpy 数组:

A = np.array([[1, 2, 0], [0, 5, 6], [7, 0, 9]])

这意味着该*运算符不是矩阵乘法,而是逐元素运算符。请参阅https://numpy.org/doc/stable/user/quickstart.html#basic-operations

与许多矩阵语言不同,乘积运算符 * 在 NumPy 数组中按元素进行操作。矩阵乘积可以使用 @ 运算符(在 python >=3.5 中)或点函数或方法来执行:

您可以使用任何A @ A_inv, np.dot(A, A_inv), A.dot(A_inv), np.matmul(A, A_inv),


推荐阅读