|   | 1 |  initial version  | 
In SageMath, you have minimize :
  sage: vars = var('x y z')
  sage: f = 100*(y-x^2)^2+(1-x)^2+100*(z-y^2)^2+(1-y)^2
  sage: minimize(f, [.1,.3,.4]) # abs tol 1e-6
  (1.0, 1.0, 1.0)
and minimize_constrained :
  sage: y = var('y')
  sage: f = lambda p: -p[0]-p[1]+50
  sage: c_1 = lambda p: p[0]-45
  sage: c_2 = lambda p: p[1]-5
  sage: c_3 = lambda p: -50*p[0]-24*p[1]+2400
  sage: c_4 = lambda p: -30*p[0]-33*p[1]+2100
  sage: a = minimize_constrained(f,[c_1,c_2,c_3,c_4],[2,3])
  sage: a
  (45.0, 6.25...)
Examples were copy pasted from the documentation.
 Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.
 
                
                Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.