Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sympy 用辛方法求解常微分方程_Sympy_Ode - Fatal编程技术网

Sympy 用辛方法求解常微分方程

Sympy 用辛方法求解常微分方程,sympy,ode,Sympy,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)) +

我在解一个常微分方程:

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)
它可以工作(等待几分钟后),但一旦我用
函数('E5',real=True)
替换
函数('E5',real=True)
符号('t')
替换
符号('t',real=True)
,它就会失败。也就是说,dsolve(ode)引发TypeError(“eq应该是相等的实例”)。这是因为dsolve(ode,simplify=False)返回False而不是表达式。后者我不知道为什么。在假设中使用dsolve是不可能的吗?我需要它们,因为它们可以让我简化表达式,否则我的表达式会变得太复杂,计算时间也太长


你知道为什么会发生这种情况吗?

看起来确实是因为
simplify=False
版本返回
False
。在我看来,这似乎是一个错误。起初我认为这可能会发生,因为只有复杂的解决方案存在,但返回的解决方案不包含任何复杂的数字,因此我相信它在reals中也是一个很好的解决方案。看起来确实是因为
simplify=False
版本返回
False
。在我看来,这似乎是一个错误。起初我认为它可能会发生,因为只有复杂的解决方案存在,但返回的解决方案不包含任何复杂的数字,所以我相信它在reals中也是一个很好的解决方案。