       Re: Trouble with NDSolve Function

• To: mathgroup at smc.vnet.net
• Subject: [mg51072] Re: Trouble with NDSolve Function
• From: terryf at brunet.bn (Terry)
• Date: Sun, 3 Oct 2004 05:47:54 -0400 (EDT)
• References: <57tm0o\$1di@dragonfly.wolfram.com>
• Sender: owner-wri-mathgroup at wolfram.com

```I was interested to see your 1996 Mathematica query  because I have a
similar problem in 2004.  I could not find any responses to your query
on the interent so I'm taking the liberty of sending this email to ask
if you managed to solve the problem and, if so, how?

Any feedback would be most welcome.

Terry Fairclough

On 2 Dec 1996 04:30:16 GMT, Wayne Davis wrote:
>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=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]==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 -> InterpolatingFunction[{0., 0.}, <>],
>
>   y -> InterpolatingFunction[{0., 0.}, <>],
>
>   y -> InterpolatingFunction[{0., 0.}, <>]}}
>
>Thanks in advance for any help.
>