【发布时间】:2026-01-19 08:10:01
【问题描述】:
给定一个方阵 A,找出所有满足 AX = XA 的矩阵 X。这是当 A = B 且 Q 是零矩阵时 Sylvester 方程(AX + XB = 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
我想不出一种方法来“提取”矩阵 M 的系数。如果我能做到这一点,那么我将得到一个齐次线性方程组的系数矩阵,也许然后我可以得到一个非- 这个问题的简单解决方案或所有可能的解决方案。
【问题讨论】:
-
欢迎来到 SO。这不是讨论论坛或教程。请使用tour 并花时间阅读How to Ask 以及该页面上的其他链接。花一些时间与the Tutorial 一起练习示例。它将让您了解 Python 提供的帮助您解决问题的工具。
-
可能从铅笔和纸开始,然后写下手工完成的过程——算法的开始。然后,一旦你学会了一点 Python,就开始尝试将你写的东西变成代码。
-
不是无限多吗? B 可以是任意缩放的单位矩阵,不是吗?
-
另外,这是not a personal help resource。我们处理具体的编程问题; “我不知道如何做作业”是当地导师的问题或对可用教育材料的审查,而不是 Stack Overflow。
-
这样吗?:How to extract all coefficients in sympy,Factor sympy expression to matrix coefficients?,Extract coefficients and corresponding monomials from a given polynomial in SymPy。
Q=M.applyfunc(Poly); for thing in Q: print((thing.gen,thing.coeffs())?