You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取SymPy化简后二元线性方程的常数项及所有系数

提取SymPy化简后线性方程的常数项

你用coeff(-1)的方法不对,因为coeff()方法需要传入符号对象(比如x、y),而非数值。要提取线性表达式Ax + By + C里的常数项C,以下是几种可靠的解决方式:

方法1:代入x=0、y=0

直接将x和y替换为0,剩余部分即为常数项:

from sympy import symbols, simplify

x, y = symbols('x y')
expr = (x - 4.48e10)**2 + (y+1.047e11)**2 - (x + 1.346e11)**2 - (y + 5.23e10)**2
smpl = simplify(expr)

# 提取常数项
constant_term = smpl.subs({x: 0, y: 0})
print(constant_term)

方法2:转换为多项式后获取常数项

把化简后的表达式转为多项式对象,直接调用方法提取常数项:

poly = smpl.as_poly()
# 两种写法都可以
constant_term = poly.TC()  # TC() 专门用于获取常数项
# 或 constant_term = poly.coeffs()[-1]
print(constant_term)

方法3:用已提取的x/y系数反推

利用已拿到的x、y系数,从原表达式中减去Ax和By部分,剩余内容就是常数项:

x_coeff = smpl.coeff(x)
y_coeff = smpl.coeff(y)
constant_term = smpl - x_coeff*x - y_coeff*y
print(constant_term)

以上方法都会输出你需要的7.88332e+21左右的结果(因浮点数精度问题,显示可能略有差异,比如7.88332000000000e+21)。

内容的提问来源于stack exchange,提问作者new-to-coding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 18:45:05