Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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. 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.

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).

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
sage: zeta(7).n()
1.00834927738192
sage: K.zeta_function()(7.00001)
verbose -1 (371: dokchitser.py, __call__) Warning: Loss of 2 decimal digits due to cancellation
1.00834921704698

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) does work fine, perhaps there is a way to calculate other zeta functions there as well?

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. 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.

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).

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
sage: zeta(7).n()
1.00834927738192
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

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) does work fine, perhaps there is a way to calculate other zeta functions there as well?

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.

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).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
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
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) does and quadratic_L_function__numerical do work fine, perhaps there is a way to calculate other zeta functions there as well?