MathGroup Archive 1998

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

Search the Archive

Re: odd behavior of NDSolve


  • To: mathgroup@smc.vnet.net
  • Subject: [mg11658] Re: odd behavior of NDSolve
  • From: Bill Bertram <wkb@ansto.gov.au>
  • Date: Sat, 21 Mar 1998 18:35:00 -0500
  • Organization: ANSTO
  • References: <6em7no$naq@smc.vnet.net>

Selwyn Hollis wrote:
> 
> I've discovered a very disturbing problem with NDSolve. I'd like to know
> if others can reproduce this.
> 
> Here's an example:
> 
> f[x_, y_] := 1 - Exp[-(x^2 + y^2)]
> 
> fx[x_, y_] = D[f[x, y], x];  fy[x_, y_] = D[f[x, y], y];
> 
> Clear[x0, y0, u0, v0];
> diffeqs =
>    {x''[t] == -fx[x[t], y[t]],
>     y''[t] == -fy[x[t], y[t]],
>     x[0] == x0, x'[0] == u0, y[0] == y0, y'[0] == v0}
> 
> endTime = 12.03;
>   {x0, y0, u0, v0} = {4, 3, -0.7, -0.17};
>   soln = Flatten[NDSolve[diffeqs, {x, y}, {t, 0, endTime}]];
>   r[t_] = {x[t], y[t]} /. soln;
>   path = ParametricPlot[r[t], {t, 0, endTime},
>     PlotRange -> {{-4, 4}, {-4, 4}}];
> 
> You should see a curve with a slight bend to it. Now change endTime to
> 12.04. The bend is gone. Shouldn't we get the same curve for 0 < t <
> 12.03? Either I'm missing something or NDSolve has a serious problem.


Curious that!
I ran this on a Pentium Pro 200 with exactly the same result.
However,after transforming the DE's to a set of first order equations
by integrating them analytically with the given boundary conditions,
there is no problem, eg with

f[x_, y_] := 1 - Exp[-(x^2 + y^2)]

cx=0.3-6.9*10^-8;
cy=0.83-6.9*10^-8;

Clear[x0, y0];
diffeqs =
   {x'[t] == cx -f[x[t], y[t]],
    y'[t] == cy -f[x[t], y[t]],
    x[0] == x0, y[0] == y0}

endTime = 12.03;
  {x0, y0} = {4, 3};
  soln = Flatten[NDSolve[diffeqs, {x, y}, {t, 0, endTime}]];
  r[t_] = {x[t], y[t]} /. soln;
  path = ParametricPlot[r[t], {t, 0, endTime},
    PlotRange -> {{-4, 4}, {-4, 4}}];

Everything is OK, but the solution obtained by solving the second order
DEs for the same time interval is clearly incorrect. 

Cheers, 
   Bill



  • Prev by Date: Re: Plotting a Vertical Line
  • Next by Date: Re: Question: inequalities
  • Prev by thread: odd behavior of NDSolve
  • Next by thread: Re: odd behavior of NDSolve