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

SymPy库因式分解原理及多项式因式分解返回原输入问题解析

SymPy因式分解机制及代码问题解决

SymPy的因式分解逻辑

SymPy的factor()函数会针对不同类型的表达式调用适配的算法:

  • 处理一元多项式时,会先用有理根定理枚举可能的有理根,将多项式分解为一次因式与不可约多项式的乘积;
  • 多元多项式则结合因式定理、高斯引理及欧几里得算法完成分解;
  • 默认在有理数域上分解,也可通过参数指定数域(如实数、复数域)。

你的代码问题原因和修复方案

问题根源

input()获取的内容是字符串类型,而factor()仅能处理SymPy专属的表达式对象(Expr)。直接传字符串的话,SymPy无法解析为可操作的多项式,因此直接返回原输入。

修复代码

需要把输入的字符串转换为SymPy表达式,用sympy.sympify()即可实现:

import sympy 
from sympy import symbols, factor

x = symbols('x') 

equ_str = input('Enter equation:')
# 把字符串转为SymPy可识别的表达式
equ = sympy.sympify(equ_str)

factorised = factor(equ)

print("factorised form: ", factorised)

额外提示

  • 输入多项式要符合SymPy语法:乘法必须写*,比如2*x不能写成2x;
  • 如果输入的是完整方程(比如x**2 - 9 = 0),建议只输入多项式部分(x**2 -9),或者先提取等式左侧表达式再分解。

内容的提问来源于stack exchange,提问作者Yng Gsf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:05:00