I'm new in Mathematica and I'm trying to find the solutions of this equation involving Bessel functions

$$\eta \frac{ J_{n+1}(\eta a)}{J_n(\eta a)}+\chi \frac{ I_{n+1}(\chi a)}{I_n(\chi a)}=0$$


$$ \eta =\sqrt{\frac{\beta ^2 \left(\sqrt{\frac{4 \alpha ^2 \omega ^2}{\beta ^2}+1}-1\right)}{2 \alpha ^2}} \,\,\,,\,\,\,\,\,\chi =\sqrt{\frac{\beta ^2 \left(\sqrt{\frac{4 \alpha ^2 \omega ^2}{\beta ^2}+1}+1\right)}{2 \alpha ^2}}$$


$$ \alpha =\sqrt{\frac{h^2 M}{12 \left(1-\nu ^2\right) \rho }} \,\,,\,\,\, \beta =\sqrt{\frac{M T}{\left(1-\nu ^2\right) \rho }}$$

So at the end, my equation is a function of n (which is an integer), $\omega$, h and T.

I need to find the values of $\omega$ or eigenfrequencies for which the equation is satisfied.

Based on this post Trying to solve a transcendental equation involving Bessel functions, I tried the following:

f[n_, ω_, h_,T_] := η*BesselJ[n+1,η*a]/BesselJ[n,η*a] 
                           + χ*BesselI[n+1, χ*a]/BesselI[n,χ*a]


Manipulate[Plot[f[n_, ω_, h_, T_], {ω, 0, 10}, PlotRange -> {-1000, 1000}], 
                                    {n, 0, 5, 1}, {h, 0.1, 1}, {T, -1, 1}]

but the plot does not show anything. (I set a=1)

Thanks for your help!


With the help of Bill's edits, the code should look like this:

Clear[f, omega, alpha, beta, h, M, T, v, rho];
eta = 
 Sqrt[beta^2 (Sqrt[4 alpha^2 omega^2/beta^2 + 1] - 1)/(2 alpha^2)]; 
chi = 
 Sqrt[beta^2 (Sqrt[4 alpha^2 omega^2/beta^2 + 1] + 
      1)/(2 alpha^2)]; 
alpha = 
 Sqrt[h^2 M/(12 (1 - v^2) rho)]; 
beta = Sqrt[M T/((1 - v^2) rho)]; 
a = 1;

f[n_, omega_, h_, T_] = 
  eta*BesselJ[n + 1, eta*a]/BesselJ[n, eta*a] + 
   chi*BesselI[n + 1, chi*a]/BesselI[n, chi*a];

 Plot[f[n, ω, h, T], {ω, 0, 10}, 
  PlotRange -> {-1000, 1000}], {n, 0, 5, 1}, {h, 0.1, 1}, {T, -1, 1}]

plot manipulate

The main missing ingredient is that you defined the parameters eta and chi outside of the function f, but these parameters actually depend on variables that are supposed to be fed into the function (omega and the things entering alpha, beta). To make sure that these outside definitions are incorporated into the definition of f, you can replace SetDelayed by Set (making sure that the necessary variables are cleared. So you just replace the f[...] := ... by f[...] = ....

  • $\begingroup$ Thank you very much! This is very helpful! $\endgroup$
    – Jemme
    Sep 5 '14 at 16:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.