# NDEigenvalues

NDEigenvalues[[u[x,y,]],u,{x,y,}Ω,n]

gives the n smallest magnitude eigenvalues for the linear differential operator over the region Ω.

NDEigenvalues[{1[u[x,y,],v[x,y,],],2[u[x,y,],v[x,y,],],},{u,v,},{x,y,}Ω,n]

gives eigenvalues for the coupled differential operators {op1,op2,} over the region Ω.

NDEigenvalues[eqns,{u,},t,{x,y,}Ω,n]

gives the eigenvalues in the spatial variables {x,y,} for solutions u, of the coupled time-dependent differential equations eqns.

# Details and Options

• NDEigenvalues, also known as an eigenmode solver, is a numerical eigen solver that finds eigenvalues of differential equations over regions.
• NDEigenvalues gives a list {λ1,,λn} of the n smallest magnitude eigenvalues λi.
• The equations eqns are specified as in NDSolve.
• Eigenvalues are sorted in order of increasing absolute value.
• Homogeneous DirichletCondition, NeumannValue or generalized Robin boundary conditions may be included. »
• PeriodicBoundaryCondition may be included.
• When no boundary condition is specified on part of the boundary Ω, then this is equivalent to specifying a Neumann 0 condition.
• For a system of first-order time-dependent equations, the time derivatives D[u[t,x,y,],t],D[v[t,x,y,],t], are effectively replaced with λ u[x,y,],λ v[x,y,],.
• Systems of time-dependent equations that are higher than first order are reduced to a coupled first-order system with intermediate variables ut=u*,=, vt=v*,=, . Only the functions u, v, are returned. »
• NDEigenvalues accepts a Method option that may be used to control different stages of the solution. With Method->{s1->m1,s2->m2,}, stage si is handled by method mi. When stages are not given explicitly, NDEigenvalues tries to automatically determine what stage to apply a given method to.
• Possible solution stages are:
•  "PDEDiscretization" discretization of spatial operators. "Eigensystem" computation of the eigensystem from the discretized system. "VectorNormalization" normalization of the eigenvectors that are used to construct the eigenfunctions.

# Examples

open allclose all

## Basic Examples(3)

Find the 4 smallest eigenvalues of the Laplacian operator on [0,π]:

Compute the first 6 eigenvalues for a circular membrane with the edges clamped:

Specify a Schrödinger operator with parameter and potential :

Find the 5 smallest eigenvalues:

## Scope(12)

### 1D(7)

Specify a Laplacian operator:

Specify homogeneous Dirichlet boundary conditions:

Find the 4 smallest eigenvalues:

Specify a Laplacian operator:

Specify homogeneous Neumann boundary conditions:

Find the four smallest eigenvalues:

This is equivalent:

Specify a transient equation with homogeneous Dirichlet boundary conditions:

Find the 4 smallest eigenvalues:

Specify a wave equation with homogeneous Dirichlet boundary conditions:

Find the 4 smallest eigenvalues:

Compute the eigenvalues of a generalized wave equation :

Compare to the exact solution of an equivalent first-order system of ordinary differential equations:

Specify a Liouville operator:

Compute the 4 smallest eigenvalues:

Compare the eigenvalues with the analytical eigenvalues:

Write a function to compute parametric, complex-valued periodic eigenvalues of the Laplace operator:

Find the eigenvalues:

Visualize the eigenvalues over the range from 0 to 4:

### 2D(5)

Specify a Laplacian operator:

Find the 4 smallest eigenvalues:

Specify a Laplacian operator:

Find the 4 smallest eigenvalues of the operator in a unit disk:

Specify a Laplacian operator with homogeneous Dirichlet boundary conditions:

Find the 9 smallest eigenvalues in a rectangle:

Specify a wave equation with homogeneous Dirichlet boundary conditions:

Find the 4 smallest eigenvalues in a disk:

Solve a partially constrained eigenvalue problem:

## Options(6)

### Method(6)

#### "Eigensystem"(4)

Specify a method to use for finding the eigenvalues:

In this case, the default method is faster:

Arnoldi is used as the default method:

Specify a maximum number of iterations for the Arnoldi method:

Find two eigenvalues of a SturmLiouville operator within the band of with the FEAST method for Eigenvalues:

According to the SturmLiouville theory, the eigenvalues must be distinct, but for this example they are close to degenerate:

The interval end points are not included in the interval FEAST finds eigenvalues in; for more information, please refer to the Eigenvalues reference page.

The usage of the "Shift" option is explained in an example below.

#### "PDEDiscretization"(1)

Change the MaxCellMeasure for the underlying computation:

The exact eigenvalues are 0,1,4,9,, so the eigenvalue error is:

A finer mesh results in a decreased discretization error:

#### "VectorNormalization"(1)

Compute without any normalization of the computed eigenvalues:

The normalization does not have an effect on the eigenvalues:

## Applications(4)

### Acoustics(1)

Compute the acoustic eigenvalues and eigenfunctions for an approximation of a cross section through a Mini. Import an image of the cross section:

Use the mask tool to create a boundary graphic:

Discretize the graphic:

Compute 6 eigenvalues of the cross section:

### Structural Mechanics(1)

Specify a plane stress PDE:

Compute constraint eigenvalues:

### Interval of Eigenvalues and Eigenfunctions(1)

Find an eigenvalue in an interval:

### Quantum Mechanics(1)

Specify a Schrödinger operator with parameter and potential :

Find the 10 smallest eigenvalues on a refined mesh:

## Properties & Relations(3)

Specify a transient equation with homogeneous Dirichlet boundary conditions:

Find the 4 smallest eigenvalues:

This is equivalent:

Compare an analytical solution to a higher-order time-dependent PDE.

Find the six smallest eigenvalues of a wave equation for between 0 and :

Compare the eigenvalues with the exact solution of transformed into a system of two first-order equations:

Show the relation between higher-order time-dependent PDEs and systems of first-order PDEs.

Find the six smallest eigenvalues of a wave equation within 0 and :

Find the six smallest eigenvalues of a wave equation given as a system of first-order PDEs :

The eigenvalues for the second-order system and the system of first-order equations are the same:

## Possible Issues(10)

The computed eigenvalues depend on the granularity of the discretization:

The exact eigenvalues are 0,1,4,9,, so the eigenvalue error is:

A finer mesh results in a decreased discretization error:

The eigenvalues of the wave equation will be the square root of the angular frequencies:

Compare to the exact solution of an equivalent first-order system of ordinary differential equations:

Eigenvalues with inhomogeneous Dirichlet conditions cannot be solved for:

Eigenvalues with homogeneous Dirichlet conditions can be solved for:

Eigenvalues with inhomogeneous Neumann values cannot be solved for:

Eigenvalues with homogeneous Neumann values can be solved for:

The same result:

Eigenvalues with inhomogeneous generalized Neumann values cannot be solved for:

The operator and possible boundary conditions need to be stationary and linear:

Initial conditions will be set to zero and ignored:

The same result:

NDEigenvalue converts PDEs to time-dependent PDEs. This transformation is not unique and may lead to what seem to be unexpected results for coupled PDEs:

Internally, the given equations are rewritten as a system of time-dependent PDEs. In the previous case from the given dependent variables {v[x],u[x]}, the following temporal system is generated: {D[v[t, x], t] == - u[t, x] - Laplacian[u[t, x], {x}],D[u[t, x], t] == -v[t, x] - Laplacian[v[t, x], {x}]}

To uniquely specify the system of equations, it is best to use the temporal description:

More information on this topic can be found in Finite Element Method Usage Tips.

In some cases, NDEigenvalues may return what seem to be unexpected results for coupled PDEs:

One way to avoid this issue is to specify an ordering of the dependent variables via the "InterpolationOrder" option:

Alternatively, the "Direct" method can be used:

More information on this topic can be found in Finite Element Method Usage Tips.

NDEigenvalues finds the smallest magnitude eigenvalues for a given linear differential operator. Particularly in cases where one is interested in finding the most negative eigenvalues, e.g. many quantum mechanical problems, the most negative eigenvalues might not correspond with the eigenvalues NDEigenvalues returns by default. To see this, consider the following example.

Take, for instance, the dimensionless radial Schrödinger equation for the hydrogen atom, where the energy units are Rydbergs and length is measured in Bohr radii.

Solve the eigenvalue problem for . A refined mesh is used for a good approximation quality:

Look at the eigenvalues obtained in electronvolts:

These correspond to the eigenvalues closest to . But they are not in the desired order. For instance, take a look at the analytical eigenvalues for this problem.

The analytical energies for this equation follow the following relation:

If you know in advance a lower bound for the eigenvalues, say , you can redefine the eigenvalue problem as . In other words, a new eigenvalue problem: , where and . Given that is a negative lower bound for , the shift ensures that will only assume positive values. Therefore, the smallest magnitude values of will correspond to the most negative values of . That way, one can calculate for and then get . The easiest way to do this is to use the "Shift" option.

Set a lower bound:

Define a shift and solve the eigenvalue problem:

Look at the eigenvalues obtained in electronvolts:

These correspond to the most negative eigenvalues, but in reverse order, and then it is necessary to sort the eigenstates.

Sort the eigenstates with Sort:

Take a look at the difference between the analytical eigenvalues and the obtained results:

Wolfram Research (2015), NDEigenvalues, Wolfram Language function, https://reference.wolfram.com/language/ref/NDEigenvalues.html.

#### Text

Wolfram Research (2015), NDEigenvalues, Wolfram Language function, https://reference.wolfram.com/language/ref/NDEigenvalues.html.

#### CMS

Wolfram Language. 2015. "NDEigenvalues." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/NDEigenvalues.html.

#### APA

Wolfram Language. (2015). NDEigenvalues. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NDEigenvalues.html

#### BibTeX

@misc{reference.wolfram_2024_ndeigenvalues, author="Wolfram Research", title="{NDEigenvalues}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/NDEigenvalues.html}", note=[Accessed: 14-September-2024 ]}

#### BibLaTeX

@online{reference.wolfram_2024_ndeigenvalues, organization={Wolfram Research}, title={NDEigenvalues}, year={2015}, url={https://reference.wolfram.com/language/ref/NDEigenvalues.html}, note=[Accessed: 14-September-2024 ]}