Sympy - ufuncify矢量函数

时间:2016-02-21 15:19:06

标签: python numpy sympy numpy-ufunc

我有lambdify-ied一个修改后的FitzHugh–Nagumo model的矢量函数(没有扩散项):

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会导致错误:

ufuncify_eqs = ufuncify([u,v], numerical_eqs)

我收到的错误消息:

CodeGenArgumentListError: ('out_817415551552344190', [<sympy.utilities.codegen.OutputArgument object at 0x7f8da54dccd0>])

有人知道ufuncify向量函数的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

我认为ufuncify不支持SymPy Matrices作为表达式。您可以单独在矩阵中执行每个表达式。