Trouble with NDSolve Function
- To: mathgroup at smc.vnet.net
- Subject: [mg5374] Trouble with NDSolve Function
- From: wdavis at csranet.com (Wayne Davis)
- Date: Thu, 5 Dec 1996 14:50:16 -0500
- Organization: From Home
- Sender: owner-wri-mathgroup at wolfram.com
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