Re: Can't take a value from an InterpolatingFunction.
- To: mathgroup at smc.vnet.net
- Subject: [mg13643] Re: Can't take a value from an InterpolatingFunction.
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Fri, 07 Aug 1998 18:46:05 +0800
- Organization: University of Western Australia
- References: <6qbqv3$a71@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
I. Ioannou wrote: > I've set up and solved a system of two differential equations, according > to the following prescription; > > solution = > NDSolve[{r'[t] == .....equation1......, > p'[t] == .....equation2......, > r[0] == 0.,p[0] == p0}, {r, p}, {t, 0, 0.2}, > MaxSteps \[Rule] 300000, Method \[Rule] Automatic] > > All has worked very nicely. However, I need now to take the value of r > at t=0.2 and I can't seem to be able to do it. > > I should point out that the Book suggestion r[0.2] /. % doesn't work, > because the above statement is within a For loop and is run many times. Fine -- but do you record each solution? If so, surely r[0.2] /. solution (or, if the solutions are indexed, say solution[1]) will do what you want. For example, In[1]:= p0 = 1; In[2]:= solution[1] = NDSolve[{r'[t] == p[t]+r[t], p'[t] == r[t]-p[t], r[0] == 0,p[0] == p0}, {r, p}, {t, 0, 0.2}]; In[3]:= r[0.2] /. solution[1] // First Out[3]= 0.202677 Also, personally, I tend to use constructs such as Table (for a list of solutions) or Nest (for iterative computations) to construct a set of solutions. Cheers, Paul ____________________________________________________________________ Paul Abbott Phone: +61-8-9380-2734 Department of Physics Fax: +61-8-9380-1014 The University of Western Australia Nedlands WA 6907 mailto:paul at physics.uwa.edu.au AUSTRALIA http://www.physics.uwa.edu.au/~paul God IS a weakly left-handed dice player ____________________________________________________________________