python - 如何使用 SymPy 删除高阶项?.removeO() 在这里不起作用
问题描述
我正在尝试使用 SymPy 绘制 ODE 解决方案的系列形式,并且我需要在绘制之前删除“O”项。
from IPython.display import display
from sympy import *
from sympy.plotting import plot
x = Function('x')
t = Symbol('t')
ode = Derivative(x(t),t) + t * x(t) - t**3
sol_series = dsolve(ode, hint='1st_power_series', n=8, ics={x(0): 1})
res = sol_series.removeO()
但是这里来了错误
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-66-2775b6fd4150> in <module>
----> 1 res = sol_series.removeO()
2 display(res)
AttributeError: 'Equality' object has no attribute 'removeO'
如何解决这个问题呢?
解决方案
那是因为返回 fromdsolve
是一个Eq
(方程对象) 并且removeO
方法是 forExpr
所以你应该调用removeO
方程的 rhs:
In [5]: res = Eq(sol_series.lhs, sol_series.rhs.removeO())
In [6]: res
Out[6]:
6 4 2
t 3⋅t t
x(t) = - ── + ──── - ── + 1
16 8 2
推荐阅读
- java - 如何在 GUI 类中实现 Action Listener?
- android - 为什么作者在 Room 数据库的某个字段中添加@field:SerializedName 注解?
- c - 用C打印素数和的程序
- database - 我们是否必须将密码存储在与 Active Directory 链接的系统中?
- javascript - 它是在循环中调用apis并使用异步等待的写方法吗
- python - 在特定行和列 pandas 的文本开头分配新字符串
- scikit-learn - 如何用 epochs 训练 sklearn svm 模型(sklearn.svm.SVC)?
- r - 如何在 r 中创建一个 bday 计数器以在 5 个相同的 bday 发生后退出 while 循环
- hibernate - 渴望获取 - 查找与 JPQL
- objective-c - 如何声明用户定义的 setter、getter 方法?