Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

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

Search the Archive

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[0] == 1,
x[0] == 1, y[0] == 0}, {b, x, y}, {t, 0, 0, 20, 60, 400, 400}, Method
-> ExplicitRungeKutta][[1]]

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[0] == 1, x[0] == 1,
y[0] == 0}, {b, x, y}, {t, 0, 400}][[1]]


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]][0] - ndsolstep[[1, 1]][0]
Out[307]= 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