Want to compute product of Bessel and Hankel function in Matlab - $J_m(x)\cdot H_m^{(1)}(y)$ - but large order or argument returns 'inf'?

135 Views Asked by At

I am trying to compute (in Matlab) the product of a Bessel function and a Hankel function where the order $m$ of the functions may be very large and/or the arguments $\alpha x$ and $\alpha y$ of the functions are complex and of large magnitude. Note that $x$ and $y$ are real numbers of order $1$ and it is the $\alpha$ that can be complex and of large magnitude. So I am looking to compute $u_m$ defined by

$$ u_m(x,y) = J_m(\alpha x) \cdot H_m^{(1)}(\alpha y). $$

  • When the order $m$ is large enough, Matlab returns inf for $H_m^{(1)}(\alpha y)$
  • When the complex argument $\alpha x$ is large enough, Matlab returns inf for $J_m(\alpha x)$

However, when one of the functions is very large the other one is always very very small so that $u_m$ is in fact always some small number, e.g. $u_m$ ranges from around $O(10^{-4})$ down to zero.

But even though $u_m$ always exists and is small, I can't compute it because of the value inf for either $H_m^{(1)}(\alpha y)$ or $J_m(\alpha x)$. Is there some way to overcome this issue?