Context
Mathematica 10.3 now has the very nice DEigensystem
function.
{vals, funs} =
DEigensystem[{-Laplacian[u[x, y], {x, y}],
DirichletCondition[u[x, y] == 0, True]},
u[x, y], {x, y} ∈ Disk[], 6];
so that
vals // N
return
(* {5.78319,14.682,14.682,26.3746,26.3746,30.4713} *)
and
Table[Plot3D[funs[[i]] // N // Evaluate, {x, y} ∈ Disk[],
PlotRange -> All, PlotLabel -> vals[[i]],
PlotTheme -> "Minimal"], {i, Length[vals]}]
Question
It seems it does not take into account properly e.g. an elliptic boundary condition.
{vals, funs} =
DEigensystem[{-Laplacian[u[x, y], {x, y}],
DirichletCondition[u[x, y] == 0, True]},
u[x, y], {x, y} ∈ Disk[{0, 0}, {1, 2}], 6];
vals//N
returns the same eigenvalues as for the round disc
(* {5.78319,14.682,14.682,26.3746,26.3746,30.4713} *)
whereas the result from the numerical function NDEigensystem
does not
{vals, funs} =
NDEigensystem[{-Laplacian[u[x, y], {x, y}],
DirichletCondition[u[x, y] == 0, True]},
u[x, y], {x, y} ∈ Disk[{0, 0}, {1, 2}], 6];
vals//N
(* {3.56676,6.27564,10.0292,11.7382,14.88,15.9277} *)
Indeed the eigenfunctions have an elliptic support:
Table[Plot3D[funs[[i]], {x, y} ∈ Disk[{0, 0}, {1, 2}],
PlotRange -> All, PlotLabel -> vals[[i]], PlotTheme -> "Minimal",
BoxRatios -> Automatic], {i, Length[vals]}]
It seems to me to be a bug in
DEigensystem
?
Advertising
Note that the NEigensystem
function is pretty cool: it can deal with
implicit boundaries:
ω = ImplicitRegion[x^6 + y^4 <= 1, {x, y}];
{vals, funs} =
NDEigensystem[{-Laplacian[u[x, y], {x, y}],
DirichletCondition[u[x, y] == 0, True]},
u[x, y], {x, y} ∈ ω, 6];
Table[Plot3D[funs[[i]], {x, y} ∈ ω, PlotRange -> All,
PlotLabel -> vals[[i]], PlotTheme -> "Minimal",
BoxRatios -> Automatic], {i, Length[vals]}]