Infinite sum with Bessel's function
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have this sum with the Bessel function that I am trying to calculate and plot.

Any help would be greatly appreaciated.
Thank you
2 Commenti
Risposta accettata
Torsten
il 11 Ago 2022
Modificato: Torsten
il 11 Ago 2022
n = 60;
sstep = 1;
a_k = J0ROOTS(n,sstep);
r = (0:0.01:1).';
t = 0:0.1:1;
S = zeros(numel(r),numel(t));
for i = 1:numel(t)
S(:,i) = sum(2*besselj(0,a_k.*r)./(a_k.^2.*besselj(1,a_k)).*exp(-a_k.*t(i)),2);
end
plot(r,S)
function x=J0ROOTS(n,sstep)
if nargin==0
n=20;
sstep=1;
elseif nargin==1
sstep=1;
end
J0=@(x) besselj(0,x);
k=0; i=0;
while k<n
i1=i+sstep;
if J0(i)*J0(i1)<0
k=k+1;
x(k)=fzero(J0,[i i1]);
end
i=i1;
end
end
6 Commenti
Torsten
il 30 Mar 2023
n = 60;
sstep = 1;
a_k = J0ROOTS(n,sstep);
r = (0:0.01:1).';
t = 0:0.1:1;
S = zeros(numel(r),numel(t));
for i = 1:numel(t)
for k = 1:numel(r)
for l = 1:n
S(k,i) = S(k,i) + 2*besselj(0,a_k(l)*r(k))/(a_k(l)^2*besselj(1,a_k(l)))*exp(-a_k(l)*t(i));
end
end
end
plot(r,S)
function x=J0ROOTS(n,sstep)
if nargin==0
n=20;
sstep=1;
elseif nargin==1
sstep=1;
end
J0=@(x) besselj(0,x);
k=0; i=0;
while k<n
i1=i+sstep;
if J0(i)*J0(i1)<0
k=k+1;
x(k)=fzero(J0,[i i1]);
end
i=i1;
end
end
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Assembly in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

