1 | initial version |
...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.