MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: NDSolve with functions of vectors

If I interpret your question properly...

Clear[x, y, z, a, u, arc, s, t]
a[t_] = {x[t], y[t], z[t]};
u[{x_, y_, z_}] = {2 y, x/3, z};
ds[{x_, y_, z_}] = Sqrt[#.#] &@u[{x, y, z}];
eqns = Thread[
    Flatten@{a'[t] - u[a[t]], a[0] - {1, 1, 1}, arc'[t] - ds[a[t]],
       arc[0]} == 0];
{x, y, z, arc} = {x, y, z, arc} /.
    Last@NDSolve[eqns, {x, y, z, arc}, {t, 0, 6}];

The "arc" function is s in terms of t. To get x, y, and z in terms of s, 
we invert the "arc" function:

si = si /. First@
     NDSolve[{si[arc[0]] == 0, si'[u] == 1/arc'[si@u]},
      si, {u, arc@0, arc@6}];

Plot[si@arc[t], {t, 0, 6}]

Plot[arc@si[t], {t, arc@0, arc@6}]

Finally, here's a plot of x, y, and z in terms of arc length:

Plot[a[si[s]], {s, arc@0, arc@6}]


ParametricPlot3D[a[s], {s, arc@0, arc@6}]


On Fri, 02 Nov 2007 03:28:04 -0500, John Lee <johnlee_15 at>  

> I'd like to clarify or make this question simpler:
> M0=NDSolve[{a'[s]==U[a[s]],a[0]==X},a,{s,0,6},Method->"ExplicitRungeKutta"]
> Where X = {1,0,0} and U = {f(x,y,z),g(x,y,z),h(x,y,z)}
> That does not work and I can't figure out why. The error I get is  
> "Part::partw: Part 2 of a[s] does not exist." Same with "Part 3".
> -John


DrMajorBob at

  • Prev by Date: Re: Re: NumberPadding on the left
  • Next by Date: Re: Re: Mathematica 6 Graphics Options
  • Previous by thread: Re: NDSolve with functions of vectors
  • Next by thread: Re: NDSolve with functions of vectors