## Documentation Center |

Solve eigenvalue PDE problem

`[v,l]=pdeeig(b,p,e,t,c,a,d,r)[v,l]=pdeeig(K,B,M,r)`

`[v,l]=pdeeig(b,p,e,t,c,a,d,r)` produces
the solution to the FEM formulation of the scalar PDE eigenvalue problem

–∇ · (*c*∇*u*)
+ *au* = *λdu* on Ω

or the system PDE eigenvalue problem

on a geometry described by `p`, `e`,
and `t`, and with boundary conditions given by `b`.

`r ` is a two-element vector,
indicating an interval on the real axis. (The left-hand side can be `-Inf`.)
The algorithm returns all eigenvalues in this interval in `l`,
up to a maximum of 99 eigenvalues.

`v` is an *eigenvector
matrix*. For the scalar case each column in `v` is
an eigenvector of solution values at the corresponding node points
from `p`. For a system of dimension *N* with *n _{p}* node
points, the first

`b` describes the boundary
conditions of the PDE problem. `b` can be a Boundary
Condition matrix, the name of a Boundary file, or a function handle
to a Boundary file. The formats of the Boundary Condition matrix and
Boundary file are described in the entries on `assemb` and `pdebound`,
respectively. The eigenvalue PDE problem is a *homogeneous* problem,
i.e., only boundary conditions where *g* = 0 and *r* =
0 can be used. The nonhomogeneous part is removed automatically.

The geometry of the PDE problem is given by the mesh data `p`, `e`,
and `t`. For details on the mesh data representation,
see Mesh Data.

The coefficients `c`, `a`, `d` of
the PDE problem can be given in a wide variety of ways. In the context
of `pdeeig` the coefficients cannot depend on `u` nor `t`,
the time. For a complete listing of all options, see Scalar PDE Coefficients and Coefficients for Systems of PDEs.

`[v,l]=pdeeig(K,B,M,r)`
produces the solution to the generalized sparse matrix eigenvalue
problem

*K u _{i}* = λ

with Real(*λ*) in the interval in *r*.

Compute the eigenvalues less than 100 and corresponding eigenmodes for

–∇*u* = λ*u*,

on the geometry of the L-shaped membrane. Then display the first and sixteenth eigenmodes.

[p,e,t]=initmesh('lshapeg'); [p,e,t]=refinemesh('lshapeg',p,e,t); [p,e,t]=refinemesh('lshapeg',p,e,t); [v,l]=pdeeig('lshapeb',p,e,t,1,0,1,[-Inf 100]); l(1) % first eigenvalue pdesurf(p,t,v(:,1)) % first eigenmode figure membrane(1,20,9,9) % the MATLAB function figure l(16) % sixteenth eigenvalue pdesurf(p,t,v(:,16)) % sixteenth eigenmode

In the standard case *c* and *d* are
positive in the entire region. All eigenvalues are positive, and 0
is a good choice for a lower bound of the interval. The cases where
either *c* or *d* is zero are discussed
next.

If

*d*= 0 in a subregion, the mass matrix*M*becomes singular. This does not cause any trouble, provided that*c*> 0 everywhere. The pencil (*K,M*) has a set of infinite eigenvalues.If

*c*= 0 in a subregion, the stiffness matrix`K`becomes singular, and the pencil (*K,M*) has many zero eigenvalues. With an interval containing zero,`pdeeig`goes on for a very long time to find all the zero eigenvalues. Choose a positive lower bound away from zero but below the smallest nonzero eigenvalue.If there is a region where both

*c*= 0 and*d*= 0, we get a singular pencil. The whole eigenvalue problem is undetermined, and any value is equally plausible as an eigenvalue.

Some of the awkward cases are detected by `pdeeig`.
If the shifted matrix is singular, another shift is attempted. If
the matrix with the new shift is still singular a good guess is that
the entire pencil (*K,M*) is singular.

If you try any problem not belonging to the standard case, you must use your knowledge of the original physical problem to interpret the results from the computation.

Was this topic helpful?