Application Center - Maplesoft

App Preview:

Higher-dimensional PDE: Vibrating rectangular membranes and nodes.

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

2d-Wave.mws

Partial Differential Equations

Higher-dimensional PDE: Vibrating rectangular membranes and nodes.

Anton Dzhamay

Department of Mathematics

The University of Michigan

Ann Arbor, MI 48109

wPage: http://www.math.lsa.umich.edu/~adzham

email: adzham@umich.edu

Copyright  2004  by Anton Dzhamay

All rights reserved

Introduction

In this worksheet we consider some examples of the vibrating patterns of rectangular membranes. Such membranes are described by the 2-dimensional wave equation diff(u(x,y,t),t,t) = c^2*Delta(u(x,y,t)) . we are mainly interested in the product solution obtained by the method of separation of variables, such product solutions of the wave equations are also called standing waves . In particular, we consider intricate patterns of nodal curves appearing when there is more than one eigenfunction corresponding to the same eigenvalue (this happens, for example, for a square membrane.

Packages

Some packages that we use in this worksheet:

>    restart: with(plottools): with(plots):

Warning, the names arrow and changecoords have been redefined

>   

Definitions

First we define the spatial eigenfunction Phi[n,m](x,y)    of the Dirichlet boundary problem:

>    Phi:=unapply(sin(n*Pi*x/L)*sin(m*Pi*y/H),n,m):'Phi[n,m](x,y)'=Phi(n,m);

Phi[n,m](x,y) = sin(n*Pi*x/L)*sin(m*Pi*y/H)

The corresponding eigenvalue lambda[n,m]    then is

>    lambda:=unapply((n*Pi/L)^2+(m*Pi/H)^2,n,m):'lambda[n,m]'=lambda(n,m);

lambda[n,m] = n^2*Pi^2/L^2+m^2*Pi^2/H^2

The corresponding time-dependent term is

>    T:=unapply(A[n,m]*cos(c*sqrt(lambda(n,m))*t)+B[n,m]*sin(c*sqrt(lambda(n,m))*t),n,m):T(n,m);

A[n,m]*cos(c*(n^2*Pi^2/L^2+m^2*Pi^2/H^2)^(1/2)*t)+B[n,m]*sin(c*(n^2*Pi^2/L^2+m^2*Pi^2/H^2)^(1/2)*t)

The product solution then is

>    u:=unapply(Phi(n,m)*(T(n,m)),n,m):u(n,m);

sin(n*Pi*x/L)*sin(m*Pi*y/H)*(A[n,m]*cos(c*(n^2*Pi^2/L^2+m^2*Pi^2/H^2)^(1/2)*t)+B[n,m]*sin(c*(n^2*Pi^2/L^2+m^2*Pi^2/H^2)^(1/2)*t))

The general solution is the superposition of basic solutions:

>    sum(sum(u(n,m),n=1..infinity),m=1..infinity);

sum(sum(sin(n*Pi*x/L)*sin(m*Pi*y/H)*(A[n,m]*cos(c*(n^2*Pi^2/L^2+m^2*Pi^2/H^2)^(1/2)*t)+B[n,m]*sin(c*(n^2*Pi^2/L^2+m^2*Pi^2/H^2)^(1/2)*t)),n = 1 .. infinity),m = 1 .. infinity)

In this worksheet we consider only initial displacements:

>    B[n,m]:=0;A[n,m]:=1;

B[n,m] := 0

A[n,m] := 1

And therefore

>    T:=unapply(A[n,m]*cos(c*sqrt(lambda(n,m))*t)+B[n,m]*sin(c*sqrt(lambda(n,m))*t),n,m):T(n,m);

cos(c*(n^2*Pi^2/L^2+m^2*Pi^2/H^2)^(1/2)*t)

and the product solution is simply

>    u:=unapply(Phi(n,m)*(T(n,m)),n,m):u(n,m);

sin(n*Pi*x/L)*sin(m*Pi*y/H)*cos(c*(n^2*Pi^2/L^2+m^2*Pi^2/H^2)^(1/2)*t)

The period of ( n, m   )-oscillation is

>    P:=unapply( (2*Pi)/(c*sqrt(lambda(n,m))),n,m):P(n,m);

2*Pi/c/(n^2*Pi^2/L^2+m^2*Pi^2/H^2)^(1/2)

We also introduce the following procedure that will help us to plot solutions together with corresponding nodal curves:

>    wave:=proc(sol)
display([
contourplot3d(sol,x=-0.01..1.01*L,y=-0.01..1.01*H,contours=[0],color=red,thickness=3,numpoints=600),
plot3d(sol,x=0..L,y=0..H,shading=zhue)],scaling=constrained,axes=boxed);
end:

>   

Rectangle

For a generic rectangle eigenvalues are simple.

>    c:=1:L:=2:H:=3:

This is the "lowest energy" mode with

>    'lambda(1,1)'=lambda(1,1);

lambda(1,1) = 13/36*Pi^2

We consider the Dirichlet boundary conditions, so the boundary of the membrane does not move.

>    animate(wave,[u(1,1)],t=0..P(1,1));

[Maple Plot]

Note that n = 1, m = 2  mode has a fixed line through the middle (at y = H/2 ). Such a line (time-independent zero-level of u(x,y,t) ) is called the nodal curve .

>    animate(wave,[u(1,2)],t=0..P(1,2));

[Maple Plot]

There are two nodal curves for n = 3, m = 1  mode:

>    animate(wave,[u(3,1)],t=0..P(3,1));

[Maple Plot]

And this is how the nodal curves for n = 3, m = 2  mode lookslike:

>    animate(wave,[u(3,2)],t=0..P(3,2));

[Maple Plot]

Same oscillations viewed from the top:

>    display(animate(wave,[u(3,2)],t=0..P(3,2)),orientation=[-90,0],insequence=true);

[Maple Plot]

Note that for general L  and H  different modes have different eigenvalues and therefore have different frequences of oscillation:

>    'lambda(2,3)'=lambda(2,3);'lambda(3,2)'=lambda(3,2);

lambda(2,3) = 2*Pi^2

lambda(3,2) = 97/36*Pi^2

Such a combination will not be a standing wave  and will not have nodal curves (the zero-levels of u(x,y,t)  are time-dependent:)

>    display(animate(wave,[u(2,3)+u(3,2)],t=0..2*P(2,3)*P(3,2)),orientation=[-90,0],insequence=true,frames=1000);

[Maple Plot]

Clean-up:

>    c:='c':L:='L':H:='H':

>   

Square, multiple eigenfunctions, and interesting nodal curves.

For a square membrane different modes can have the same eigenvalue, which leads to non-trivial nodal curves and interesting vibrating patterns.

>    c:=1:L:=2:H:=2:

>    animate(wave,[u(1,3)],t=0..P(1,3),title="u[1,3]");

[Maple Plot]

>    animate(wave,[u(3,1)],t=0..P(3,1),title="u[3,1]");

[Maple Plot]

Note that the eigenvalues lambda[1,3]  and lambda[3,1]  are the same:

>    'lambda[1,3]'=lambda(1,3); 'lambda[3,1]'=lambda(3,1);

lambda[1,3] = 5/2*Pi^2

lambda[3,1] = 5/2*Pi^2

The sum of two eigenfunctions with the same eigenvalue is still an eigenfunction with the same eigenvalue (and so adding a time-dependent term again produces a standing wave), but the nodal curve and the vibration pattern is very different from the "product" behavoir of individual eigenfunctions:

>    animate(wave,[u(1,3)+u(3,1)],t=0..P(1,3),title="u[1,3]+u[3,1]");

[Maple Plot]

We collect a few more interesting examples below:

>    animate(wave,[u(1,3)-u(3,1)],t=0..P(1,3),title="u[1,3]-u[3,1]");

[Maple Plot]

>    animate(wave,[u(1,3)+u(3,1)/3],t=0..P(1,3),title="u[1,3]+u[3,1]/3");

[Maple Plot]

>    animate(wave,[u(1,3)-2/3*u(3,1)],t=0..P(1,3),title="u[1,3]-2/3*u[3,1]");

[Maple Plot]

>    animate(wave,[u(2,3)+u(3,2)],t=0..P(2,3),title="u[2,3]+u[3,2]");

[Maple Plot]

>    animate(wave,[u(2,3)+u(3,2)/3],t=0..P(2,3),title="u[2,3]+u[3,2]/3");

[Maple Plot]

>    animate(wave,[u(1,4)+u(4,1)],t=0..P(1,4),title="u[1,4]+u[4,1]");

[Maple Plot]

>    animate(wave,[u(1,4)+sqrt(2/3)*u(4,1)],t=0..P(1,4),title="u[1,4]+sqrt(2/3)*u[4,1]");

[Maple Plot]

>    animate(wave,[u(1,4)+sqrt(2/3)*u(4,1)/3],t=0..P(1,4),title="u[1,4]+sqrt(2/3)*u[4,1]/3");

[Maple Plot]

>    display(animate(wave,[u(6,1)+u(1,6)],t=0..P(1,6)),orientation=[-90,0],insequence=true,frames=1000,
title="u[6,1]+u[1,6]");

[Maple Plot]

>    display(animate(wave,[u(6,1)+0.5*u(1,6)],t=0..P(1,6)),orientation=[-90,0],insequence=true,frames=1000,
title="u[6,1]+u[1,6]/2");

[Maple Plot]

>   

References

  • Walter A. Strauss, Partial Differential Equations: An Introduction, Wiley, 1992
  • Richard Haberman, Elementary Applied Partial Differential Equations, 3rd edition, Prentice Hall
  • Stanley J. Farlow, Partial Differential Equations for Scientists and Engineers, Dover 1982

Disclaimer

"While every effort has been made to validate the solutions in this worksheet, Waterloo Maple Inc. and the contributors are not responsible for any errors contained and are not liable for any damages resulting from the use of this material."