在Sympy中找出微分方程的顺序

时间:2015-09-15 08:48:53

标签: python sympy ode

我有一个在Sympy(0.7.6.1)中定义的微分方程,例如:

>>> y = Function('y')
>>> x = Symbol('x')
>>> y0 = y(x)
>>> y1 = y0.diff(x)
>>> y2 = y1.diff(x)
>>> eq = y2 - 2*y1 + y0
>>> eq
                      2      
         d           d       
y(x) - 2*--(y(x)) + ---(y(x))
         dx           2          
                    dx   

我希望Sympy告诉我等式的顺序。我在文档中找不到任何内容。我依稀希望degree可能有效,但事实并非如此:

>>> degree(eq)
1
>>> degree(eq, y)
0

背景:出于教学目的,我编写了一个求解常系数线性齐次ODE的求解器。它找到了特征方程并用Sympy的roots解决了它。目前,我必须在ODE本身旁边手动传递ODE订单,这很不方便。

1 个答案:

答案 0 :(得分:1)

您可以使用ode_order。这给出了关于函数的微分方程的阶数:

>>> ode_order(eq, y)
2