MATLAB - solving equation with Bessel function

Click For Summary
SUMMARY

The discussion focuses on solving the equation involving Bessel functions using MATLAB. The equation in question is besselj(0,0.5*x)*bessely(0,4.5*x) - besselj(0,4.5*x)*bessely(0,0.5*x) == 0. The user initially attempted to use vpasolve and fzero but only obtained the solution x=0. After clarification, it was revealed that the correct implementation of fzero can yield different solutions based on the initial guess x0. The use of ezplot for visual estimation of roots was also suggested.

PREREQUISITES
  • Familiarity with MATLAB programming
  • Understanding of Bessel functions, specifically besselj and bessely
  • Knowledge of numerical methods in MATLAB, particularly fzero
  • Basic skills in function plotting using ezplot
NEXT STEPS
  • Explore the use of fzero with different initial guesses to find multiple solutions
  • Learn about the vpasolve function for numerical solutions in MATLAB
  • Investigate the properties and applications of Bessel functions in engineering and physics
  • Practice using ezplot for visualizing functions and estimating roots
USEFUL FOR

Mathematics students, engineers, and researchers who are working with Bessel functions in MATLAB and need to solve complex equations numerically.

kravky
Messages
22
Reaction score
3
Hello,

i am trying to solve this equation for x

besselj(0,0.5*x)*bessely(0,4.5*x)-besselj(0,4.5*x)*bessely(0,0.5*x) ==0;

I tried vpasolve, but it gave me answer x=0 only. fzero function didnt work, too.
What function can solve this equation?

Thanks
 
Physics news on Phys.org
Please show us exactly the code you have tried. Otherwise it is impossible to tell where you might have gone wrong. fzero works perfectly fine for me.
 
Yes. I misused fzero function. now it works for me aswell!
Code:
function ffu = f(x)
ffu = besselj(0,0.5*x)*bessely(0,4.5*x) - besselj(0,4.5*x)*bessely(0,0.5*x);

and fzero
Code:
fun=@f
x0=2;
S=fzero(fun,x0)

will find solution. It finds only one solution which is close to the x0 value but its not the problem.
 
Yes, fzero finds just one solution. It will find different solutions depending on your x0 input.

Also, when you have such a short and simple function, you can just as well define an inline function instead of writing an entire function file.
 
  • Like
Likes   Reactions: kravky
I understand. A good way is to use ezplot as well for a rough estimation of points, where functions is zero (intersection with x axis) and then use this rough guess as x0 input in fzero for precise value
 

Similar threads

Replies
5
Views
4K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
5K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K