Учитывая квадратную матрицу A, найдите все матрицы X такие, что AX = XA. Это частный случай уравнения Сильвестра (одно из форм AX + XB = Q), когда A = B и Q - нулевая матрица. Я знаю, что у SciPy есть решатель для этого типа уравнений, однако, поскольку нулевая матрица всегда является решением моего уравнения, этот решатель просто дает мне это тривиальное решение.
Существуют бесконечные решения уравнения AX = XA, так что я на самом деле ищу способ найти основу для пространства решений.
Вот моя попытка для небольшого примера, который я работал на бумаге:
import numpy as np
import scipy
from sympy import *
A = np.array([[-2, 1, 1],[3, -3, 0], [1, 0, -1]])
X = np.array([["a", "b", "c"], ["d", "e", "f"], ["g", "h", "i"]])
Q = np.zeros_like(L)
var('a b c d e f g h i L S')
A = Matrix([[-2, 1, 1],[3, -3, 0], [1, 0, -1]])
X = Matrix([[a, b, c], [d, e, f], [g, h, i]])
M = A.multiply(X) - X.multiply(A)
M
Я могу Не могу найти способ «извлечь» коэффициенты из матрицы М. Если бы я мог это сделать, то у меня была бы матрица коэффициентов однородной системы линейных уравнений и, возможно, тогда я мог бы получить нетривиальное решение или все возможные решения этой проблемы.