[math-fun] Bessel at High Precision?
*Quad>* Hey all. Does anyone have any ideas on computing Bessel functions to high precision (over the complex plane)? Googling gives [1] and [2]. Sorry, [1] is behind a paywall. I am wondering if one of you has a secret magical sum or product that just magically works well for high precision computation. If not, maybe we can develop some strategies! Thanks, Robert Smith [1] dl.acm.org/citation.cfm?id=1466254 [2] web.cs.dal.ca/~jborwein/bessel.pdf *------ You're of course welcome to my Macsyma code. At the time, I used (a tiny fraction of) Watson's Treatise, but now there's dlmf*.nist.gov/10 . My only novelty was using matrix products to do the series--merely a small constant speedup. I may not even have gotten around to handling the asymptotics. Do you suspect Mathematica knows something we don't? --rwg
On 4/2/2012 5:11 PM, Bill Gosper wrote:
*Quad>* Hey all.
Does anyone have any ideas on computing Bessel functions to high precision (over the complex plane)?
Googling gives [1] and [2]. Sorry, [1] is behind a paywall.
I am wondering if one of you has a secret magical sum or product that just magically works well for high precision computation. If not, maybe we can develop some strategies!
Thanks,
Robert Smith
[1]dl.acm.org/citation.cfm?id=1466254 <http://dl.acm.org/citation.cfm?id=1466254> [2]web.cs.dal.ca/~jborwein/bessel.pdf <http://web.cs.dal.ca/%7Ejborwein/bessel.pdf> *------ You're of course welcome to my Macsyma code. At the time, I used (a tiny fraction of) Watson's Treatise, but now there's dlmf*.nist.gov/10 <http://nist.gov/10> . My only novelty was using matrix products to do the series--merely a small constant speedup. I may not even have gotten around to handling the asymptotics. Do you suspect Mathematica knows something we don't? --rwg
I don't know about complex arguments, but the high-precision real computation can be done by a Miller-type running the 3-term recurrence backward. This is done in CACM algorithm 236 by Gautschi, and it is actually arbitrary-precision, if that is the arithmetic you have underneath the (ALGOL-60) implementation. I have such code for Maxima and for Lisp. The usual series-for-small-arg plus asymptotic-series-for-large-arg doesn't really work well for high-precision requirements. There are also ways of expanding Taylor series around zeros elsewhere, and maybe other tricks. It is possible to generate high precision derivatives at zeros of Bessel functions, easily. There are also tricks for finding high precision values of bessel zeros. And Mathematica is inaccurate in finding bessel values near zeros of bessel functions in machine precision. It is much better in arbitrary precision. Does it know something we don't know? Probably not. RJF
I don't know if it'll be of any help but Jim Blue implemented some Bessel functions to a reasonable degree of accuracy in the Math class for Ultra Fractal in common.ulb which can be found here: http://formulas.ultrafractal.com/ It is in the list of formulas under "Damien Jones" (as Damien is responsible for keeping the "common" file consistent as many authors have contributed). Here's Jim's brief info text on the Bessel implementation (directly from common.ulb), including sources: ; <h4>Bessel Function Notes</h4> ; <p> ; These approximations to the Bessel functions J_0(x) and J_1(x) ; (for <strong>real</strong> x) are accurate to 15 or 16 digits. They come from <br> ; Computer Approximations<br> ; J. F. Hart, et al.<br> ; Wiley, 1968<br> ; Spot values have been checked from the text and as calculated by ; Mathematica. ; <p> ; These "Bessel" functions J_0(z) and J_1(z) ; (for <strong>complex</strong> z) are not quite the actual Bessel functions. ; Let R = cabs(z). For R <= R1, these are the actual Bessel functions, ; computed by power series, to full precision except for round-off. ; For R > R1, these are ; similar to the actual Bessel functions, with appropriate asymptotic ; behavior for large R, and matched at R = R1. The actual Bessel functions ; cannot be calculated with full precision for large R without going to ; higher-precision calculations, and this is (a) not possible in UF and ; (b) not really necessary for making fractals. ; <p> ; R1 = 8 is used below. ; <p> ; Jim Blue, June 2008 On 3 Apr 2012, at 01:11, Bill Gosper wrote:
*Quad>*
Hey all.
Does anyone have any ideas on computing Bessel functions to high precision (over the complex plane)?
Googling gives [1] and [2]. Sorry, [1] is behind a paywall.
I am wondering if one of you has a secret magical sum or product that just magically works well for high precision computation. If not, maybe we can develop some strategies!
Thanks,
Robert Smith
[1] dl.acm.org/citation.cfm?id=1466254 [2] web.cs.dal.ca/~jborwein/bessel.pdf
*------ You're of course welcome to my Macsyma code. At the time, I used (a tiny fraction of) Watson's Treatise, but now there's dlmf*.nist.gov/10 . My only novelty was using matrix products to do the series--merely a small constant speedup. I may not even have gotten around to handling the asymptotics. Do you suspect Mathematica knows something we don't? --rwg _______________________________________________ math-fun mailing list math-fun@mailman.xmission.com http://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun
The meaning and purpose of life is to give life purpose and meaning. The instigation of violence indicates a lack of spirituality.
participants (3)
-
Bill Gosper -
Dave Makin -
Richard Fateman