sympy多项式矩阵方程的求解系统

时间:2020-06-24 19:09:50

标签: sympy

我想用sympy来解决一个满足一组二次方程和线性方程的向量,例如x.T @ A @ x = x.T @ B @ x = 1x.T @ C = 0。这是我的尝试:

import numpy as np
from sympy.polys.polymatrix import PolyMatrix
from sympy import symbols
from sympy.solvers import solve_poly_system

x = PolyMatrix([symbols(f'x{k}') for k in range(2)])
A = np.eye(2)
B = np.array([1, 0]).reshape([2, 1])
one = PolyMatrix([1])

solve_poly_system([x.T @ A @ x - one, x.T @ B], [symbols(f'x{k}') for k in range(2)])

但是,这会产生以下错误:

PolynomialError: non-commutative expressions are not supported

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

只需使用solve而不是solve_poly_system

>>> solve([x.T @ A @ x - one, x.T @ B], [symbols(f'x{k}') for k in range(2)])
[(0.0, -1.0), (0.0, 1.0)]
相关问题