使用Sympy,假设我们有一个表达式f,它是符号“ x”(以及可能的其他符号)的多项式。
我想知道是否有一种有效的方法可以将所有项以大于某个整数n的f降阶。
作为一种特殊情况,我有一个非常复杂的函数,但我只想将x的术语保持在第二位。有效的方法是什么?
一个明显的但不是很有效的方法是对每个小于n的m取m个导数并将x设置为0以获得x ^ m的系数。我们以这种方式获得每个系数,然后重构多项式。但是采用衍生工具并不是最有效的方法。
一个简单的方法是添加O(x**n)
到表达式中,例如
In [23]: x + x**2 + x**4 + x**10 + O(x**3)
Out[23]:
2 ⎛ 3⎞
x + x + O⎝x ⎠
如果您想以后删除它,使用removeO
方法
In [24]: (x + x**2 + x**4 + x**10 + O(x**3)).removeO()
Out[24]:
2
x + x
您也可以使用series
该表达式的级数展开。如果非多项式项以表达式结尾,则此处的行为是不同的:
In [25]: x + sin(x) + O(x**3)
Out[25]:
⎛ 3⎞
sin(x) + x + O⎝x ⎠
In [26]: (x + sin(x)).series(x, 0, 3)
Out[26]:
⎛ 3⎞
2⋅x + O⎝x ⎠
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句