# Revision history [back]

Hi,

The problem seems to be that sage's minimize_contrained function will call the function f with c being a 1-dimensional array and the diff function expects a variable name.

A workaround to this would be to give a different name to the parameter of f, say x. Then we could differentiate y and substitute c=x[0], as shown below

def f(x):
dy=y.diff(c)
w=5*(c-10)^3
z=dy+w
return z.subs(c=x[0])


It might be the case that sage is differentiating y each time f is called, which might end up consuming some time. To avoid this maybe just defining z=dy+w and calling minimize_constrained(z,[(-10,10)],[9]) would do the job.