2017-07-25 124 views
2

我有以下的微分方程,我想與SymPy解決求解微分方程SymPy

enter image description here

該微分方程具有隱含的溶液(用H(0)= [0,1)和t = [0,INF))

enter image description here

但SymPy給出

enter image description here

哪些其他軟件包如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) 

回答

3

SymPy離開積分不計算,因爲它是不確定1-Y的積分符號。

微分方程在h = 1處有一個奇點,它的行爲取決於我們是哪一邊。沒有一種方法來說,H(t)的< 1,但一個可替代H(T)= 1 - 克(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) 
+0

有趣。是否沒有辦法對'h(t)'做出一些假設,即它小於1且大於或等於0? – Chiel

+0

「非負」:是,「小於1」:不。見http://docs.sympy.org/latest/modules/core.html#module-sympy.core.assumptions – FTP

+0

嗯,這是一個遺憾。有了這種複雜程度,手工解決似乎更直接。 – Chiel