# Revision history [back]

...numerically searching for the point, and using for this mpmath, we can try:

L   = 1
ome = 14.28    # MeV

from mpmath import *

def F(w):
Arg1 =   sqrt(ome*(1-w^2))
Arg2 = I*sqrt(ome)*w
a   = -I*sqrt(1-w^2)

b = spherical_bessel_J( L-1, Arg1 )
c = spherical_bessel_J( L  , Arg1 )
d = spherical_bessel_J( L  , Arg2 ) + I*spherical_bessel_Y( L  , Arg2 )
e = spherical_bessel_J( L-1, Arg2 ) + I*spherical_bessel_Y( L-1, Arg2 )

return ( a*b*d - w*c*e )

def Freal(w):
return F(w).real

def Fimag(w):
return F(w).imag

# plot( Freal, (0,1), (-3,3) )
# plot( Fimag, (0,1), (-3,3) )    # zero

mp.dps    = 50
mp.pretty = True
findroot( Freal, 0.001 )

This gives:

sage: findroot( Freal, 0.001 )
0.43191301404660550601425558556001915140268185509848

Note: Some other values for the starting point may work or not...

sage: findroot( Freal, 0.4 )
0.43191301404660550601425558556001915140268185509848
sage: findroot( Freal, 0.45 )
0.43191301404660550601425558556001915140268185509848
sage: findroot( Freal, 0.48 )
3.2351453864380279679802136973858464614625968140838
sage: findroot( Freal, 0.5 )
1.3949447484847503200790335008591392342171339970256

The last two values should be - of course - rejected.

Note: pari/gp also does a good job in finding numerical solutions of transcendental equations.