Convierta expresiones simbólicas a funciones de Python usando SymPy

Tengo una función simbólica bastante grande que se evalúa para diferentes valores de un parámetro en un bucle. En cada iteración, después de encontrar la expresión de la función, se derivan derivadas parciales. Algo como esto:

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]

A continuación, necesito convertir la salida de esta función a una función de Python para poder usarfsolve para encontrar valores x, y, z para los cuales las derivadas son cero. La función debe tomar x, y, z como una lista.

Ahora, aquí está mi problema: ¿cómo convierto el resultado de la función anterior en una función de Python que podría pasarse a un solucionador? Tal función debería verse así (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]

Simplemente copié el resultado de la primera función para construir la segunda. ¿Hay alguna forma de codificarlo? (Matlab tiene una función incorporada para esto, llamada matlabFunction)

Respuestas a la pregunta(1)

Su respuesta a la pregunta