       subtract a list of interpolating functions from another

• To: mathgroup at smc.vnet.net
• Subject: [mg48545] subtract a list of interpolating functions from another
• From: sean_incali at yahoo.com (sean kim)
• Date: Fri, 4 Jun 2004 04:51:04 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```still stepwise ode accuracy related question, but...

consider two lists of three interpolating functions.

like below.

k1 = 1/10; k2 = 1/20;

a0[t_] :=  0.5 /; t < 0 ;
a0[t_] := 0.5 /; 0 <= t <=20 ;
a0[t_] :=  0.5 /; 20 <= t <=60 ;
a0[t_] := 0.5 /; 60 <= t <=400;

a = 0.5;

ndsolstep = NDSolve[{ b'[t] == -k2 b[t] y[t], x'[t] == -k1 a0[t]  x[t]
+ k2 b[t] y[t], y'[t] == k1 a0[t] x[t] - k2 b[t] y[t],  b == 1,
x == 1, y == 0}, {b, x, y}, {t, 0, 0, 20, 60, 400, 400}, Method
-> ExplicitRungeKutta][]

ndsol = NDSolve[{ b'[t] == -k2 b[t] y[t], x'[t] == -k1 a  x[t] + k2
b[t] y[t], y'[t] == k1 a x[t] - k2 b[t] y[t],  b == 1, x == 1,
y == 0}, {b, x, y}, {t, 0, 400}][]

will give two lists of

{b -> InterpolatingFunction[{{0., 400.}}, <>],
x -> InterpolatingFunction[{{0., 400.}}, <>],
y -> InterpolatingFunction[{{0., 400.}}, <>]}

one from normal system and another from stepwise defined( which has
Rob Knapp's fix in it) they should be same if not very close.

I thought maybe I would take a value of interpolating function at time
poiints and subtract to see the differences. (to check how close they
are)

ndsol[[1, 1]] - ndsolstep[[1, 1]]
Out= 0

but all the time points i have chosen came back 0. (I chose the
discontinous time points 0, 20, 60, 400 )

i was gonna say that two different approaches(stepwise defined and
smooth) yielded exactly the same values , but I wasn't sure.

how would you guys do this?

thank you all very much in advance

sean

```

• Prev by Date: RE: Help Browser
• Next by Date: Re: Problem with transformation rules in Plot
• Previous by thread: Re: Running two silmultaneous instances of mathematica using a command line
• Next by thread: Re: subtract a list of interpolating functions from another