Вы пытаетесь решить N различных систем уравнений, фактически вы проходите матрицу N × 2 × 2 A, но только матрицу 2 × 2 b.Это то, к чему относится ошибка, когда говорят, что операнды не могут быть переданы вместе .
Если вы хотите решить Ai x = b
для всех i от 0 до N-1, где Ai равно 2 ×2, тогда вам также понадобится b
с формой N × 2 × K (N × 2 × 2 в вашем случае).
Нечто подобное будет работать, при условии, что вы всегда хотите b = eye(2)
:
>>> A = np.array([[[1,2],[3,4]],[[2,3],[5,6]],[[3,4],[5,6]]])
>>> b = np.array([np.eye(2),np.eye(2),np.eye(2)])
>>> np.linalg.solve(A, b)
И это вывод:
array([[[-2. , 1. ],
[ 1.5 , -0.5 ]],
[[-2. , 1. ],
[ 1.66666667, -0.66666667]],
[[-3. , 2. ],
[ 2.5 , -1.5 ]]])