numpy - 逆矩阵乘法。我没有得到相同的答案
问题描述
我的工作- 除了最后一个问题#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
解决方案
您将矩阵声明为 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)
,
推荐阅读
- r - 是否可以在闪亮的应用程序中包含动画条形图
- r - R函数在同一表和列中查找值,但值不同
- ios - 在 iPhone 上显示 UNNotificationActions,但在 Apple Watch 上不显示
- mysql - 陷入复杂的查询
- mysql - 1054 - 'where 子句'中的未知列'iaiirq.assignedRQQty'
- python - 在文件中查找最大值
- javascript - 在 GraphQL 解析器中加入表时出现问题,抛出 400 错误
- c - 将字符串句子转换为小写
- python - 如何使用此方法制作子图
- python - 正则表达式“findall”+接下来的七个字符