Konvertieren Sie symbolische Ausdrücke in Python-Funktionen mit SymPy

Ich habe eine ziemlich große symbolische Funktion, die für verschiedene Werte eines Parameters in einer Schleife ausgewertet wird. In jeder Iteration werden nach dem Finden des Ausdrucks der Funktion partielle Ableitungen abgeleitet. Etwas wie das

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]

Nächste, ich muss die Ausgabe dieser Funktion in eine Python-Funktion konvertieren, damit ich @ verwenden kafsolve, um x, y, z-Werte zu finden, für die Ableitungen Null sind. Die Funktion muss x, y, z als Liste annehmen.

Jetzt ist hier mein Problem: Wie konvertiere ich die Ausgabe der obigen Funktion in eine Python-Funktion, die an einen Löser weitergegeben werden könnte. Eine solche Funktion sollte wie folgt aussehen (für a = 3):

def lagrange_eqs_solve(X): 
    x,y,z=X
    return [2*x - 2*y**2, -4*x*y, 3*exp(z) + 1]

Ich habe einfach die Ausgabe der ersten Funktion kopiert, um die zweite zu erstellen. Gibt es eine Möglichkeit, wie ich es codieren könnte? (Matlab hat dafür eine eingebaute Funktion, matlabFunction)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage