the integral of the Bessel function in Matlab

25 views (last 30 days)
mery on 7 Jul 2022
Edited: Torsten on 8 Jul 2022
I try to calculate the integral of the Bessel function in Matlab
syms r a b k
assume(a>0)
assume(k>0 & k<1)
L=int(log(r)*(besselj(0,a*r)+b*bessely(0,a*r)),r,k,1)
L =
but I have this error (Invalid limits given : (k, 1)) i.e. I have a problem in log(r) but the k checks (0<k<1) I don't know how to set this condition (0<k<1) in Matlab to get the correct result.
how can I calculate this integral with this condition?

Torsten on 8 Jul 2022
Seems there is no analytical solution for this integral (see MATLAB output above).
Give values to the variables and use numerical integration:
a = 1;
b = 2;
k = 0.5;
L = integral(@(r)log(r).*(besselj(0,a*r)+b*bessely(0,a*r)),k,1)
L = -0.0605
Torsten on 8 Jul 2022
Edited: Torsten on 8 Jul 2022
What error ? You now have an expression for L that you can directly insert instead of
L = int(log(r)*(besselj(0,a*r)+b*bessely(0,a*r)),r,k,1)

Categories

Find more on Bessel functions in Help Center and File Exchange

R2022a

Community Treasure Hunt

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

Start Hunting!