MathGroup Archive 2003

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

Search the Archive

Specify Step Size in NDSolve

  • To: mathgroup at smc.vnet.net
  • Subject: [mg44643] Specify Step Size in NDSolve
  • From: andrea.knorr at engr.uconn.edu (Andrea)
  • Date: Wed, 19 Nov 2003 04:59:09 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

I posted the following message Friday the 14th of November, but have
not yet seen it, so I apologize if you see this twice.

I am using NDSolve, and have run into an error with the step size it
is using.  I get errors at very small times.  Mathematica will
continue beyond this time point, but results are very inaccurate.

I have increased MaxSteps up to 10^7, and at this point my computer
runs out of memory and eventually calculations stop.  This option is
not useful if the step size Mathematica chooses is very small, no
matter how many steps you specify.  I have altered other step size
options (MaxStepSize, MaxStepFraction, StartingStepSize), but they
only let you choose the maximum step size or a starting step size.
Essentially, I want to do the opposite and specify a minimum step size
so that the step size does not decrease to a near-zero value and run
out of steps before reaching my final time point.  I have searched for
an option StepSize, but found nothing.  Please help if you can.

Below is some example code (vtime and ytime are lists of time points
specified elsewhere):

T=343824133;

titer[k_,delta_,n_,c_]:=
   
    Module[{soln,y,v,valueslist,xtiter,ytiter},
     
      soln=NDSolve[{
            y'[t]== k v[t] T -delta y[t],
            v'[t]== n delta y[t]-c v[t],
            y[0]==7016819, v[0]== 2220151},
          {y,v},{t,0,1500}, MaxSteps->{10^5}];
     
      ytiter=Evaluate[y[ytime]/.soln];
      vtiter=Evaluate[v[vtime]/.soln];
     
      values=Table[Flatten[{ytiter, vtiter},1]];
      values
      ];

calcs = titer[0.0297, 4.51, 46.38, 6.145]

NDSolve::mxst: Maximum number of steps reached at the point
t=0.3300736733965773

"InterpolatingFunction::dmval" Input value {26} lies outside the range
of data in the interpolating function. Extrapolation will be used.

Thanks,
Andrea Knorr
Graduate Student
Chemical Engineering
University of Connecticut


  • Prev by Date: Re: filled plot on part of x-interval
  • Next by Date: RE: Open and Close Groups, *one level at a time*?
  • Previous by thread: Making Life easier for Dialog Boxes and Pallets
  • Next by thread: Re: Specify Step Size in NDSolve