MATLAB: HELP: Eigenvalue solution for Bessel Function

bessel functionsolve equations

In the course of studying heat conduction, we will always encounter the solution of eigenvalues. When it comes to Bessel functions, I try to solve the eigenvalues with matlab. But it prompts "Cannot find explicit solution" or "Cannot solve symbolically. Returning a numeric approximation instead."
Attached below is the equation I want to solve and my codeļ¼š
syms n r Beta Lambda ;
eqn=n/r*besselj(n,Beta*r)-Beta*besselj(n+1,Beta*r)+Lambda*besselj(n,Beta*r)==0;
[solx,params,conds]=solve(eqn,Beta,'IgnoreAnalyticConstraints',1,'ReturnConditions', true);
pretty(solx);
I don't know if there is no analytical solution to this problem. If there is no analytical solution, how to deal with such a problem? I would appreciate it if you have good suggestions.

Best Answer

  • There is no analytic solution to the zeros of bessel functions. There are known algorithms for computing the solutions numerically when all of the inputs are numeric.
    Because your inputs are non-numeric (at least in the code you posted), it is not possible to find explicit solutions in terms of the remaining variables.
    There is not much you can do until you get to the point in your code where you have specific numeric values to substitute in for everything except Beta, at which point you can go for a numeric solution.
    But be warned that for given numeric values of the coefficients, there are an infinite number of Beta values that lead to zeros of your eqn.