Jacobian -- Applying Outer to lists

• To: mathgroup at yoda.physics.unc.edu
• Subject: Jacobian -- Applying Outer to lists
• From: "Anthony Varghese" <avarg at s1.arc.umn.edu>
• Date: Wed, 31 Mar 93 16:46:34 CST

```Netters,

I am trying to construct a Newton iteration scheme for a system of several
variables using Maeder's Newton.m (p. 85 of "Programming in Mathematica")
as a starting point. I am running into a number of hitches having to do with
the computation of the jacobian.
So, here is the basic problem as I see it:

I have a system of, say 3, equations that I will call "dvdt":

In[1]:= dvdt = { {x^2 + y^2}, {y + 2 z^2}, {x - y^3 + z} }

dvdt is a function of a system of three variables, called "v":

In[2]:= v = {x, y, z}

Here is where the problems start. In the single variable Newton method, Maeder
denotes the dependence of dvdt on v with a pure Function:
NewtonZero[expr_, x_, x0_] := NewtonZero[ Function[x, expr], x0 ]
However, this does not seem to do the right thing in the case where x and expr
are lists:

In[3]:= f = Function[v, dvdt]
Out[3]= Function[v, dvdt]

In[4]:= jacf = Outer[D,f,v]
are expected to be the same.
Out[4]= Outer[D, Function[v, dvdt], {x, y, z}]

Mma did not make the substitutions I thought it would make and therefore,
the Jacobian computation could not be made. Am I missing something crucial
in Function?

I decided to try to cast "dvdt" explicitly in terms of the v[[i]]s:

In[1]:= v = {x, y, z}
Out[1]= {x, y, z}

In[2]:= dvdt = {{v[[1]]^2 + v[[2]]^2},{v[[2]] + 2 v[[3]]^2},
{v[[1]]-v[[2]]^3+v[[3]]} }
2    2           2         3
Out[2]= {{x  + y }, {y + 2 z }, {x - y  + z}}

In[3]:= f = Function[v, dvdt]
Out[3]= Function[v, dvdt]

In[4]:= jacf = Outer[D,f,v]
are expected to be the same.
Out[4]= Outer[D, Function[v, dvdt], {x, y, z}]

Same thing! How can I tell Mma that dvdt is a function of a list of variables
and then have it use this information to compute the Jacobian?