MathGroup Archive 1996

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

Search the Archive

Trouble with NDSolve Function


I have had some trouble getting the Mathematica NDSolve function to accept
and solve problems containing certain types of conditionals in the dif eq,
even though the problem seems properly stated to me. I am attaching an
example and would like to know what I'm doing wrong. (It appears that the
assignments don't get substituted into the conditional terms so that
NDSolve can handle them as numerical values).

imax=3;ya=100.;k=.5;c=.1;tmax=2.;
q[1]=If[t<1,10.,0];
q[imax+1]=0.;
q[i_]=If[y[i-1][t]>ya,q[i-1],k (y[i-1][t]-y[i][t])];
difeqs=Table[c y[i]'[t]==q[i]-q[i+1],{i,1,imax}];
ics=Table[y[i][0]==25,{i,1,imax}];
eqs=Flatten[Join[difeqs,ics]];
vars=Table[y[i],{i,1,imax}];
soln=NDSolve[eqs,vars,{t,0,tmax}]
NDSolve::ndnum:
   Differential equation does not evaluate to a number at
    t = 0..
{{y[1] -> InterpolatingFunction[{0., 0.}, <>],

   y[2] -> InterpolatingFunction[{0., 0.}, <>],

   y[3] -> InterpolatingFunction[{0., 0.}, <>]}}

Thanks in advance for any help.

Don Paddleford
Westinghouse Savannah River Company

-- 
Wayne Davis                 Q:  What has four legs and one arm?
wdavis at csranet.com          A:  A happy Pit Bull


  • Prev by Date: Abs[]
  • Next by Date: Re: XMathematica: can't open display, exiting...
  • Previous by thread: Abs[]
  • Next by thread: Re: Trouble with NDSolve Function