使用SymPy

时间:2016-06-09 23:38:00

标签: sympy ode

我正在解决ODE等式:

from sympy import *

E5 = Function('E5')
t  = Symbol('t')
ode = Eq(Derivative(E5(t), t),
        -3*E5(t)/(-10*sqrt(6) + 30)
        + sqrt(6)*E5(t)/(-10*sqrt(6) + 30)
        - 67*sqrt(2)*exp(-sqrt(3)*t/10)/(200*(-sqrt(6) + 3))
        + sqrt(3)*exp(-sqrt(3)*t/10)/(10*(-sqrt(6) + 3))
        + 47*sqrt(2)*exp(-sqrt(2)*t/10)/(200*(-sqrt(6) + 3)))
dsolve(ode)

并且有效(等待几分钟后),但在Function('E5')替换为Function('E5', real=True)Symbol('t') Symbol('t', real=True)后失败。即dsolve(ode)引发TypeError(" eq应该是Equality&#34的实例;)。这是因为dsolve(ode,simplify = False)返回False而不是Equation。而后者我不知道为什么。是否不可能在假设中使用dsolve?我需要它们,因为它们让我简化表达式,否则我的表达式会变得太复杂并且计算时间太长。

你有什么想法可以解决这个问题吗?

0 个答案:

没有答案