Solving equations for Bessel functions

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.

回答 (1 件)

Torsten
Torsten 2023 年 4 月 3 日
移動済み: Torsten 2023 年 4 月 3 日

0 投票

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 = 

1 件のコメント

菲
2023 年 4 月 3 日
Thank you very much. I'll give it a try

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeBessel functions についてさらに検索

質問済み:

菲
2023 年 4 月 3 日

コメント済み:

菲
2023 年 4 月 3 日

Community Treasure Hunt

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

Start Hunting!

Translated by