MathGroup Archive 2002

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

Search the Archive

Re: Step Info from NDSolve

  • To: mathgroup at smc.vnet.net
  • Subject: [mg33641] Re: Step Info from NDSolve
  • From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
  • Date: Thu, 4 Apr 2002 19:40:02 -0500 (EST)
  • Organization: Universitaet Leipzig
  • References: <a8g34f$b2p$1@smc.vnet.net>
  • Reply-to: kuska at informatik.uni-leipzig.de
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,


StoppingText will solve you problem.

stepNo will count the steps, dt will be the step size.

stepNo = 0;
lastT = 0;
NDSolve[{y''[t] + y[t] == 0, y[0] == 1, y'[0] == 0}, y[t], {t, 0, 10}, 
  StoppingTest ->
    (If[t < 10, stepNo++; dt = t - lastT; lastT = t; Print[dt]; 
        False, True])]

Regards
  Jens


Brian Higgins wrote:
> 
> Hi Mathgroup,
>  Is there anyway to get step information (number of steps, step size)
> from NDSolve during the actual integration . The application I have in
> mind  has the following structure:
> 
> NDSolve[{x[t]==F[x[t],y[t],t,1],y'[t]==F[x[t],y[t],t,
> 2],x[0]==x0,y[0]==y0},{x[t],y[t]},{t,0,tmax}]
> 
> where
> 
> F[xval_?NumericQ,yval_?NumericQ,tval_?NumericQ,eqnNum_]:=
> Module[{}, some code...;
> {deriv1,deriv2}[[eqnNum]]]
> 
> Thus during integration the RHS values for x'[t] and y'[t] are found
> dynamically. This works fine.
> 
> Now what I would like to do is take some action inside the function F
> depending on the step size and how many steps NDSolve has taken when F
> is called.
> 
> Is it possible to extract this information from NDSolve dynamically.
> 
> Thanks much in advance for any help you can offer,
> 
> Brian


  • Prev by Date: Re: MakeExpression
  • Next by Date: Re: Unexpected result with RSolve?
  • Previous by thread: Re: Step Info from NDSolve
  • Next by thread: Marcov Chain Processing