我正在使用 sympy 生成矩阵的行列式:
from sympy import *
X1, Y1 = symbols ("X1 Y1")
x1, x2, x3, y1, y2, y3 = symbols ("x1 x2 x3 y1 y2 y3")
th12, th13 = symbols ("theta_{12} theta_{13}")
X2 = cos(th12)*X1-sin(th12)*Y1+x2-y1*cos(th12)-y1*sin(th12)
Y2 = sin(th12)*X1+cos(th12)*Y1+y2-x1*sin(th12)-y1*cos(th12)
X3 = cos(th13)*X1-sin(th13)*Y1+x3-y1*cos(th13)-y1*sin(th13)
Y3 = sin(th13)*X1+cos(th13)*Y1+y3-x1*sin(th13)-y1*cos(th13)
M=Matrix([[X1,Y1,1],[X2,Y2,1],[X3,Y3,1]])
Det=M.det()
print Det
如果您运行代码,您会注意到它会生成一个非常“长”的表达式。我想得到如下表达式:
X1**2 + Y1**2 + A*X1 + B*Y1 + C = 0(圆周方程)
所以我希望 Python 生成系数 A、B 和 C。基本上我想对共享 X1**2 的所有 therms、共享 Y1**2 的所有 therms 等进行分组。
如果我为 x1、x2、x3、y1、y2、y3、th12、th13 插入数值,我可以得到我需要的形式的表达式,但我也想得到系数 A、B 和 C。
编辑:修正 Xi 和 Yi 公式,添加更多信息。