# Zeta function gone wild?

Playing with number fields we reached some weird numerical results. Investigating the problem boiled down to weird output of zeta functions at odd positive integers from 7 onward.

For example,

sage: K.<a> = NumberField(x^2-2)
sage: K.zeta_function()(7)
82.7603619399160
sage: K.zeta_function(prec=100)(7)
45333.379954778857657650185188
sage: K.zeta_function(prec=200)(7)
5.6555192254423051174292272646037247772094677139829119697339e8


These answers seem to be all erroneous. Close values behave fine:

sage: K.zeta_function()(7.0000001)
1.00787667933529
sage: K.zeta_function()(7.00000001)
1.00787667982152
sage: K.zeta_function()(7.000000001)
1.00787669344227
sage: K.zeta_function()(7.0000000001)
1.00787388932573


(the problem begins afterwards).

Another way to obtain this value is

sage: quadratic_L_function__exact(7,2)*zeta(7)
TypeError: n must be a critical value!


which doesn't work. It turns out that this does work:

sage: quadratic_L_function__numerical(7,2)*zeta(7).n()
1.00787667988590


but this does not help us for general number fields (only quadratic).

The same happens with Riemann zeta function, which is the Dedekind zeta function of $\mathbb{Q}$:

sage: K.<a> = NumberField(x)
sage: K.zeta_function()(7)
verbose -1 (371: dokchitser.py, __call__) Warning: Loss of 2 decimal digits due to cancellation
52.5237126027390  # Wrong!
sage: zeta(7).n() # Checking Riemann directly
1.00834927738192  # okie dokie
sage: K.zeta_function()(7.00001)
verbose -1 (371: dokchitser.py, __call__) Warning: Loss of 2 decimal digits due to cancellation
1.00834921704698 # correct


so we get a warning here, and the value at 7 is wrong, but at 7.00001 things are fine.

We are guessing that this relates to zeros/poles of Gamma in the functional equation for zeta. However, since zeta(7) and quadratic_L_function__numerical do work fine, perhaps there is a way to calculate other zeta functions there as well?

edit retag close merge delete

This looks like a bug -- have you filed a ticket?

( 2011-10-31 09:59:47 -0600 )edit

Sort by » oldest newest most voted
more