iconEuler Examples

Poisson's Method to solve Laplace's Equation

by Alain Busser


Siméon Denis Poisson (1781-1860) was lecturer in "mechanics" (today we
would say "theoretical physics") at the french Ecole Polytechnique. He
was also a member of the french Academy of Sciences, which allowed him
to try to steal the works claimed by other people in mathematics...
Two of his victims were Joseph Fourier, who happened to be Napoleon's
friend (alas for Poisson), and Evariste Galois who died too soon to
claim whatever Poisson could have stolen to him...

Poisson is not only famous for his statistical law, but also because
he seems to have been the first (for once!) to solve a boundary value
problem by a convolution of the boundary conditions with a so-called
"kernel", which is now called the "Poisson kernel" and has found in
the 1960s an interesting application  as a model for the plucked
string! This kernel is

Poissons Method

This is a function of two variables, expressed in polar coordinates r
and theta, defined where the series converges, which means the disk of
radius 1, and which looks like this:
>plot2d("(1-abs(x+%i*y)*cos(arg(x+%i*y)))/(1-2*x+x^2+y^2)*(x^2+y^2<1)", ...
>  contour=true,hue=true,title="The famous Poisson kernel"); ...
>insimg;

Poissons Method

The equipotential lines constitute a bundle of circles which have a
common point at (1,0); then the line fields are the circles which are
orthogonal to these circles: They make up another bundle of circles
passing through (1,0) but whoses axis is vertical.


The Laplace problem consists in finding a potential (a function which
laplacian is null in the unit disk) which takes known values at the
boundary which here is the circle. Poisson's method is simple to
state: First, compute the Fourier coefficients of the function which
describes the boundary potential, then multiply them by factors of the
form r^n*cos(n*theta), and sum the products up to infinity. Whenever
the series converges, its sum is the solution of the boundary value
problem. It remains only to represent it (especially the
equipotentials).


In this worksheet, we choose electrical units so that the electric
field is equal, and not only proportionnal, to the opposite of the
gradient of the potential.

For example, if only one electrical charge is present at (1,0), so
that the repartition of the charges is a Dirac delta function at
(1,0), the solution of the BVP is the Poisson kernel itself, so that
the equipotential were drawn just above.

As an other example, let's consider the case where an unit electric
charge is uniformly reparted over the right half of the unit circle,
and its opposite uniformly reparted over the left half. Now the
repartition of the electric charges is a square signal, which Fourier
series is

Poissons Method

if n is odd, 0 otherwise (known result). Then the potential of this
circular capacity is the

Poissons Method

>function pot(x,y) ...
provsum=0;
for n=0 to 100
provsum=provsum+(-abs(x+%i*y))^n*cos((2*n+1)*arg(x+%i*y))/(2*n+1);
end
return 4/%pi*provsum
endfunction
>plot2d("pot(x,y)*(x^2+y^2<1)",contour=true,hue=1,polar=1); ...
>insimg;

Poissons Method

As one can see, the potential is maximal near the center of the
capacity. It is also constant, as it should, on the right half
of the capacity.
>plot3d("pot(x,y)",hue=1,user=1,polar=1,angle=220°); insimg;

Poissons Method

As an other example, we can look at a condenser with 3 plates, which
means that the angular dependency is three times the preceding one.

Then the theta above is to be replaced by 3*theta, which yields
>function pot3(x,y) ...
provsum=0;
for n=0 to 100
provsum=provsum+(-abs(x+%i*y))^n*cos(3*(2*n+1)*arg(x+%i*y))/(2*n+1);
end
return 4/%pi*provsum
endfunction
>plot2d("pot3(x,y)*(x^2+y^2<1)",hue=true,contour=true,polar=true); ...
>insimg;

Poissons Method

If now the electric charge is proportionnal to the square of the
angular position, the Fourier series is still well known, but
converges more rapidly:

Poissons Method

Because the convergence is more rapid, we do not need to sum up to
100; n=20 should be enough:
>function pot2(x,y) ...
provsum=%pi/4;
for n=1 to 20
provsum=provsum+(-abs(x+%i*y))^n*cos(n*arg(x+%i*y))/n^2;
end
return 4/%pi*provsum;
endfunction
>plot2d("pot2(x,y)*(x^2+y^2<1)",hue=true,polar=true,contour=true); ...
>insimg;

Poissons Method

The field lines are almost concentric circles.
>plot3d("pot2(x,y)",hue=1,polar=1); insimg;

Poissons Method

For our last example, we will look at a condenser charged so that
the electric charge is equal to the cosine of the angle. In this
case, there is only one non zero term in the Fourier series:
>function pot1(x,y) ...
return abs(x+%i*y)*cos(arg(x+%i*y));
endfunction
>plot2d("pot1(x,y)*(x^2+y^2<1)",hue=true,contour=true,polar=true); ...
>insimg;

Poissons Method

We just found the recipe to generate a uniform field!

Finally, to show how the Poisson kernel can generate a plucked string
sound, we remark that, for any value of r,

Poissons Method

is 2*%pi-periodic in theta, which in music means "definite pitch",
whereas the wave shape depends from r. If now we make r vary slowly,
when r decreases say from 0.9 to 0, the sound gets poorer and less
loud at the same time, which is caracteristic of the plucked vibrating
strings:
>plot2d("(1-(0.9-0.9*x/256)^2*cos(x/2))"| ...
>  "/(1+(0.9-0.9*x/256)^4-2*(0.9-0.9*x/256)^2*cos(x/2))", ...
>  xmin=0,xmax=256); ...
>insimg;

Poissons Method

>

Examples Homepage