Solving equations for Bessel functions

2 views (last 30 days)
菲
on 3 Apr 2023
Commented: on 3 Apr 2023
I want to use matlab to solve this equation,
the Bessel function of order 1 to 20, My equation is as follows:
jmi=(besselj(m-1, k_i.*a)+besselj(m+1, k_i.*a))./2;
jmo=(besselj(m-1, k_o.*a)+besselj(m+1, k_o.*a))./2;
ymo=(bessely(m-1, k_o.*a)+bessely(m+1, k_o.*a))./2;
f1 = (n_i .*jmi) ./ n_o .* besselj(m, k_o.*a);
f2 = ((besselj(m, k_o.*a).*jmo)+ (bessely(m, k_o.*a).*ymo))/(besselj(m, k_o.*a).^2+ bessely(m, k_o.*a).^2);
h=f1-f2;
[~,loc] = min(abs(h));
disp(lamda(loc));
It is quite different from the expected result. What is the problem?Thanks for help.

Answers (1)

Torsten
Torsten on 3 Apr 2023
Moved: Torsten on 3 Apr 2023
I cannot recover your equation from the code you posted.
Does that help ?
syms x
syms m integer
J = besselj(m,x)
J = 
Y = bessely(m,x)
Y = 
diff(J,x)
ans = 
diff(Y,x)
ans = 

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!