Expansion of a plane wave in spherical waves

Click For Summary

Homework Help Overview

The discussion revolves around the expansion of a plane wave into spherical waves using a specific mathematical representation involving spherical Bessel functions and associated Legendre polynomials. The original poster attempts to verify this expansion through MATLAB code but encounters discrepancies in the plotted results.

Discussion Character

  • Exploratory, Mathematical reasoning, Assumption checking

Approaches and Questions Raised

  • The original poster shares their MATLAB code and notes that the graphs of the plane wave and the spherical wave expansion appear similar but not identical, leading to questions about potential missing coefficients. Another participant expresses a similar issue, prompting inquiries about the nature of the problem.

Discussion Status

Participants are actively exploring the issue, with one suggesting a specific correction regarding the use of ordinary Bessel functions versus spherical Bessel functions in the code. This indicates a productive direction in the discussion, although no consensus has been reached on the complete solution.

Contextual Notes

The original poster confirms that this inquiry is related to schoolwork, which may impose certain constraints on the discussion and the approaches taken.

clive
Messages
118
Reaction score
0
I have to expand a plane wave in spherical waves by using

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

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.
 
This is for school
 
Last edited:
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
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K
Replies
3
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K