summaryrefslogtreecommitdiff
path: root/gsl-1.9/ode-initval/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'gsl-1.9/ode-initval/TODO')
-rw-r--r--gsl-1.9/ode-initval/TODO78
1 files changed, 78 insertions, 0 deletions
diff --git a/gsl-1.9/ode-initval/TODO b/gsl-1.9/ode-initval/TODO
new file mode 100644
index 0000000..b06d9a3
--- /dev/null
+++ b/gsl-1.9/ode-initval/TODO
@@ -0,0 +1,78 @@
+* Add a higher level interface which accepts a
+
+start point,
+end point,
+result array (size N, y0, y1, y2 ... ,y(N-1))
+desired relative and absolute errors epsrel and epsabs
+
+it should have its own workspace which is a wrapper around the
+existing workspaces
+
+* Implement other stepping methods from well-known packages such as
+RKSUITE, etc
+
+* Roundoff error needs to be taken into account to prevent the
+step-size being made arbitrarily small
+
+* The entry below has been downgraded from a bug. We use the
+coefficients given in the original paper by Prince and Dormand, and it
+is true that these are inexact (the values in the paper are said to be
+accurate 18 figures). If somebody publishes exact versions we will
+use them, but at present it is better to stick with the published
+versions of the coefficients them use our own.
+----------------------------------------------------------------------
+BUG#8 -- inexact coefficients in rk8pd.c
+
+From: Luc Maisonobe <Luc.Maisonobe@c-s.fr>
+To: gsl-discuss@sources.redhat.com
+Subject: further thoughts about Dormand-Prince 8 (RK8PD)
+Date: Wed, 14 Aug 2002 10:50:49 +0200
+
+I was looking for some references concerning Runge-Kutta methods when I
+noticed GSL had an high order one. I also found a question in the list
+archive (April 2002) about the references of this method which is
+implemented in rk8pd.c. It was said the coefficients were taken from the
+"Numerical Algorithms with C" book by Engeln-Mullges and Uhlig.
+
+I have checked the coefficients somewhat with a little java tool I have
+developped (see http://www.spaceroots.org/archive.htm#RKCheckSoftware)
+and found they were not exact. I think this method is really the method
+that is already in rksuite (http://www.netlib.org/ode/rksuite/) were the
+coefficients are given as real values with 30 decimal digits. The
+coefficients have probably been approximated as fractions later on.
+However, these approximations are not perfect, they are good only for
+the first 16 or 18 digits depending on the coefficient.
+
+This has no consequence for practical purposes since they are stored in
+double variables, but give a false impression of beeing exact
+expressions. Well, there are even some coefficients that should really
+be rational numbers but for which wrong numerators and denominators are
+given. As an example, the first and fourth elements of the b7 array are
+given as 29443841.0 / 614563906.0 and 77736538.0 / 692538347, hence the
+sum off all elements of the b7 array (which should theoretically be
+equal to ah[5]) only approximate this. For these two coefficients, this
+could have been avoided using 215595617.0 / 4500000000.0 and
+202047683.0 / 1800000000.0, which also looks more coherent with the
+other coefficients.
+
+The rksuite comments say this method is described in this paper :
+
+ High Order Embedded Runge-Kutta Formulae
+ P.J. Prince and J.R. Dormand
+ J. Comp. Appl. Math.,7, pp. 67-75, 1981
+
+It also says the method is an 8(7) method (i.e. the coefficients set
+used to advance integration is order 8 and error estimation is order 7).
+If I use my tool to check the order, I am forced to check the order
+conditions numerically with a tolerance since I do not have an exact
+expression of the coefficients. Since even if some conditions are not
+mathematically met, the residuals are small and could be below the
+tolerance. There are tolerance values for which such numerical test
+dedeuce the method is of order 9, as is said in GSL. However, I am not
+convinced, there are to few parameters for the large number of order
+conditions needed at order 9.
+
+I would suggest to correct the coefficients in rk8pd.c (just put the
+literal constants of rksuite) and to add the reference to the article.
+
+----------------------------------------------------------------------