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

如何在Sympy中获取方程的重根及其对应重数?

solveset返回的是集合类型,天然会对重复元素去重,因此无法直接得到重根的重复次数,可通过以下两种方案实现需求:

方案1:直接使用roots()函数(推荐)

sympy.roots()会直接返回字典结构,键为方程的根,值为对应根的重数,是最便捷的实现方式:

from sympy import Symbol, roots

x = Symbol('x')
equation = x**2 - 2*x + 1
root_with_multi = roots(equation, x)
print(root_with_multi)

运行输出为:

{1: 2}

方案2:配合multiplicity()计算已有根的重数

如果你已经通过solveset拿到了去重后的根集合,可以调用sympy.multiplicity()单独计算每个根的重数:

from sympy import Symbol, solveset, multiplicity

x = Symbol('x')
equation = x**2 - 2*x + 1
root_set = solveset(equation, x)
root_with_multi = {r: multiplicity(r, equation, x) for r in root_set}
print(root_with_multi)

运行输出和方案1完全一致,拿到的重数字典可直接用于线性递推关系的求解逻辑。


内容的提问来源于stack exchange,提问作者Osama Ahmad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:36:03