public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
* Re: GSL 1.4: BUG #8 [rk8pd.c]
@ 2003-11-08 12:51 Luc Maisonobe
  2003-11-08 13:21 ` M Joonas Pihlaja
  0 siblings, 1 reply; 10+ messages in thread
From: Luc Maisonobe @ 2003-11-08 12:51 UTC (permalink / raw)
  To: gsl-discuss

Hello,

The remaining problem is still the same as one year ago: the comments
say the method is an 8(9) method (i.e. extrapolation beeing of order 8
and error estimation of order 9), but it is really an 8(7) method.
Despite I think nobody is interested anymore, I promised to check the
coefficients of the method, so here are my results.

The maximal error in rk8pd.c is about 3.92e-17.
The maximal error in rksuite.f is about 4.49e-29.

These values were computed by picking two coefficients from rksuite
(c(9) and a(8,4)) as the remaining free parameters of the model,
transforming them into rational numbers by continued fractions method
and using them to solve exactly all the equations of conditions and all
the additional equations from the article. The exact result is available
in http://www.spaceroots.org/software/rkcheck/DormandPrinceRKsuite.xml

                                                      Luc

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: GSL 1.4: BUG #8 [rk8pd.c]
  2003-11-08 12:51 GSL 1.4: BUG #8 [rk8pd.c] Luc Maisonobe
@ 2003-11-08 13:21 ` M Joonas Pihlaja
  2003-11-08 14:20   ` Luc Maisonobe
  2003-11-08 14:21   ` Jerome BENOIT
  0 siblings, 2 replies; 10+ messages in thread
From: M Joonas Pihlaja @ 2003-11-08 13:21 UTC (permalink / raw)
  To: Luc Maisonobe; +Cc: gsl-discuss


On Sat, 8 Nov 2003, Luc Maisonobe wrote:

[snip]
> Despite I think nobody is interested anymore, I promised to check the
> coefficients of the method, so here are my results.

I'm interested, at least, so thank you for sharing.

> The maximal error in rk8pd.c is about 3.92e-17.
> The maximal error in rksuite.f is about 4.49e-29.

What do you mean by maximal error here -- of the main estimator
itself or the second embeded estimator?  And how do you compute
these -- from the principal error function or some other method?
I'm very curious, because you say the results for the
coefficients are exact after fixing two free parameters.

Best Regards,

Joonas Pihlaja

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: GSL 1.4: BUG #8 [rk8pd.c]
  2003-11-08 13:21 ` M Joonas Pihlaja
@ 2003-11-08 14:20   ` Luc Maisonobe
  2003-11-08 14:21   ` Jerome BENOIT
  1 sibling, 0 replies; 10+ messages in thread
From: Luc Maisonobe @ 2003-11-08 14:20 UTC (permalink / raw)
  To: M Joonas Pihlaja; +Cc: gsl-discuss

Hello Joonas,


> > The maximal error in rk8pd.c is about 3.92e-17.
> > The maximal error in rksuite.f is about 4.49e-29.
> 
> What do you mean by maximal error here -- of the main estimator
> itself or the second embeded estimator?

It is simply the absolute value of the difference between the
coefficients I obtained and the coefficients in the source files.


>  And how do you compute
> these -- from the principal error function or some other method?
> I'm very curious, because you say the results for the
> coefficients are exact after fixing two free parameters.

The Dormand and Prince article roughly explains the method. You first
have a (somewhat huge) set of equations of conditions, the first ones
are very simple like 

\sum_{i=1}^{i=s} b_{i} = 1

The last ones are much more complex like

\sum_{i=6}^{i=s}\left(b_{i}
  \sum_{j=5}^{j=i-1}{\left(a_{i,j}
    \sum_{k=4}^{k=j-1}{\left(a_{j,k}
      \sum_{l=3}^{l=k-1}{\left(a_{k,l}
        \sum_{m=2}^{m=l-1}{\left(a_{l,m}
          \sum_{p=1}^{p=m-1}{\left(a_{m,p}
                               c_{p}
                             \right)}
                           \right)}
                         \right)}
                       \right)}
                     \right)}
                \right) = \frac{1}{5040}

For one order 8 method and one order 7 embedded method, there are 284
equations. to this you can add the traditional homogeneity equation :

  \sum_{j=1}^{j=s}a_{i,j} = c_{i}

In order to help solving these equations, Dormand and Prince added their
own set like for example:

  \sum_{j=1}^{j=i-1} a_{i,j} c_{i}^k = \frac{c_{i}^{k+1}}{k+1}

for the first (k,i) pairs. This greatly reduces the number of equations
of conditions since most of them become equivalent to other ones.

These equations bind most of the variables and the global model has only
10 degrees of freedom left (Dormand and Prince chose c_2, c_3, c_6, c_7,
c_8, c_10, c_11, \hat{b}_13, b_12 and a_{8,4}). All other variables can
be expressed from these ones.

I followed their method, but already had available the values of most of
the free variables as provided by their paper (c_8 = 93/200, c_10 =
13/20 ...). The only variables that were not obvious were c_11 and
a_{8,4}, so I had to chose these ones.

Despite the article lists c_11 as a free parameter and hence c_9 appears
only has a dependant parameter, I think from observing the float values
in rksuite.f that c_11 was computed from c_9. This is because c_9 as
exactly the same value (5490023248/9719169821) as in the paper whereas
c_11 is slightly different from the one published (difference is
2.33e-18). They are tightly related to each other by the following
simple relation which can be derived from the equations of conditions
and the other parameters:

 c_11 = (10009221 c_9 - 8842703) / (11614350 c_9 - 10009221)

So I opted for c_9 = 5490023248 / 9719169821

The only remaining parameter was a_{8,4}, I simply used a continued
fraction approximation to retrieve it from the rksuite floating value.

All other values have been computed from these ones.

Changing the free parameters lead to other 8(7) methods. The choice of
the free parameters was done by Dormand and Prince in order to minimize
the truncation error (i.e. the first equations of conditions that are
*not* verified). Having chosen (almost) the same parameters as in
rksuite mean I did not redo this minimiation step. In fact, I tried to
do it for a{8,4}, but it occurred to me that the first few largest
residuals of the 9th order equations are symetrical (i.e. the largest
negative is exactly the opposite of the largest positive, and also the
second largest and third largest) and do not depend on a{8,4}.

If you want, I can provide you some intermediate results, like the
solving steps in Maxima syntax (Maxima is the free version of good old
Macsyma computer algebra system) and the one degree of freedom model
where only a{8,4} is still unbound.

Dormand and Prince did not provide exact values because (quoting the
paper) :

"it proved too expensive computationally to retain exact rational
parameters as in the previous case."

However, what was "too expensive computationally" in 1980 is now easy
for any home PC (I did all that on my personal PC running GNU/Linux and
only freeware tools).

                                                     regards,
                                                       Luc


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: GSL 1.4: BUG #8 [rk8pd.c]
  2003-11-08 13:21 ` M Joonas Pihlaja
  2003-11-08 14:20   ` Luc Maisonobe
@ 2003-11-08 14:21   ` Jerome BENOIT
  1 sibling, 0 replies; 10+ messages in thread
From: Jerome BENOIT @ 2003-11-08 14:21 UTC (permalink / raw)
  To: gsl-discuss



M Joonas Pihlaja wrote:
> On Sat, 8 Nov 2003, Luc Maisonobe wrote:
> 
> [snip]
> 
>>Despite I think nobody is interested anymore, I promised to check the
>>coefficients of the method, so here are my results.
> 
> 
> I'm interested, at least, so thank you for sharing.

I am still interested because I currently using it:
the rk4 series did not pass my test whereas the rk8pd
passed it. Note that my test is rather specific to what
I am doing: the test just checks the conservstion of
one quatity (namely the energy).
Nevertheless I was confused by the BUG report,
hence my email to gsl-discuss.
So any precision is welcome.

> 
> 
>>The maximal error in rk8pd.c is about 3.92e-17.
>>The maximal error in rksuite.f is about 4.49e-29.
> 
> 
> What do you mean by maximal error here -- of the main estimator
> itself or the second embeded estimator?  And how do you compute
> these -- from the principal error function or some other method?
> I'm very curious, because you say the results for the
> coefficients are exact after fixing two free parameters.
> 
> Best Regards,
> 
> Joonas Pihlaja
> 

Thanks,
Jerome BENOIT

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: GSL 1.4: BUG #8 [rk8pd.c]
  2003-11-05 15:32   ` Jerome BENOIT
@ 2003-11-05 16:52     ` Brian Gough
  0 siblings, 0 replies; 10+ messages in thread
From: Brian Gough @ 2003-11-05 16:52 UTC (permalink / raw)
  To: jgmbenoit; +Cc: gsl-discuss

Jerome BENOIT writes:
 > Brian Gough wrote:
 > > 
 > > Although it is listed as a "bug" the original coefficients are
 > > accurate to 16 digits, which should be good enough for most practical
 > > purposes.
 > > 
 > 
 > May be this should be added in the BUG file to avoid confussion.
 > 

It is there already -- the comments in the file give the full
description.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: GSL 1.4: BUG #8 [rk8pd.c]
  2003-11-05 15:26 ` Brian Gough
@ 2003-11-05 15:32   ` Jerome BENOIT
  2003-11-05 16:52     ` Brian Gough
  0 siblings, 1 reply; 10+ messages in thread
From: Jerome BENOIT @ 2003-11-05 15:32 UTC (permalink / raw)
  To: Brian Gough; +Cc: gsl-discuss

Thank you very much for your replies.

Brian Gough wrote:
> Jerome BENOIT writes:
>  > Hello GSL,
>  > 
>  > what is the current status of the BUG #8 ?
> 
> Although it is listed as a "bug" the original coefficients are
> accurate to 16 digits, which should be good enough for most practical
> purposes.
> 

May be this should be added in the BUG file to avoid confussion.

Thanks,
Jerome


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: GSL 1.4: BUG #8 [rk8pd.c]
  2003-11-02 12:57 Jerome BENOIT
  2003-11-03 19:42 ` Gerard Jungman
@ 2003-11-05 15:26 ` Brian Gough
  2003-11-05 15:32   ` Jerome BENOIT
  1 sibling, 1 reply; 10+ messages in thread
From: Brian Gough @ 2003-11-05 15:26 UTC (permalink / raw)
  To: jgmbenoit; +Cc: gsl-discuss

Jerome BENOIT writes:
 > Hello GSL,
 > 
 > what is the current status of the BUG #8 ?

Although it is listed as a "bug" the original coefficients are
accurate to 16 digits, which should be good enough for most practical
purposes.

-- 
Brian Gough

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: GSL 1.4: BUG #8 [rk8pd.c]
  2003-11-03 19:42 ` Gerard Jungman
@ 2003-11-04 11:27   ` MAISONOBE Luc
  0 siblings, 0 replies; 10+ messages in thread
From: MAISONOBE Luc @ 2003-11-04 11:27 UTC (permalink / raw)
  To: Gerard Jungman; +Cc: jgmbenoit, gsl-discuss

Gerard Jungman a écrit :

> We have a subscription, but I don't seem to have
> access to electronic versions before 1995. So
> I will wander over to the library and see if
> it looks helpful. As you pointed out, the easiest
> thing to do might be to grab the numbers out of
> rksuite. I wouldn't trust anything printed in the
> journal, unless somebody out there can vouch for
> the accuracy. Has anybody listening here
> checked the numbers in the journal?

Since my last message on the subject 
(http://sources.redhat.com/ml/gsl-discuss/2002-q4/msg00020.html) I have 
check some of the coefficients.

As I said in that message, the article clearly says these numbers are 
approximations. The values from rksuite.f in Netlib are more accurate 
(Dormand and Prince seem to have provided better values to Brankin, 
Gladwell and Shampine).

I have tried to check these values using my rkcheck tool 
(http://www.spaceroots.org/software/rkcheck/index.html), and corrected 
some of them. Since Benoit's message yesterday, I have restarted this 
work and corrected more terms. What I mean here is *only* to replace 
float numbers with exact rational numbers, in order to check exactly the 
order. This is only of theoretical interest, for someone as picky as me 
;-) the values provided in the article are accurate to about 17 digits 
(just have a look to the first coefficients I corrected in my message 
last year) and the values in rksuite are accurate to about 30 digits. My 
  rational number are *not* better than this ones, they only form a 
globally consistent set, using some values as free parameters (for 
example 5490023248/9719169821 which is exactly the same in the article 
and in rksuite) and computing the other ones by solving the conditions 
equations and the additional equations from the article). The rational 
numbers I have computed so far (all the vector elements and some matrix 
elements) sometime involve really huge integers (more than 130 digits).

Again, I don't think my work is of *practical* interest. It will only be 
an external validation (if I succeed ...). I will post the xml file with 
the exact coefficients when it will be ready (for the moment, the one 
you can find at my site only contains the coefficients I had last year, 
i.e. the float values from rksuite and the two corrected rationals from 
my patch).

I am not subscribed to gsl list anymore, so this message will probably 
bounce. If either Gerard or Benoit think it could interest the list, 
please forward it by yourself.

Apart for Benoit :

I have brought the article to work this morning, if you want a copy, 
send me directly a postal adress or a fax number, and I will be happy to 
send you one.

                                                         Luc


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: GSL 1.4: BUG #8 [rk8pd.c]
  2003-11-02 12:57 Jerome BENOIT
@ 2003-11-03 19:42 ` Gerard Jungman
  2003-11-04 11:27   ` MAISONOBE Luc
  2003-11-05 15:26 ` Brian Gough
  1 sibling, 1 reply; 10+ messages in thread
From: Gerard Jungman @ 2003-11-03 19:42 UTC (permalink / raw)
  To: jgmbenoit; +Cc: gsl-discuss, Luc.Maisonobe

On Sun, 2003-11-02 at 05:57, Jerome BENOIT wrote:

> note that the Paper
> 
> High order embedded Runge-Kutta formulae
> P. J. Princea and J. R. Dormanda
> J. Comp. Appl. Math., 7 (1981), pp 67-76.
> 
> is now available at Science Direct:
> 
> http://dx.doi.org/10.1016/0771-050X(81)90010-3
> 
> (but unfortunately I cannot get it :()

We have a subscription, but I don't seem to have
access to electronic versions before 1995. So
I will wander over to the library and see if
it looks helpful. As you pointed out, the easiest
thing to do might be to grab the numbers out of
rksuite. I wouldn't trust anything printed in the
journal, unless somebody out there can vouch for
the accuracy. Has anybody listening here
checked the numbers in the journal?

Thanks.

-- 
Gerard Jungman <jungman@lanl.gov>
Los Alamos National Laboratory


^ permalink raw reply	[flat|nested] 10+ messages in thread

* GSL 1.4: BUG #8 [rk8pd.c]
@ 2003-11-02 12:57 Jerome BENOIT
  2003-11-03 19:42 ` Gerard Jungman
  2003-11-05 15:26 ` Brian Gough
  0 siblings, 2 replies; 10+ messages in thread
From: Jerome BENOIT @ 2003-11-02 12:57 UTC (permalink / raw)
  To: gsl-discuss; +Cc: Luc.Maisonobe

Hello GSL,

what is the current status of the BUG #8 ?

Is there any available patch which the coefficients ?

Thanks in advance,
Jerome BENOIT

PS:
note that the Paper

High order embedded Runge-Kutta formulae
P. J. Princea and J. R. Dormanda
J. Comp. Appl. Math., 7 (1981), pp 67-76.

is now available at Science Direct:

http://dx.doi.org/10.1016/0771-050X(81)90010-3

(but unfortunately I cannot get it :()

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2003-11-08 14:21 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-08 12:51 GSL 1.4: BUG #8 [rk8pd.c] Luc Maisonobe
2003-11-08 13:21 ` M Joonas Pihlaja
2003-11-08 14:20   ` Luc Maisonobe
2003-11-08 14:21   ` Jerome BENOIT
  -- strict thread matches above, loose matches on Subject: below --
2003-11-02 12:57 Jerome BENOIT
2003-11-03 19:42 ` Gerard Jungman
2003-11-04 11:27   ` MAISONOBE Luc
2003-11-05 15:26 ` Brian Gough
2003-11-05 15:32   ` Jerome BENOIT
2003-11-05 16:52     ` Brian Gough

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).