我把一个修正的FitzHugh–Nagumo model的向量函数lambdiE(没有扩散项):
from sympy import symbols, Matrix, solve, Eq
from sympy import diff, simplify, lambdify
from sympy.utilities.autowrap import ufuncify
u, v , e, a0, a1 = symbols('u v e a0 a1')
dudt = u - u**3 -v
dvdt = e*(u - a1*v - a0)
eqs = Matrix([dudt,dvdt])
print eqs
numerical_eqs = eqs.subs([(e,1.0),(a0,0.5),(a1,1.0)])
print numerical_eqs
lambdify_eqs = lambdify([u,v], numerical_eqs)
print lambdify_eqs(1.0,0.5)
但是,尝试以相同的方式生成ufunc
会导致错误:
我得到的错误消息是:
CodeGenArgumentListError: ('out_817415551552344190', [<sympy.utilities.codegen.OutputArgument object at 0x7f8da54dccd0>])
有人知道向量函数的正确方法是什么?
我不认为ufuncify支持SymPy矩阵作为表达式。矩阵中的每个表达式都可以单独执行。在
相关问题 更多 >
编程相关推荐