Python 我打电话到sympy的checkodesol有什么问题?
我正在学习sympy,想验证ODE的解决方案。我还不太了解Symphy的命名约定 我不想在顶部加载所有包的标准方法,我只想Python 我打电话到sympy的checkodesol有什么问题?,python,sympy,Python,Sympy,我正在学习sympy,想验证ODE的解决方案。我还不太了解Symphy的命名约定 我不想在顶部加载所有包的标准方法,我只想导入Symphy,然后使用显式长名称引用Symphy中的任何其他名称。关于最新的conda-python Python 3.7.3 (default, Mar 27 2019, 22:11:17) [GCC 7.3.0] :: Anaconda, Inc. on linux 打字时 import sympy x = sympy.symbols('x') y = s
导入Symphy
,然后使用显式长名称引用Symphy中的任何其他名称。关于最新的conda-python
Python 3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0] :: Anaconda, Inc. on linux
打字时
import sympy
x = sympy.symbols('x')
y = sympy.Function('y')
ode = sympy.Eq(sympy.Derivative(y(x),x),1+2*x)
sol = sympy.dsolve(ode,y(x))
sympy.solvers.ode.checkodesol(ode,sol)
以上给出了误差
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'sympy.solvers.solvers' has no attribute 'ode'
但我不想显式导入checkodesol
。我只想导入symphy
,然后使用长名称调用checkodesol
或任何其他symphy子包,因为这让我在代码中更清楚每个函数的来源(以额外键入一点为代价)
问题是,为什么使用
sympy.solvers.ode.checkodesol
不起作用?在您链接到的文档的最顶端,它说
这些函数是使用
从Symphy导入*
。这些函数(与下面的提示函数不同)
供Symphy的普通用户使用
然后您可以直接使用checkodesol(ode,sol)
如果您要导入Symphy,则需要调用
sympy.checkodesol(ode, sol)
sympy.checkodesol(ode, sol)