我想用SymPy
解决以下微分方程式这个微分方程有隐式解(用h(0)= [0,1)和t = [0,inf))
但是SymPy给出了
Maxima等其他软件包能够找到。然而,对于SymPy,我无法做到。有办法吗?我的代码是
import sympy as sp
sp.init_printing(use_unicode=True)
h = sp.symbols('h', function=True)
t = sp.symbols('t')
eq = sp.Eq(sp.Derivative(h(t),t), (1 - h(t))**sp.Rational(4,3) / h(t))
sp.dsolve(eq)
答案 0 :(得分:3)
SymPy保留了未评估的积分,因为它不确定积分中1-y的符号。
微分方程在h = 1时具有奇点,其行为取决于我们的1侧。没有办法说h(t)< 1,但可以用h(t)= 1 - g(t)代替,其中g是正函数:
g = sp.symbols('g', function=True, positive=True)
eq1 = eq.subs(h(t), 1 - g(t))
print(sp.dsolve(eq1))
这将返回ODE的显式解(实际上有三个,因为SymPy解决了一个三次方程)。第一个看起来很合理。
Eq(g(t), (-2*(C1 + t)/(sqrt(-8*(C1 + t)**3 + 729) + 27)**(1/3) - (sqrt(-8*(C1 + t)**3 + 729) + 27)**(1/3))**3/27)