Besselh function in terms of besselj and bessely functions?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
For the program I am writing, I have the need to increase the precision of the besselh function in MATLAB, because I routinely get infinity as an output. This is NOT an error, as it is just the nature of the problem I am dealing with (it has to do with a wide range of particle sizes in a Mie Scattering calculation).
How I'm attacking this is by using the symbolic math toolbox, however, the besselh function does not support input arguments of type 'sym'. Why it doesn't and besseli, besselj, besselk, and bessely do, I don't know. So, I'm trying to relate the Hankel function (besselh) to the Bessel functions:
besselh(x,y) = besselj(x,y) + (bessely(x,y) * j)
Where x and y are arbitrary values. I'm writing this to not only confirm that this is the right mathematical representation of the besselh function in terms of the besselj and bessely functions, but also to ask if solving besselh (in terms of besselj and bessely) is the best route (or only) to take to increase the precision of the besselh function.
Suggestions and comments are welcome! Thanks so much.
2 commentaires
David Goodmanson
le 13 Mai 2017
Hi Clayton, That's correct for besselh_1, and then besselh_2 = besselj(x,y) - (bessely(x,y) * j). Here are a couple of links to Mie scattering in Matlab:
https://www.mathworks.com/matlabcentral/fileexchange/36831-matscat
John D'Errico
le 13 Mai 2017
Modifié(e) : John D'Errico
le 13 Mai 2017
The help for besselh specifically states:
The relationship between the Hankel and Bessel functions is:
besselh(nu,1,z) = besselj(nu,z) + i*bessely(nu,z)
besselh(nu,2,z) = besselj(nu,z) - i*bessely(nu,z)
Réponses (0)
Voir également
Catégories
En savoir plus sur Special Functions dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!