2014-09-04 3 views
-1

Я бы хотел рассчитать производную, а затем решить, когда она равна нулю.Сделать символическую функцию вызываемой - sympy

Я использую модуль sympy для этого.

r = somefunction(x1,x2) 

Используя эту функцию, я хотел бы иметь возможность называть эти две матрицы.

r_grad = [r.diff(x1), r.diff(x2)] 
r_hess = [[r.diff(x1,x1), r.diff(x1,x2)],[r.diff(x2,x1), r.diff(x2,x2)]] 

я тогда хотел, чтобы решить, когда r_grad [0] и r_grad [1] == 0, и разъем, в мешковину. Как я могу использовать эти символы .diff()?

+1

Вы пытались найти решение, прежде чем прийти сюда? Googling «Оценка выражения SymPy» открывает несколько способов сделать это в официальной документации как первые несколько обращений. – user2357112

+1

@ user2357112 Я попытался найти решение, но я не искал правильную фразу. Теперь, когда я посмотрел на то, что вы предложили, я вижу это. Спасибо. – bluebird343

ответ

2

SymPy имеет lambdify модуль для этих целей:

from sympy.utilities.lambdify import lambdify 

func = lambdify((x1, x2), r.diff(x1)) 

func(1, 2) # evaluate the function efficiently at (1, 2) 
Смежные вопросы