Infinite sum with Bessel's function

5 visualizzazioni (ultimi 30 giorni)
mery
mery il 10 Ago 2022
Commentato: Andrew il 20 Apr 2023
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
Torsten
Torsten il 10 Ago 2022
Modificato: Torsten il 10 Ago 2022
Where is the error and what is the error message ?
By the way: It's nonsense to determine the roots again and again with every call of "findLr".
Determine them only once at the beginning of your program.
mery
mery il 10 Ago 2022
Modificato: mery il 10 Ago 2022
the error is
Error using ==> findLr
Too many input arguments.
Error in ==> findLp at 5
Lp(i)= findLr(rr1,K,n,sstep);
Error in ==> tset at 4
findLp(K,n,sstep)

Accedi per commentare.

Risposta accettata

Torsten
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
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
Andrew
Andrew il 20 Apr 2023
This has now worked on my MATLAB R2014a version. Thank you very much

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by