3
$\begingroup$

Is there a way to scale $J_n(\cdot)$ (Bessel of first kind) and $H_n(\cdot)$ (Bessel of third kind or Hankel)? I am having computer problems with higher orders (higher values of n) and small arguments. I am using Matlab. The problem is in elastic wave propagation and scattering. The solution of the differential equations of potential is the cylindrical Bessel:

$$r^2 \frac{d^2 R}{dr^2} + r \frac{dR}{dr} + (r^2 - \alpha^2)R = f(r)$$

for an arbitrary real integer number α (the "order" of the Bessel function). In solving problems in cylindrical coordinate systems, Bessel functions are of integer order (α = "n"). Since this is a second-order differential equation, there must be two linearly independent solutions. My solutions use Bessel $J_n(\cdot)$ and Hankel $H_n(\cdot)$ (as previously mentioned)

The "inhomogeneous Helmholtz equation" is the equation:

$$\Delta A({\bf{r}}) + k^2 A({\bf{r}}) = -f({\bf{r}}) \mbox { in } \mathbb R^n$$

Each set of equations are solved separately in the nth order. I am having problems while solving the set of linear equations when $n$ is high and argument is small.

For example the set of linear equations can be written as:

$$ \begin{cases} T_{11} a_1 J_n(x)+T_{12} a_2 J_n(y)+T_{13} a_3 H_n(x)+T_{14} a_4 H_n(y) &= b_1(x,y) \\ T_{21} a_1 J_n(x)+T_{22} a_2 J_n(y)+T_{23} a_3 H_n(x)+T_{24} a_4 H_n(y) &= b_2(x,y) \\ T_{31} a_1 J_n(x)+T_{32} a_2 J_n(y)+T_{33} a_3 H_n(x)+T_{34} a_4 H_n(y) &= b_3(x,y)\\ T_{41} a_1 J_n(x)+T_{42} a_2 J_n(y)+T_{43} a_3 H_n(x)+T_{44} a_4 H_n(y) &=b_4(x,y) \end{cases} $$

such that $b_1, b_2, b_3, b_4$ are known boundary conditions, while $A=[a1, a2, a3, a4]$ is the vector of unknowns and $T=[Tij]$ is a matrix of knowns.

If I can scale or normalize $J_n(\cdot)$ and $H_n(\cdot)$, in small arguments and large $n$, $J_n(\cdot)$ is a very small while $H_n(\cdot)$ is very large of the order $1e40$. The matrix becomes ill conditioned.

Thanks

Sorry guys


I will give an example of the problem. Let us say:

  • I am solving a scattered wave problem. I have full knowledge of an incident wave (displacements, stresses) that is the boundary, and I know the properties of the different medias. I am trying to find the displacement and stresses in different media. The scattered wave. In other words I am trying to find the amplitudes in different medias.

The potential is assumed for each media to be:

$$\phi=\left(a_{1}J_{n}(Kr)+a_{2}H_{n}(Kr)\right)e^{in\theta} ,$$

$$\psi_t = \left(a_{3}J_{n}(k r)+a_{4} H_{n}(k r)\right) e^{in\theta} $$

I am differentiating the potential to get displacements and stresses in terms of the unknowns.

$\endgroup$
6
  • $\begingroup$ I don't think I understood correctly what you're trying to do, but if your matrix is ill-conditioned because the entries in factor of a1 and a2 are much smaller than the ones in factor of a3 and a4, why not scale them? Ie set a'1 = 1e-40 a1, same for a2, and keep a'3 and a'4 equal to a3 and a4, and solve in the prime variables. But anyway, if the difference is that large, you probably can neglect a1 and a2 altogether. Also, there are asymptotics available for J and H for large n (or small x), you might want to look into that, maybe with a matched asymptotic expansion (see wikipedia) $\endgroup$ Nov 30, 2011 at 21:27
  • 1
    $\begingroup$ To follow up on Antoine's comment, if the problem lies with evaluating and appropriately scaling the functions J and H, you may want to take a look at the book "Numerical Methods for Special Functions" by Gil, Segura and Temme. Also, as Antoine said, it would be useful if you could clarify exactly what you're trying to do. $\endgroup$
    – Ben Adcock
    Nov 30, 2011 at 21:57
  • $\begingroup$ I have added more hopefully it will clarify. In response to Antoine a1 and a2 have small coefficients while a3 and a4 has big coefficients. I expect a3 and a4 to be zero if not approach zero. However this is a program and it needs to be very carefully set up at first. Then i won't have to interfer and let it do the calculation. $\endgroup$
    – Chad
    Dec 1, 2011 at 5:39
  • $\begingroup$ My remark still applies. Note that you can perform the scaling automatically by, essentially, preconditioning with the diagonal. Say you want to solve $Ax = b$. Set $x' = D x$. Then, $A D^{-1} x' = b$, and $A D^{-1}$ has nice conditioning. But what you're trying to solve is singular by nature, so do take the time to figure out what's going on and try an asymptotic solution. I'm assuming you're expanding a true solution in $n$, it might be useful to figure out beforehand where you need to stop to avoid getting in singular regimes. $\endgroup$ Dec 1, 2011 at 8:29
  • $\begingroup$ Here is what I found out from a research paper: -They normalize the potential for each layer and for each nth iteration The potential will have Hankel function equal to 1 at the inner radius, while Bessel J will be multiplied by Hankel at outer radius. @ Antoine your idea is great but as you said what I'm trying to solve is singular by nature. It needed some good understanding of the physics of the problem. $\endgroup$
    – Chad
    Dec 1, 2011 at 16:06

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.