       More universal way of writing gradient

• To: mathgroup at smc.vnet.net
• Subject: [mg112900] More universal way of writing gradient
• From: Sam Takoy <sam.takoy at yahoo.com>
• Date: Tue, 5 Oct 2010 05:35:08 -0400 (EDT)

```Hi,

My question is not related to the gradient at all, but rather strictly
the grammar of Mathematica. Gradient is just an example.

My question is: what's the elegant way to write the following function
so that it applies to single functions as well as ("rectangular") lists
of functions?

grad[u_] := {Derivative[1, 0][u], Derivative[0, 1][u]}
gradList[u_] := {Map[Derivative[1, 0], u, {2}],
Map[Derivative[0, 1], u, {Length[Dimensions[u]]}]}

f[x_, y_] := Sin[x] Exp[y]
Through[grad[f][x, y]] // MatrixForm
gradList[{{f, f}, {f, f}}] //
Map[Apply[#, {x, y}] &, #, {Length[Dimensions[#]]}] & // MatrixForm

I'm sure I could wrap grad and gradList into a function with an If, but
I'm sure there is a more natural way.

Thank you in advance,

Sam

PS: Using Map[Apply[]] in the second case because Through doesn't seem
to work with Lists of Lists. This is the subject of an earlier post...

```

• Prev by Date: Re: For loop outputs to a list
• Next by Date: Re: For loop outputs to a list
• Previous by thread: simultaneous and constrained interpolation?
• Next by thread: Re: More universal way of writing gradient