У вас мог бы быть еще более простой пример, который не дает решения:
import sympy as sym
s = sym.MatrixSymbol('s', 5, 1)
z = sym.MatrixSymbol('z', 5, 1)
eq = s - z
solution = sym.solve(eq, s)
Я думаю, что поддержка решения уравнений с помощью MatrixSymbols очень ограничена. Я не нашел ничего общего с этим в документации. Вместо этого либо игнорируйте тот факт, что это матрица, и рассматривайте ее как некоммутативный символ, либо определяйте все ваши элементы в матрице как отдельные символы:
A, s, z = sym.symbols("A s z", commutative=False)
eq = A * s - z
solution = sym.solve(eq, s)
A = sym.Matrix(5, 5, sym.symbols("a0:25"))
s = sym.Matrix(5, 1, sym.symbols("s0:5"))
z = sym.Matrix(5, 1, sym.symbols("z0:5"))
eq = A * s - z
solution = sym.solve(eq, s)
Первое решение, похоже, консенсус по GitHub . Последнему нужно найти обратную матрицу 5x5 из первых принципов, что занимает чрезвычайно много времени. Скорее всего, вам придется подождать несколько минут, пока он решит это основное уравнение c. Однако это довольно полезно для матриц 3x3, где можно увидеть отдельные элементы s
.