Python sympy dsolve错误

Python sympy dsolve错误,python,sympy,dsolve,Python,Sympy,Dsolve,在重新安装Python之后,下面是简单的代码 import sympy as sm x = sm.Symbol('x') f = sm.Function('f') y = sm.dsolve(sm.diff(f (x),x)-3*f(x)(1-0.5f(x)),f(x)) print(y) 提供以下输出: Eq(x + 0.333333333333333*log(1.0*f(x) - 2.0) - 0.333333333333333*log(1.0*f(x)), C1) 但在它给我正

在重新安装Python之后,下面是简单的代码

import sympy as sm

x = sm.Symbol('x')

f = sm.Function('f')

y = sm.dsolve(sm.diff(f (x),x)-3*f(x)(1-0.5f(x)),f(x))

print(y)
提供以下输出:

Eq(x + 0.333333333333333*log(1.0*f(x) - 2.0) - 0.333333333333333*log(1.0*f(x)), C1)
但在它给我正确答案之前:
f(x)=-2.0/(C1*exp(-3.0*x)-1.0)


有人能帮我解决这个问题吗?

您可以尝试使用
Rational
而不是float number,如下所示:

>>> import sympy as sym
>>> x = sym.Symbol('x')
>>> f = sym.Function('f')(x)
>>> y = sym.dsolve(sym.diff(f,x)-3*f*(1-sym.Rational(1, 2)*f),f)
>>> print y
Eq(f(x), -2/(C1*exp(-3*x) - 1))

首先,我对第一篇文章中的语法和编辑错误感到抱歉。 实际上,现在我在两台计算机上运行完全相同的代码,一台使用Anaconda for Windows,另一台使用Spyder for Ubuntu,这两台计算机都有Python 2.7,并且得到了两个不同的答案。代码是:

import sympy as sm

x = sm.Symbol('x')
f = sm.Function('f')(x)

y=sm.dsolve(sm.diff(f,x)-3*f*(1-0.5*f),f)
print(y)
在Ubuntu版本中,我得到了明确的解决方案
f(x)=-2.0/(C1*exp(-3.0*x)-1.0)
在windows机器中,我得到了隐式解
Eq(x+0.3333*log(1.0*f(x)-2.0)-0.333333*log(1.0*f(x)),C1)

请通过对代码进行适当的格式化。同时删除那些行号。你说“它曾经给过”你正确答案是什么意思?请阅读。您以前使用的是什么版本的sympy?你在这里用的是什么版本?我还注意到发布的代码中存在一些语法错误。是否可以发布实际给出您显示的输出的代码?您不需要该
Rational
的模块名吗?对不起,Rational是一个sympy类,我以前忘记写“sym”前缀了。谢谢你的来信。