the integral of the Bessel function in Matlab

19 views (last 30 days)
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?

Accepted Answer

Torsten
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
  6 Comments
Torsten
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)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!