#20127: zetaderiv: numerically unstable
-------------------------------------+-------------------------------------
       Reporter:  behackl            |        Owner:
           Type:  defect             |       Status:  new
       Priority:  major              |    Milestone:  sage-7.1
      Component:  numerical          |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Benjamin Hackl     |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/behackl/symbolic/test_relation/noconvergence|  
4ddf10c1c65acabc21bae40d80b51735cf26be24
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by fredrik.johansson):

 Arb can compute derivatives of the zeta function without difficulty. E.g.
 with my own python-flint interface, I can do

 {{{
 >>> ctx.cap = 10
 >>> acb_series([-600,1]).zeta()
 ([7.82232679749e+928 +/- 8.22e+916])*x + ([-3.56689160315e+929 +/-
 4.12e+917])*x^2 + ([7.8112800125e+929 +/- 5.34e+918])*x^3 +
 ([-1.08969439943e+930 +/- 6.02e+918])*x^4 + ([1.07928682824e+930 +/-
 9.55e+918])*x^5 + ([-7.957487571e+929 +/- 4.23e+919])*x^6 +
 ([4.390792240e+929 +/- 6.15e+919])*x^7 + ([-1.700332217e+929 +/-
 6.11e+919])*x^8 + ([3.04336993e+928 +/- 6.00e+919])*x^9 + O(x^10)
 }}}

 which takes 0.1 milliseconds.

 This would be easier to wrap with a Sage wrapper for Arb power series in
 place, but it should not be too hard to do directly either: see
 `acb_poly_zeta_series` and `arb_poly_zeta_series`.

 In the left half plane, `mpmath.diff(mpmath.zeta, s, n)` could also be
 used instead of `mpmath.zeta(s, 1, n)`.

 It's a bit worrying that `zetaderiv` currently accepts CIF input and
 outputs a *nonrigorous* CIF without warning, by going through a plain
 numerical computation. It is easy to produce examples where the output is
 plain *wrong*:

 {{{
 sage: q = CIF("2.46316186945432128587439505331",
 "23.2983204927628579020109616266")
 sage: zetaderiv(1,q)
 -3.8826886735960628?e-17 - 7.4180200774526877?e-17*I
 sage: q = ComplexIntervalField(128)("2.46316186945432128587439505331",
 "23.2983204927628579020109616266")
 sage: zetaderiv(1,q)
 2.809208149461043895562049836274827424167?e-31 +
 4.678424144202694674839595616043132108038?e-32*I
 }}}

 Are there other Sage functions that treat intervals as carelessly?

--
Ticket URL: <http://trac.sagemath.org/ticket/20127#comment:14>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to