我想解决线性方程Ax = b,每个A包含在3d矩阵中 . 例如,
在Ax = B中,假设A.shape是(2,3,3)
ie = [[[1,2,3],[1,2,3],[1,2,3]] [[1,2,3],[1,2,3],[1,2, 3]]]
和B.shape是(3,1),即[1,2,3] ^ T.
我想知道Ax = B的每个3向量 x ,即(x_1,x_2,x_3) .
我想到的是将B与np.ones(2,3)相乘,并使用函数dot和每个A元素的倒数 . 但它需要循环才能做到这一点 . (当矩阵大小上升时,这会花费大量时间)(例如A [:] [:] = [1,2,3])如何在没有Ax = B方程的情况下解决环?
- 我使A和B的元素相同,但你可能知道,这只是一个例子 .
1 回答
对于可逆矩阵,我们可以在
3D
数组A
上使用np.linalg.inv然后使用张量矩阵乘法与B
,这样我们分别丢失这两个数组的最后一个和第一个轴,如下所示 -样品运行 -
或者,张量矩阵乘法可以被np.matmul替换,就像这样 -
在Python 3.x上,我们可以使用@ operator来实现相同的功能 -