Re: NDSolve

*To*: mathgroup at smc.vnet.net*Subject*: [mg4390] Re: NDSolve*From*: Paul Abbott <paul at physics.uwa.edu.au>*Date*: Mon, 15 Jul 1996 09:51:54 -0400*Organization*: University of Western Australia*Sender*: owner-wri-mathgroup at wolfram.com

Aleksey Nudelman wrote: > Hi > I am trying to find out what all these numbers in the Interpolaing > function means.(I could figure out that on every step Mathematica > stores value of the current argument,value of the argument at the > previos step,function and its derivative) Hon-Wa Tam, formerly from WRI sent me the following note on the Structure of One-dimensional InterpolatingFunctions: Interpolation uses Newton polynomials to construct an interpolation table. The object InterpolatingFunction[ range, table ] consists of the range of the interval and the table. Each element of table is responsible for a subinterval (t_{n-1}, t_n]. A table element has the structure { t_n, t_{n-1}, divided differences, coefficients } The order of the particular polynomial for (t_{n-1}, t_n] is equal to Length[ coefficients ]. Interpolation within (t_{n-1}, t_n] is done by dvdf[1] + ( x - (t_n-coeff[1]) ) * dvdf[2] + ( x - (t_n-coeff[1]) ) * ( x - (t_n-coeff[2]) ) * dvdf[3] + ... Each table has a degenerate element whose subinterval is of width 0. This is for the purpose of finding the right subinterval by binary search. InterpolatingFunction objects can be constructed by Interpolation[] or by NDSolve[]. If an InterpolatingFunction object is constructed by Interpolation[], we have t_{n-1} < t_n in each table element. This is also true for NDSolve[] when the given initial point is at the left of the domain, as in: NDSolve[ { y'[x] == y[x], y[0] == 1 }, y, { x, 0, 1 } ] In this normal case, the degenerate subinterval is on the left-hand side and is the first element of the interpolation table. However, NDSolve can also integrate in the negative direction: NDSolve[ { y'[x] == y[x], y[0] == 1 }, y, { x, 0, -1 } ] In this case all subintervals are processed "backward" and we have t_{n-1} t_n. The degenerate subinterval is now on the right-hand side and is the last element of the interpolation table. It is also possible that some subintervals are in the positive, and some in the negative direction: NDSolve[ { y'[x] == y[x], y[0] == 1 }, y, { x, -1, 1 } ] Here the degenerate subinterval is somewhere in the middle of the interpolation table. Cheers, Paul _________________________________________________________________ Paul Abbott Department of Physics Phone: +61-9-380-2734 The University of Western Australia Fax: +61-9-380-1014 Nedlands WA 6907 paul at physics.uwa.edu.au AUSTRALIA http://www.pd.uwa.edu.au/Paul Black holes are where God divided by zero _________________________________________________________________ ==== [MESSAGE SEPARATOR] ====