Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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.