2024-06-11 11:29:22 发布
网友
有没有办法将ODEs从文本格式读入scipy的odeint可以使用的对象?这是在这里提出的:How to read a system of differential equations from a text file to solve the system with scipy.odeint?但是这个问题不必要地使用sympy,还有其他解决方案吗?scipy的odeint期望动态生成一个函数。你知道吗
odeint
ODE必须是Python函数。通常是用def或lambda创建的。你知道吗
def
lambda
eval可以从字符串创建函数
eval
In [183]: f=eval('lambda x: x**2') In [184]: f(10)
但它被认为是不安全的:Using python's eval() vs. ast.literal_eval()?
但是安全的替代方案不能创建函数
In [185]: f=ast.literal_eval('lambda x: x**2') ... ValueError: malformed node or string: <_ast.Lambda object at 0xa749882c>
有关使用sympy或直接创建函数的最新讨论,请参见:Parsing Complex Mathematical Functions in Python
sympy
最干净的解决方案是在文本文件中编写有效的Python代码,将其命名为.py,然后导入它。你知道吗
.py
ODE必须是Python函数。通常是用
def
或lambda
创建的。你知道吗eval
可以从字符串创建函数但它被认为是不安全的:Using python's eval() vs. ast.literal_eval()?
但是安全的替代方案不能创建函数
有关使用
sympy
或直接创建函数的最新讨论,请参见:Parsing Complex Mathematical Functions in Python最干净的解决方案是在文本文件中编写有效的Python代码,将其命名为
.py
,然后导入它。你知道吗相关问题 更多 >
编程相关推荐