python - Sympy:删除系数较小的项

标签 python sympy coefficients

是否可以在 Sympy 表达式中删除系数低于给定小数字(例如 1e-5)的项?即,这样

0.25 + 8.5*exp(-2.6*u) - 2.7e-17*exp(-2.4*u) + 1.2*exp(-0.1*u)

变成了

0.25 + 8.5*exp(-2.6*u) + 1.2*exp(-0.1*u)

例如。

最佳答案

您可以结合使用coeffssubsPoly:

u = Symbol('u')
poly = Poly(0.25 + 8.5*exp(-2.6*u) - 2.7e-17*exp(-2.4*u) + 1.2*exp(-0.1*u))
threshold = 1e-5

to_remove = [abs(i) for i in poly.coeffs() if abs(i) < threshold]
for i in to_remove:
    poly = poly.subs(i, 0)

poly no 产生以下结果:

0.25 + 8.5*exp(-2.6*u) + 1.2*exp(-0.1*u)

关于python - Sympy:删除系数较小的项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75807298/

相关文章:

python - 从 pytest_generate_tests 中排除测试

python - 匿名同情表达

python - 为什么 Numpy 在按度排序多项式系数时不一致?

r - 如何修复glm的截距值

python 检查主机是否连接到网络

python - Pandas 分组并用新列中的中位数进行纠正

python - 确定被更改的随机列表的长度

python - 获取求解器/sympy 返回对象的最小值/最大值 [Python]

python - Sympy 导数中的精确用户定义表达式

r - 如何将 nlsList 中的系数获取到数据框中?