Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

## Eigenvalues and Eigenmodes of L-Shaped Membrane

This example shows how to calculate eigenvalues and eigenvectors using the programmatic workflow. For the PDE Modeler app solution, see Eigenvalues and Eigenmodes of L-Shaped Membrane: PDE Modeler App.

The eigenvalue problem is $-\Delta u=\lambda u$. This example computes all eigenmodes with eigenvalues smaller than 100.

Create a model and include this geometry. The geometry of the L-shaped membrane is described in the file `lshapeg`.

```model = createpde(); geometryFromEdges(model,@lshapeg);```

Set zero Dirichlet boundary conditions on all edges.

`applyBoundaryCondition(model,'dirichlet','Edge',1:model.Geometry.NumEdges,'u',0);`

Specify the coefficients for the problem: `d` = 1 and `c` = 1. All other coefficients are equal to zero.

`specifyCoefficients(model,'m',0,'d',1,'c',1,'a',0,'f',0);`

Set the interval `[0 100]` as the region for the eigenvalues in the solution.

`r = [0 100];`

Create a mesh and solve the problem.

```generateMesh(model,'Hmax',0.05); results = solvepdeeig(model,r);```
``` Basis= 10, Time= 0.11, New conv eig= 0 Basis= 11, Time= 0.12, New conv eig= 0 Basis= 12, Time= 0.13, New conv eig= 0 Basis= 13, Time= 0.13, New conv eig= 0 Basis= 14, Time= 0.13, New conv eig= 0 Basis= 15, Time= 0.14, New conv eig= 0 Basis= 16, Time= 0.15, New conv eig= 0 Basis= 17, Time= 0.15, New conv eig= 0 Basis= 18, Time= 0.16, New conv eig= 1 Basis= 19, Time= 0.17, New conv eig= 1 Basis= 20, Time= 0.18, New conv eig= 1 Basis= 21, Time= 0.18, New conv eig= 1 Basis= 22, Time= 0.19, New conv eig= 3 Basis= 23, Time= 0.19, New conv eig= 3 Basis= 24, Time= 0.21, New conv eig= 4 Basis= 25, Time= 0.21, New conv eig= 5 Basis= 26, Time= 0.21, New conv eig= 6 Basis= 27, Time= 0.22, New conv eig= 6 Basis= 28, Time= 0.23, New conv eig= 6 Basis= 29, Time= 0.24, New conv eig= 7 Basis= 30, Time= 0.24, New conv eig= 7 Basis= 31, Time= 0.25, New conv eig= 10 Basis= 32, Time= 0.25, New conv eig= 10 Basis= 33, Time= 0.26, New conv eig= 11 Basis= 34, Time= 0.26, New conv eig= 11 Basis= 35, Time= 0.26, New conv eig= 14 Basis= 36, Time= 0.27, New conv eig= 14 Basis= 37, Time= 0.28, New conv eig= 14 Basis= 38, Time= 0.28, New conv eig= 14 Basis= 39, Time= 0.29, New conv eig= 14 Basis= 40, Time= 0.30, New conv eig= 14 Basis= 41, Time= 0.33, New conv eig= 15 Basis= 42, Time= 0.34, New conv eig= 15 Basis= 43, Time= 0.35, New conv eig= 15 Basis= 44, Time= 0.36, New conv eig= 16 Basis= 45, Time= 0.37, New conv eig= 16 Basis= 46, Time= 0.42, New conv eig= 16 Basis= 47, Time= 0.43, New conv eig= 16 Basis= 48, Time= 0.44, New conv eig= 17 Basis= 49, Time= 0.47, New conv eig= 18 Basis= 50, Time= 0.49, New conv eig= 18 Basis= 51, Time= 0.50, New conv eig= 18 Basis= 52, Time= 0.52, New conv eig= 18 Basis= 53, Time= 0.54, New conv eig= 18 Basis= 54, Time= 0.55, New conv eig= 21 End of sweep: Basis= 54, Time= 0.55, New conv eig= 21 Basis= 31, Time= 0.61, New conv eig= 0 Basis= 32, Time= 0.61, New conv eig= 0 Basis= 33, Time= 0.61, New conv eig= 0 End of sweep: Basis= 33, Time= 0.62, New conv eig= 0 ```

There are 19 eigenvalues smaller than 100.

`length(results.Eigenvalues)`
```ans = 19 ```

Plot the first eigenmode and compare it to the MATLAB's `membrane` function. Multiply the PDE solution by -1, so that the plots look similar instead of being inverted.

```u = results.Eigenvectors; pdeplot(model,'XYData',-u(:,1),'ZData',-u(:,1));```

```figure membrane(1,20,9,9)```

Eigenvectors can be multiplied by any scalar and remain eigenvectors. This explains the difference in scale that you see.

`membrane` can produce the first 12 eigenfunctions for the L-shaped membrane. Compare the 12th eigenmodes.

```figure pdeplot(model,'XYData',u(:,12),'ZData',u(:,12));```

```figure membrane(12,20,9,9)```

평가판 신청