both mmtc and maple allow users to specify derivatives of objective functions in a local optimization problem.
f[x_?NumberQ, y_?NumberQ] := Cos[x^2 - 3 y] + Sin[x^2 + y^2]
fx[x_?NumberQ, y_?NumberQ] := 2 x Cos[x^2 + y^2] - 2 x Sin[x^2 - 3 y];
fy[x_?NumberQ, y_?NumberQ] := 2 y Cos[x^2 + y^2] + 3 Sin[x^2 - 3 y];
FindMinimum[f[x, y], {x, y}, Gradient :> {fx[x, y], fy[x, y]}]
Optimization algerithm of maple itself really sucks and it acctually has no global optimization method!! So maple resort to its partners such as NAG and pinter.