フィルターのクリア

Besselh function in terms of besselj and bessely functions?

1 回表示 (過去 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 Center および File ExchangeSpecial Functions についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by