Converta expressões simbólicas em funções Python usando o SymPy
Eu tenho uma função simbólica bastante grande que é avaliada para diferentes valores de um parâmetro em um loop. Em cada iteração, após encontrar a expressão da função, derivadas parciais são derivadas. Algo assim:
from sympy import diff, symbols,exp
def lagrange_eqs(a):
x,y,z= symbols('x y z')
FUNC=x**2-2*x*y**2+z+a*exp(z)
d_lgrng_1=diff(FUNC,x)
d_lgrng_2=diff(FUNC,y)
d_lgrng_3=diff(FUNC,z)
return [d_lgrng_1,d_lgrng_2,d_lgrng_3]
Em seguida, preciso converter a saída dessa função em uma função Python para que eu possa usarfsolve
para encontrar valores x, y, z para os quais as derivadas são zero. A função deve ter x, y, z como uma lista.
Agora, aqui está o meu problema: como converter a saída da função acima para uma função Python que pode ser passada para um solucionador. Essa função deve ficar assim (para a = 3):
def lagrange_eqs_solve(X):
x,y,z=X
return [2*x - 2*y**2, -4*x*y, 3*exp(z) + 1]
Simplesmente copiei a saída da primeira função para criar a segunda. Existe uma maneira de codificá-lo? (O Matlab possui uma função interna para isso, chamada matlabFunction)