Matrix Differentiation in Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg23114] Matrix Differentiation in Mathematica
- From: "Johannes Ludsteck" <ludsteck at zew.de>
- Date: Wed, 19 Apr 2000 02:30:46 -0400 (EDT)
- Organization: Zentr. f. Europ. Wirtschaftsforsch
- Sender: owner-wri-mathgroup at wolfram.com
Dear MathGroup members,
I am wondering whether there are some Limitations to matrix-
differentiation in Mathematica.
I would like to get the partial derivative of expressions like
f[c.x], where c is a vector of constants and x a vector of variables.
I know it would be possible to do this after specifying c and x
(for example x = {x1,x2,x3}; c = {c1,c2,c3}), but
in my application it is much more elegant and efficient to do this
with c and x unspecified.
For the first derivative of this expression with respect to x
Mathematica returns the right result:
D[f[c.x],x] /. Dot[___,0,___]->0
Out[1] = c.1 f'[c.x]
However - to the best of my knowledge - it is impossible to ask
Mathematica to compute the derivative of this expression (the first
derivative) with respect to the transpose of x.
D[%,x] /. Dot[___,0,___]->0
gives
(c.1)^2 f''[c.x]
This cannot be the right solution since Mathematica has no
information on the dimension of x.
The right solution would be
Outer[Times,c,c] f''[c.x].
Of course, I could correct this by hand, substituting (c.1)^2 by
Outer[Times,c,c]. But since the expression I want to differentiate is
very complicated, this would come to the same thing as doing the
computations by pencil and paper.
Thanks for any suggestions,
Johannes Ludsteck
Johannes Ludsteck
Centre for European Economic Research (ZEW)
Department of Labour Economics,
Human Resources and Social Policy
Phone (+49)(0)621/1235-157
Fax (+49)(0)621/1235-225
P.O.Box 103443
D-68034 Mannheim
GERMANY
Email: ludsteck at zew.de