| Karim BELABAS on Tue, 25 Feb 2003 00:21:28 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: zetakinit() puzzle |
On Mon, 24 Feb 2003, Igor Schein wrote:
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> ? plot(x=2,3,zetak(zetakinit(y),x))
>
> 1.6449341 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""`
[...]
> -2.39e+18 |.............................................................._
> 2 3
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
>
> I expect the graphs to be identical.
Catastrophic precision loss [ due to the computation of Gamma(1 - s), for s
very close to an integer ]:
(23:56) gp > zetak(zetakinit(y), 3-1e-28)
%1 = -719751868412563322355.4757780
I have fixed an obvious mistake in the computation (and the above symptom),
but there is still a huge instability if zetakinit() was not computed to a
sufficient accuracy:
(23:56) gp > \p28
(23:56) gp > zetak(zetakinit(y), 3-1e-50)
%2 = -8.97164492 E34 \\ bogus
(23:56) gp > \p50
realprecision = 57 significant digits (50 digits displayed)
(23:57) gp > zetak(zetakinit(y), 3-1e-50)
%3 = 1.2020569031595942854001807100992369873297281694155
\\ better, but only the first 20 or so digits are correct
This function should be rewritten. But, as far as I understand the method,
precomputing zetakinit independently of the points where zeta_K is to be
computed simply doesn't work. It will give sensible results when applied to
sensible regions [ where 'sensible region' is defined by the fact you get
consistent results when increasing the precision ]. There are proven error
bounds, but they depend on s, and PARI can't apply them in zetakinit()...
Cheers,
Karim.
--
Karim Belabas Tel: (+33) (0)1 69 15 57 48
Dép. de Mathématiques, Bât. 425 Fax: (+33) (0)1 69 15 60 19
Université Paris-Sud Email: Karim.Belabas@math.u-psud.fr
F-91405 Orsay (France) http://www.math.u-psud.fr/~belabas/
--
PARI/GP Home Page: http://www.parigp-home.de/