Преобразование символических выражений в функции Python с использованием SymPy
У меня есть довольно большая символическая функция, которая оценивается для различных значений параметра в цикле. На каждой итерации после нахождения выражения функции выводятся частные производные. Что-то вроде этого:
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]
Далее мне нужно преобразовать вывод этой функции в функцию Python, чтобы я мог использоватьfsolve
найти значения x, y, z, для которых производные равны нулю. Функция должна принимать x, y, z как список.
Теперь вот моя проблема: как мне преобразовать вывод вышеуказанной функции в функцию Python, которую можно передать решателю. Такая функция должна выглядеть так (для a = 3):
def lagrange_eqs_solve(X):
x,y,z=X
return [2*x - 2*y**2, -4*x*y, 3*exp(z) + 1]
Я просто скопировал вывод первой функции, чтобы построить вторую. Есть ли способ, которым я мог бы закодировать это? (Matlab имеет встроенную функцию для этого, называемую matlabFunction)