Expansion of a plane wave in spherical waves

Join the discussion
Registration is free. Start your own thread to ask a follow-up.
4 replies · 7K views
clive
Messages
118
Reaction score
0
I have to expand a plane wave in spherical waves by using

[tex]e^{i\vec{k}\cdot\vec{r}}=\sum_{n=0}^{\infty}i^n (2n+1)P_n(cos \theta) j_n(kr)[/tex]

I wrote a MATLAB code (pasted below) in order to check this by plotting the two sides of the eq above. The graphs are similar but different. I do not know what is wrong with this ... I suppose there are some missing coefficients somewhere...?

clear all;
close all;
clc;

kr=0.1*i+6;

x=linspace(-1, 1, 100);

for(ii=1:100)
F_plane(ii)=exp(i*abs(kr)*x(ii));
end

for(ii=1:100)
F_approx(ii)=0;
for(order=0:150)
ASSOCLEG=legendre(order, x(ii));
F_approx(ii)=F_approx(ii)+i^order*(2*order+1)*besselj(order, abs(kr))*ASSOCLEG(1);
end
end

plot(x, real(F_plane), 'or', x, imag(F_plane), 'ob', x, real(F_approx), '-r', x, imag(F_approx), '-b')
 
Last edited:
Physics news on Phys.org
I have the same problem, does anyone what is missing here?
 
Is this for school or for work? I can move the thread to the Homework Help forums if its homework/coursework.
 
I figured out that the problem is that in your code you are using besselj in MATLAB which is ordinary bessel function of first kind (J_n). You should have used spherical bessel functions j_n instead in this expansion.

The spherical Bessel functions j_n are given in terms of ordinary Bessel functions J_n by:

j_n(x) = sqrt(pi/(2*x)) J_{n+1/2}(x)

This would solve it