Besselh function in terms of besselj and bessely functions?
1 view (last 30 days)
Show older comments
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 Comments
David Goodmanson
on 13 May 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
on 13 May 2017
Edited: John D'Errico
on 13 May 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)
Answers (0)
See Also
Categories
Find more on Special Functions in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!