Skip to content

BesselJZero ​

The kk-th positive zero of the Bessel function JνJ_\nu, for real ν>−1\nu > -1 and positive integer kk. Provided by @enumeratio/analytic.

✓ checked against that system · ! checked, with disagreements (hover a chip)FungrimBesselJZeroFungrim entry1e6344da7fb1Wolfram LanguageBesselJZero✓
BesselJZero(nu, k)the kk-th positive zero of JνJ_\nu.
Typed signatures
TypePackageApplies
(number, integer) -> numberanalyticalways

Domain: Special functions

Details
  • compute-engine's native BesselJ only evaluates numerically at integer order, so the zero-finder here carries its own real JνJ_\nu series (term-ratio, stable for the double-precision range zero-finding needs) rather than depending on it — which matters for exactly the half-integer orders Fungrim's identities use.
  • A zero is located in doubles (McMahon's expansion, then a bracketed series search) and refined by Newton's method in arbitrary precision: the alternating series cancels about x/2.3x/2.3 digits, so a double alone is good to roughly 16−x/2.316 - x/2.3. Past j=400j = 400 it stays symbolic.
  • McMahon's asymptotic expansion seeds a bracket around the kk-th zero, then bisection (with a few closing Newton steps) converges it.
  • Matches mpmath's besseljzero(nu, k) and Wolfram's BesselJZero[nu, k].

Examples

3 more kept as data, checked against the oracles
Basic #

j3/2,1=4.4934…j_{3/2,1} = 4.4934\ldots — also the first positive root of tan⁡x=x\tan x = x

live ↗
InN(BesselJZero(32,1))N(\mathrm{BesselJZero}(\frac{3}{2}, 1))Out4.493 409 457 909 064 175 314.493\,409\,457\,909\,064\,175\,31

j0,1=2.4048…j_{0,1} = 2.4048\ldots

live ↗
InN(BesselJZero(0,1))N(\mathrm{BesselJZero}(0, 1))Out2.404 825 557 695 772 768 622.404\,825\,557\,695\,772\,768\,62

the third zero of J0J_0

live ↗
InN(BesselJZero(0,3))N(\mathrm{BesselJZero}(0, 3))Out8.653 727 912 911 012 216 958.653\,727\,912\,911\,012\,216\,95
live ↗
InSeries⁡(BesselJZero(n,x),x,0,1)\operatorname{Series}(\mathrm{BesselJZero}(n, x), x, 0, 1)OutBesselJZero(n,0)+xBesselJZero(0,1)(n,0)+O(x2)\mathrm{BesselJZero}(n, 0)+x\mathrm{BesselJZero}^{(0, 1)}(n, 0)+O\left(x^2\right)
Scope #

The first three zeros of J0J_0 at engine precision

live ↗
InN([BesselJZero(0,1),BesselJZero(0,2),BesselJZero(0,3)])N(\bigl\lbrack\mathrm{BesselJZero}(0, 1), \mathrm{BesselJZero}(0, 2), \mathrm{BesselJZero}(0, 3)\bigr\rbrack)Out[2.404 825 557 695 772 768 62,5.520 078 110 286 310 649 6,8.653 727 912 911 012 216 95]\bigl\lbrack2.404\,825\,557\,695\,772\,768\,62, 5.520\,078\,110\,286\,310\,649\,6, 8.653\,727\,912\,911\,012\,216\,95\bigr\rbrack

j0,1j_{0,1} to 20 significant digits, refined in arbitrary precision from the double zero

live ↗
InN(BesselJZero(0,1),20)N(\mathrm{BesselJZero}(0, 1), 20)Out2.404 825 557 695 772 768 62.404\,825\,557\,695\,772\,768\,6

j0,3j_{0,3} to 30 significant digits

live ↗
InN(BesselJZero(0,3),30)N(\mathrm{BesselJZero}(0, 3), 30)Out8.653 727 912 911 012 216 954 198 712 668.653\,727\,912\,911\,012\,216\,954\,198\,712\,66
live ↗
InSimplify(Normal⁡(Series⁡(BesselJZero(n,x),x,0,2)))\mathrm{Simplify}(\operatorname{Normal}(\operatorname{Series}(\mathrm{BesselJZero}(n, x), x, 0, 2)))Out12(BesselJZero(0,2)(n,0)x2)+xBesselJZero(0,1)(n,0)+BesselJZero(n,0)\frac{1}{2}(\mathrm{BesselJZero}^{(0, 2)}(n, 0)x^2)+x\mathrm{BesselJZero}^{(0, 1)}(n, 0)+\mathrm{BesselJZero}(n, 0)
live ↗
InSeries⁡(BesselJZero(n,x),x,x0,1)\operatorname{Series}(\mathrm{BesselJZero}(n, x), x, \mathrm{x0}, 1)OutBesselJZero(n,x0)+(x−x0)∂∂x0BesselJZero(n,x0)+O((x−x0)2)\mathrm{BesselJZero}(n, \mathrm{x0})+(x-\mathrm{x0})\frac{∂}{∂\mathrm{x0}} \mathrm{BesselJZero}(n, \mathrm{x0})+O\left((x-\mathrm{x0})^2\right)
Applications #

Zero of J1J_1 divided by π\pi at high precision

live ↗
InN(BesselJZero(1,1)π)N(\frac{\mathrm{BesselJZero}(1, 1)}{π})Out1.219 669 891 266 504 513 619 177 543 587 529 2251.219\,669\,891\,266\,504\,513\,619\,177\,543\,587\,529\,225
Properties #

tan⁡(j3/2,1)=j3/2,1\tan(j_{3/2,1}) = j_{3/2,1} — the sinc function's first turning point

live ↗
Inchop(tan⁡(N(BesselJZero(3/2,1)))−N(BesselJZero(3/2,1)))\mathrm{chop}(\tan(N(\mathrm{BesselJZero}(3/2, 1)))-N(\mathrm{BesselJZero}(3/2, 1)))Out0.00.0
About
Examples14
Checked againstWolfram Language 14 agree
CrosswalkFungrimFungrim entry ×2Wolfram Language

Implementation

primitive · numericirreducibly numeric — it evaluates rather than rewrites

nativeenginetypescriptpackages/symbols/analysis/analytic/src/bessel-zeros.ts
mappedexternalwolfram / mpmathpackages/oracle/src/mappings.ts

BesselJZero[nu, k]; mpmath.besseljzero(nu, k).

See also: Sinc