【问题标题】:Inverse Matrix Multiplication. Im not getting the same answer逆矩阵乘法。我没有得到相同的答案
【发布时间】:2020-12-24 05:39:04
【问题描述】:

我的工作- 除了最后一个问题 #What is 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]]

课程

初始化矩阵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

【问题讨论】:

标签: numpy matrix


【解决方案1】:

您将矩阵声明为 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_invnp.dot(A, A_inv)A.dot(A_inv)np.matmul(A, A_inv)

【讨论】:

  • 是的,谢谢,我的答案更接近了。可能是舍入错误
猜你喜欢
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多