在 Sympy 中查找微分方程的阶数
Find the order of a differential equation in Sympy
我在 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 顺序,这很不方便。
您可以使用 ode_order
。这给出了关于函数的微分方程的阶数:
>>> ode_order(eq, y)
2
我在 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 顺序,这很不方便。
您可以使用 ode_order
。这给出了关于函数的微分方程的阶数:
>>> ode_order(eq, y)
2