Besselh function in terms of besselj and bessely functions?

조회 수: 3 (최근 30일)
Clayton Birchenough
Clayton Birchenough 2017년 5월 13일
편집: John D'Errico 2017년 5월 13일
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
David Goodmanson
David Goodmanson 2017년 5월 13일
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
John D'Errico 2017년 5월 13일
편집: John D'Errico 2017년 5월 13일
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)

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Special Functions에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by