Partial Differential Equations PowerTool
by Dr. Jim Herod
Section 6.4: Laplace's Equation on a Disk
Maple Packages for Section 6.3
| > | restart; |
| > | with(plots): |
Warning, the name changecoords has been redefined
| > |
The form for Laplace's Equation
u
= 0 naturally depends on what coordinate system we are using. So far, with rectangular coordinates, the Laplacian Operator is given by two derivatives with respect to x plus two derivatives with respect to y:
u
=
+
.
It would be no surprise how to write this in three dimensions, instead of two.
If the origins of the problem to be considered is on a disk, or annulus, or cylinder, it is often better to think of the problem in polar coordinates. A way to think of the change is to remember that in order to change between rectangular and polar coordinates, use this identity:
x
= r cos(
) and
y
= r sin(
).
In that case, r =
and
= arctan(
y/x
).
For example take these examples. We take r = 2 and use five different
's.
| > | r:=2; theta:=[-3*Pi/4,-Pi/2,0,Pi/4,3*Pi/4]; |
We compute the sequence or points [ r cos(t), r sin(t) ] where t is one of the above
's.
| > | map(t->[r*cos(t),r*sin(t)],theta); |
| > |
We now do it the other way. We pick points and make r 's and
's.
(A part of the problem here is that arctan(-1/1) and arctan(1/(-1)) look the same to the arctangent function. Yet the points [-1, 1] and [1, -1] are in different quadrants. Thus, we either have to be careful in our programming, or hope that Maple has a routine to do this. It does. The program computes the angle associated with a complex number a + b I. Thus, we change the point [ x, y] to the complex number x + y I and use Maple's built in program. You might enjoy making a program that does not use Maple's built in scheme.)
Here, we give points and compute r and theta.
| > | pts:=[[-1,-1],[0,-1],[1,-1],[1,1],[-1,1]]; |
| > | r:=(x,y)->sqrt(x^2+y^2); theta:=(x,y)->argument(x+I*y); |
| > | seq(r(pts[i][1],pts[i][2]),i=1..5); seq(theta(pts[j][1],pts[j][2]),j=1..5); |
| > |
| > |
Laplace's Equation in Polar Coordinates
We want to establish Laplace's equation in polar coordinates. To do this, suppose that
u
(
x
,
y
) satisfies Laplace's equation. Define
v
(r,
) as
u
(r cos(
), r sin(
)). We use the fact that
u
= 0 to show that
= 0
| > | v:=(r,theta)->u(r*cos(theta),r*sin(theta)); |
| > | diff(r*diff(v(r,theta),r),r)/r+diff(v(r,theta),theta,theta)/r^2: |
| > | simplify(%); |
| > |
We see that this last is
u
(r cos(
), r sin(
)). The assumption is that this is zero. Thus, we know a form for the Laplacian Operator in polar coordinates. Here are some examples.
| > | LO:=v->diff(r*diff(v(r,theta),r),r)/r+diff(v(r,theta),theta,theta)/r^2; |
| > | v:=(r,theta)->r*sin(theta); LO(v); |
| > | v:=(r,theta)->r^n*cos(n*theta); LO(v); |
| > |
What are the type problems we can solve with this realization of the Laplacian Operator? You could guess this is a typical problem. You can even guess a solution.
Suppose we have a disk with radius 1. We seek the surface
u
which satisfies
u
=0 for 0< r < 1, -
<
<
.
with u(1,
) = cos(
) for -
<
<
.
What do you guess?
| > | u:=(r,theta)->r*cos(theta); |
| > | LO(u); |
| > | u(1,theta); |
Here is a graph of the surface.
| > | cylinderplot([r,theta,u(r,theta)],r=0..1,theta=0..2*Pi, axes=boxed,orientation=[-125,75], shading=zhue); |
We might be lucky to guess at solutions, but likely will not be. Thus, we need to develop techniques for solving problems on a disk with radius c. We seek bounded solutions for the equations
u
= 0 with u(c,
) = f(
),
<
.
Note that the ray
is not a
boundary
in the same sense as the circle r = c is. To be sure that we do not have false boundary problems, we ask that
u
(r,
) =
u
(r,
) and
(r,
) =
(r, -
).
These are natural boundary conditions of the problem we have described.
Separation of Variables for Laplace's Equation in Polar Coordinates.
In these notes to this point, our first guess for how to solve such a problem has been to separate variables in the equation
= 0,
to get
(r R ') '
+
R
'' = 0.
Multiply by
, divide by R
to get
r (r R ') ' +
'' = 0.
Boundary conditions are
(-
) =
(
),
'(-
) =
'(
).
The two differential equations are
'' +
= 0,
(-
) =
(
), and
'(-
) =
'(
).
and
r( rR ') ' -
R = 0.
The solutions for the first equation, with eigenvalues and eigenfunctions are
= 0,
= 1.
=
,
(
) = cos(n
) or sin(n
).
The second equation is now
R '' + r R ' -
R = 0.
Solutions for this equation are
R(r) = 1 or ln(r) in case n = 0,
and, otherwise,
R(r) =
or
.
Here's how you might remember the solution for this equation in case
n = 0
or
.
| > | unassign('r'); |
| > | n:=0; de := r^2*diff(R(r),r,r)+r*diff(R(r),r)-n^2*R(r)=0; dsolve(de, R(r)); unassign('n'); |
| > | de := r^2*diff(R(r),r,r)+r*diff(R(r),r)-n^2*R(r); |
| > | dsolve(de); |
As a result, we can make the general solution for this problem with
.
v(r,
) =
+
+
.
We have changed the problem to one that can be solved by Fourier Series Techniques. Here is an example.
Example 1:
u = 0, u(1,
) =
We solve
u = 0, u(1,
) =
for
in the interval [0, 2
].
First, we draw the boundary conditions:
| > | spacecurve([cos(theta),sin(theta),sin(theta)^2],theta=-Pi..Pi, color=BLACK,orientation=[35,65],axes=NORMAL); |
| > |
We have the general solution
u
(r,
) =
+
+
.
. If r = 1, we have
(
=
+
+
.
We have only to compute the coefficients. This is a job for Fourier Series. Or, maybe you remember some trig.
=
Thus,
= 1/2,
= -1/2, and all the other
a
's are zero. The implication is that
| > | u:=(r,theta)->1/2-r^2*cos(2*theta); |
| > | cylinderplot([r,theta,u(r,theta)],r=0..1,theta=0..2*Pi, orientation=[40,40],axes=NORMAL, shading=zhue, numpoints=1000); |
| > |
Example 2,
u = 0, u(1,
) =
We solve
u
= 0, u(1,
) =
for
in the interval [0, 2
].
First, we draw the boundary conditions:
| > | spacecurve([cos(theta),sin(theta),theta^3*(Pi^2-theta^2)],theta=-Pi..Pi, color=BLACK,orientation=[10,55],axes=NORMAL); |
| > |
We have the general solution
u
(r,
) =
+
+
.
. If r = 1, we have
=
+
+
.
We compute coefficients. It seems to be of no value to list the numerical output of these integrals, so we suppress output.
| > | a[0]:=int(theta^3*(Pi^2-theta^2),theta=-Pi..Pi)/ int(1,theta=-Pi..Pi): |
| > | for n from 1 to 10 do a[n]:=int(theta^3*(Pi^2-theta^2)*cos(n*theta),theta=-Pi..Pi)/ int(cos(n*theta)^2,theta=-Pi..Pi): end do: n:='n': |
| > | for n from 1 to 10 do b[n]:=int(theta^3*(Pi^2-theta^2)*sin(n*theta),theta=-Pi..Pi)/ int(sin(n*theta)^2,theta=-Pi..Pi): end do: n:='n': |
Here, we define u .
| > | u:=(r,theta)->a[0]+sum(a[n]*r^n*cos(n*theta)+b[n]*r^n*sin(n*theta), n=1..10); |
Here is a graph of the surface. Compare this "rubber sheet" with the space curve given at the start of this problem.
| > | cylinderplot([r,theta,u(r,theta)],r=0..1,theta=0..2*Pi, orientation=[10,55],axes=NORMAL, shading=zhue, numpoints=1000); |
| > |
| > |
| > |
In summary, Laplace's Equation on a disk can be solved in a manner consistent with what has come before:
u
(r,
) =
+
+
,
where
=
,
=
,
and
=
,
where c is the radius of the disk.
EMAIL: herod@math.gatech.edu or jherod@tds.net
URL: http://www.math.gatech.edu/~herod
Copyright © 2003 by James V. Herod
All rights reserved