how to evaluate the integral of the expression involving bessel functions.
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have the following expression which i need to find.

then how i can find the integration? here this k is vector which contain k0,k1,k2, and same d and e is also a vector which contain d1,d2,d3 and e1, e2 ,e3 . and
is also given. Then how i can evaluate this integration.
2 commentaires
Torsten
le 18 Juil 2025
Modifié(e) : Torsten
le 18 Juil 2025
Why is psi a function of r ?
Which index p is meant when you write nu_D(r)*abs(nu_D(r))*besselj(chi_p^l * r) r as the integrand ?
Do you have functions to compute the derivatives of besselj and besseli ?
Why does your vector k has only 3 elements instead of 4 for k0,k1,k2 and k3 ?
Réponses (2)
Shishir Reddy
le 18 Juil 2025
Modifié(e) : Shishir Reddy
le 18 Juil 2025
Hi @Javeria
Kindly refer the following steps to numerically evaluate the given integral using MATLAB.
1. Define the Parameters:
% Given values
RI = 0.21;
k = [0.281, 0.2, 0.1];
d = [0.1, 0.3, 0.4]; % d0, d1, d2, d3 → d(1), d(2), d(3), d(4)
e = [0.3, 0.09, 0.7];
chi = [0.01, 0.03, 0.02];
2. Define ν_D(r):
nu_D = @(r) ...
d(1) * besselj(0, k(1)*r) / besselj(0, k(1)*RI) + ...
d(2) * besseli(1, k(2)*r) / besseli(1, k(2)*RI) + ...
d(3) * besseli(1, k(3)*r) / besseli(1, k(3)*RI) + ...
e(1) * besselj(1, chi(1)*r) / besselj(1, chi(1)*RI) + ...
e(2) * besselj(1, chi(2)*r) / besselj(1, chi(2)*RI) + ...
e(3) * besselj(1, chi(3)*r) / besselj(1, chi(3)*RI);
3. Define the Integrand Function:
chi1 = chi(1);
integrand = @(r) abs(nu_D(r)).^2 .* besselj(0, chi1 * r);
4. Use 'integral' to compute the result:
psi = integral(integrand, 0, RI);
disp(['ψ = ', num2str(psi)]);
For more information regarding 'integral' function, kindly refer the following documentation -
I hope this helps.
Torsten
le 18 Juil 2025
Modifié(e) : Torsten
le 18 Juil 2025
l = 0;
R_I = 2;
N = 3;
P = 3;
k = [0.28,0.2,0.1,0.05]; %[k0,k1,k2,k3]
e = [0.3,0.9,0.7]; %[e1,e2,e3]
d = [0.1,0.3,0.4,0.5]; %[d0,d1,d2,d3]
chi = [0.01,0.03,0.02]; %[chi1,chi2,chi3]
format long
psi = integral(@(r)fun(r,l,R_I,N,P,k,e,d,chi),0,R_I)
function values = fun(r,l,R_I,N,P,k,e,d,chi)
nu_D_values = nu_D(r,l,R_I,N,P,k,e,d,chi);
chip = chi(end); %-> which p-index from p has to be taken here ?
values = nu_D_values.*abs(nu_D_values).*besselj(l,chip*r).*r;
end
function nu_D_values = nu_D(r,l,R_I,N,P,k,e,d,chi)
nu_D_values = d(1)*besselj(l,k(1)*r)/dbesselj(l,k(1)*R_I);
for n = 1:N
nu_D_values = nu_D_values + d(n+1)*besseli(l,k(n+1)*r)/dbesseli(l,k(n+1)*R_I);
end
for p = 1:P
nu_D_values = nu_D_values + e(p)*chi(p)*besselj(l,chi(p)*r)/dbesselj(l,chi(p)*R_I);
end
end
function value = dbesseli(nu,z)
value = 0.5*(besseli(nu-1,z) + besseli(nu+1,z));
%value = nu./z.*besseli(nu,z) + besseli(nu+1,z);
end
function value = dbesselj(nu,z)
value = 0.5*(besselj(nu-1,z) - besselj(nu+1,z));
%value = nu./z.*besselj(nu,z) - besselj(nu+1,z);
end
5 commentaires
Torsten
le 21 Juil 2025
The first thing that I'd do is to output the matrices A, B, C, D E, F, W, G and H_I and inspect where the entries in the order of 1e13 - 1e29 stem from in your computations.
Voir également
Catégories
En savoir plus sur Special Functions dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!