2016-02-21 9 views
2

Я lambdify СВУ векторной функции модифицированного FitzHugh–Nagumo model (без диффузии терминов):SymPy - ufuncify функции вектора

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?

+2

Относится к проблеме SymPh https://github.com/sympy/sympy/issues/10522 – asmeurer

ответ

1

Я не думаю, что ufuncify поддерживает Sympy Matrices в качестве выражения. Вы можете делать каждое выражение в матрице индивидуально.

Смежные вопросы