$Version
9.0 for Mac OS X x86 (64-bit) (January 24, 2013)
n=2;
vars=Table[x[m],{m,n}]
{x[1],x[2]}
funcs=Table[f[m]@@vars,{m,n}]
{f[1][x[1],x[2]],f[2][x[1],x[2]]}
http://reference.wolfram.com/mathematica/ref/Grad.html
Grad[funcs, vars]
{{Derivative[1, 0][f[1]][x[1], x[2]], Derivative[0, 1][f[1]][x[1], x[2]]},
{Derivative[1, 0][f[2]][x[1], x[2]], Derivative[0, 1][f[2]][x[1], x[2]]}}
Grad is new in v9; for some older versions use D[funcs, {vars}]
Grad[funcs, vars]==D[funcs, {vars}]
True
http://mathworld.wolfram.com/Jacobian.html
jacobian=Outer[D,funcs,vars]
{{Derivative[1, 0][f[1]][x[1], x[2]], Derivative[0, 1][f[1]][x[1], x[2]]},
{Derivative[1, 0][f[2]][x[1], x[2]], Derivative[0, 1][f[2]][x[1], x[2]]}}
Det[jacobian]
Derivative[0, 1][f[2]][x[1], x[2]]*Derivative[1, 0][f[1]][x[1], x[2]] -
Derivative[0, 1][f[1]][x[1], x[2]]*Derivative[1, 0][f[2]][x[1], x[2]]
http://mathworld.wolfram.com/Hessian.html
hessians=D[#,{vars,2}]&/@funcs
{{{Derivative[2, 0][f[1]][x[1], x[2]], Derivative[1, 1][f[1]][x[1], x[2]]},
{Derivative[1, 1][f[1]][x[1], x[2]],
Derivative[0, 2][f[1]][x[1], x[2]]}},
{{Derivative[2, 0][f[2]][x[1], x[2]],
Derivative[1, 1][f[2]][x[1], x[2]]},
{Derivative[1, 1][f[2]][x[1], x[2]],
Derivative[0, 2][f[2]][x[1], x[2]]}}}
Det/@hessians
{-Derivative[1, 1][f[1]][x[1], x[2]]^2 + Derivative[0, 2][f[1]][x[1], x[2]]*
Derivative[2, 0][f[1]][x[1],
x[2]], -Derivative[1, 1][f[2]][x[1], x[2]]^2 +
Derivative[0, 2][f[2]][x[1], x[2]]*Derivative[2, 0][f[2]][x[1], x[2]]}
Bob Hanlon
On Mon, Apr 21, 2014 at 5:11 AM, Alan <
alan....@gmail.com> wrote:
> Am I overlooking commands to produce numerical gradient, Jacobian, and
> Hessian? The closest I could find was ND (in the NumericalCalculus
> package), which seems to be only for univariate functions.
>
> Thanks,
> Alan Isaac
>
>