LAB 12: NORMAL MODES OF A MEMBRANE AND BOUNDARY-VALUE ODE PROBLEMS
Mathematics:
Normal
modes of mechanical vibrations of a circular membrane can be found by solving the
boundary-value problems for a second-order ordinary differential
equation. General vibrations of a circular membrane are decomposed into a
superposition (linear combination) of individual normal modes. Each mode has
its own shape and oscillates with its own frequency. This project exploits
radially symmetrical oscillations of a circular membrane with a hole at the
center.
Denote
r as the radius from the membrane's center in polar coordinates
on the plane: r =_{}. The membrane is located between: a _{} r _{} b and has a
hole at r < a. The shape of the radially symmetric normal mode
of the membrane is found from the second-order differential equation:
_{} + _{}_{} + _{}y = 0 (1)
with
the boundary conditions at the boundaries of the membrane:
y(a) = 0, y(b) = 0 (2)
The
parameter _{} is the frequency of
oscillations of the normal mode. If u = u(r,t) is the vertical
displacement of the membrane as function of time t, then: u(r,t) =
y(r) cos(_{}t). The problem (1)-(2) is a boundary-value problem
for y = y(r), since the two conditions that define a solution y
= y(r) are given at the two different ends of the membrane: r = a
and r = b. It is clear from (1)-(2) that y(r) = 0
is always a solution (the trivial zero solution). However, boundary-value
problems may not have a non-trivial solution such that y(r) _{} 0. A
non-trivial non-zero solution for y = y(r) exists only for a
specific value of the parameter _{}. The parameter _{} is called the
eigenvalue and the function y(r) is called the eigenfunction of
the boundary-value problem (1)-(2).
There
are several possible non-zero solutions of the boundary-value problem (1)-(2).
Let us enumerate these solutions by a sequence{ _{} } such that _{} < _{} < _{} < … with
the corresponding eigenfunctions { y_{k}(r) }. The
eigenfunctions are classified by the number of zeros (nodes) in between a
< r < b. The first (smallest) eigenvalue _{} corresponds to
eigenfunction y_{1}(r) with no nodes (zeros). The second
eigenvalue _{} corresponds to the
eigenfunction y_{2}(r) with one node and so on. The
eigenvalue _{} corresponds to
eigenfunction y_{k}(r) with exactly (k-1)
nodes between a < r < b
.
If
the circular membrane has no hole, a = 0 and the eigenfunctions
of the boundary-value problem (1)-(2) coincide with the Bessel function of zero
order: y_{k}(r) = J_{0}(_{}r) while the eigenvalues are given by zeros of the
Bessel function at r = b: J_{0}(_{}b) = 0. The first five eigenvalues _{} are shown in
the table:
eigenvalues |
k = 1 |
k = 2 |
k = 3 |
k = 4 |
k = 5 |
_{} b |
2.40482555770 |
5.2007811029 |
8.65372791291 |
11.79153443901 |
14.93091770849 |
Objectives:
·
Understand
how to solve the boundary-value problem for a second-order differential
equation with the central difference method
·
Find
the first five eigenvalues and eigenfunctions of the circular membrane
·
Exploit
MATLAB solvers for boundary-value ODE problems
In
numerical methods of solving the boundary-value problem for a second-order
differential equation, the solution is to be found on a discrete grid: r_{1},r_{2},…,r_{n},r_{n+1},
where r_{1} = a and r_{n+1} = b. If
the grid is equally spaced with a constant step size h, then h
= (b-a) / n. Derivatives of a solution y = y(r) at any
point of the grid r = r_{k} can be approximated with the
central differences:
_{}(r_{k}) = _{} _{}(r_{k}) = _{}
This
is the central difference method for solving the boundary-value problem
for a second-order differential equation. Replacing the derivatives by the
central differences at each interior point of the grid: r = r_{k}_{
}for k = 2,…,n; the second-order differential equation
becomes a linear system of equations:
y_{k+1 }( 1 + _{}) + y_{k} ( -2 + _{}h^{2} ) + y_{k-1} ( 1 - _{}) = 0
With
the boundary values y_{1} = y_{n+1} = 0, the linear
system is converted into the matrix form:
M
y = _{} y
where
_{} = _{}h^{2} and the vector y and the
coefficient matrix M is for the case n = 5:
y = _{} M = _{}
This
is a linear eigenvalue problem for the matrix M with the
eigenvalues _{} = _{}h^{2}. First five eigenvalues of the matrix M
are computed and summarized in the table:
eigenvalue |
k = 1 |
k = 2 |
k = 3 |
k = 4 |
k = 5 |
_{} |
0.7630790233 |
1.5556700046 |
2.3412414511 |
3.1214853270 |
3.8961027211 |
Steps
in writing the MATLAB script:
Exploiting
the MATLAB script:
If
the central difference approximation gives the order O(h^{2})
truncation error to the eigenvalue _{}= D_{1}(h), then the Richardson
extrapolations predict the order O(h^{4}) and O(h^{6})
truncation errors to the approximations:
D_{2}(h) = _{}_{} D_{3}(h)
= _{}_{}
The
eigenfunction of the circular membrane y = y(r) solves the
following initial-value problem:
_{} = - _{}_{} - _{}y
with
the initial conditions at the inner boundary of the membrane:
y(a) = 0, y'(a) = 1
The
slope of y = y(r) at r = a is normalized to one
(any solution y = y(r) can be multiplied by a non-zero constant).
The solution of the initial-value problem y = y(r) satisfies also
the boundary condition at the outer boundary of the membrane y(b) = 0
if _{} =_{} is the eigenvalue of the circular membrane. If _{} is close but not
equal to_{}, the eigenfunction y = y(r) is close
but not equal to zero at r = b.
The
second-order differential equation for y = y(r) can be rewritten
as a system of two first-order differential equations:
y' = u (1)
u' = - _{} u – _{} y (2)
with
the initial conditions:
y(a) = 0, u(a) = 1 (3)
The
initial-value problem can be solved if the value _{} is known
explicitly or it is approximated by results of the central difference method.
Steps
in writing the MATLAB script:
Exploiting
the MATLAB script:
_{} + _{}_{} - _{}y + _{}y = 0, n = 1,2
Output
the first five eigenvalues for n = 1 and n = 2
separately.