DEigensystem[ℒ[u[x,y,…]],u,{x,y,…}∈Ω,n]
線形微分演算子 ℒ について,領域 Ω 上で,最も小さい n 個の固有値と固有関数を与える.
DEigensystem[eqns,u,t,{x,y,…}∈Ω,n]
時間依存微分方程式 eqns の解 u について,固有値と固有関数を与える.
DEigensystem
DEigensystem[ℒ[u[x,y,…]],u,{x,y,…}∈Ω,n]
線形微分演算子 ℒ について,領域 Ω 上で,最も小さい n 個の固有値と固有関数を与える.
DEigensystem[eqns,u,t,{x,y,…}∈Ω,n]
時間依存微分方程式 eqns の解 u について,固有値と固有関数を与える.
詳細とオプション
- DEigensystemは,指定された境界条件を持つ常微分演算子および偏微分演算子について,固有値と固有関数を計算することができる.
- DEigensystemは,固有値 λiと固有関数 uiのリスト{{λ1,…,λn},{u1,…,un}}を与える.
- 微分演算子 ℒ についての固有値と固有関数のペア{λi,ui}は,ℒ[ui[x,y,…]]==λi ui[x,y,…]を満足する.
- 同次DirichletCondition境界条件あるいは同次NeumannValue境界条件が含まれることがある.非同次境界条件は対応する同次境界条件で置換される
- 境界 ∂Ωについて境界条件が指定されていない場合は,ノイマン(Neumann)0条件を指定することに等しい.
- 方程式 eqns はDSolveにおけるように指定される.
- N[DEigensystem[…]]は,記号的に計算できない固有系についてはNDEigensystemを呼び出す.
- 使用可能なオプション
-
Assumptions $Assumptions パラメータについての仮定 Method Automatic 使用するメソッド - 固有関数は自動的には正規化されない.Method->"Normalize"の設定を使って正規化された固有関数を使うことができる.
例題
すべて開く すべて閉じる例 (2)
[0,π]上で,ラプラス(Laplace)演算子の最も小さい4つの固有値と固有関数を求める:
DEigensystem[{-Laplacian[u[x], {x}], DirichletCondition[u[x] == 0, True]}, u[x], {x, 0, π}, 4]Plot[Evaluate[%[[2]]], {x, 0, π}]辺を固定した円筒膜について,最初の6つの固有関数を計算する:
{vals, funs} = DEigensystem[{-Laplacian[u[x, y], {x, y}], DirichletCondition[u[x, y] == 0, True]}, u[x, y], {x, y}∈Disk[], 6];vals//NTable[Plot3D[funs[[i]]//N//Evaluate, {x, y}∈Disk[], PlotRange -> All, PlotLabel -> vals[[i]], PlotTheme -> "Minimal"], {i, Length[vals]}]スコープ (20)
1D (9)
ℒ = -Laplacian[u[x], {x}];ℬ = DirichletCondition[u[x] == 0, True];{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x], {x, 0, π}, 5];valsPlot[Evaluate[funs], {x, 0, π}]ℒ = -Laplacian[u[x], {x}];ℬ = NeumannValue[0, True];{vals, funs} = DEigensystem[ℒ + ℬ, u[x], {x, 0, π}, 5];vals{vals, funs} = DEigensystem[ℒ, u[x], {x, 0, π}, 5];valsℒ = -Laplacian[u[x], {x}];ℬ1 = DirichletCondition[u[x] == 0, x == 0];ℬ2 = NeumannValue[0, x == π];{vals, funs} = DEigensystem[{ℒ + ℬ2, ℬ1}, u[x], {x, 0, π}, 5];valsPlot[Evaluate[funs], {x, 0, π}]ℒ = -Laplacian[u[x], {x}];ℬ1 = DirichletCondition[u[x] == 0, x == π];ℬ2 = NeumannValue[-u[x] / 3, x == 0];{vals, funs} = DEigensystem[{ℒ + ℬ2, ℬ1}, u[x], {x, 0, π}, 5];vals[[1]]//TraditionalFormPlot[Evaluate[funs], {x, 0, π}]ℒ = -Laplacian[u[x], {x}] + x u[x];ℬ = DirichletCondition[u[x] == 0, True];{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x], {x, 0, 1}, 5];vals[[1]]//TraditionalFormPlot[Evaluate[funs], {x, 0, 1}]ℒ = -Laplacian[u[x], {x}] + x u[x];ℬ = NeumannValue[0, True];{vals, funs} = DEigensystem[{ℒ + ℬ}, u[x], {x, 0, 1}, 5];vals[[1]]//TraditionalFormPlot[Evaluate[funs], {x, 0, 1}]{vals, funs} = DEigensystem[{-Laplacian[u[x], {x}], DirichletCondition[u[x] == 0, True]}, u[x], {x, a, b}, 3];valsfunsqho = -(ℏ^2/2m)Laplacian[u[x], {x}] + (m ω^2/2)x ^ 2 u[x];DEigensystem[qho, u[x], {x, -∞, ∞}, 4, Assumptions -> ℏ > 0 && m > 0 && ω > 0]{ℒ, ℬ} = {D[u[t, x], t] == Laplacian[u[t, x], {x}], DirichletCondition[u[t, x] == 0, True]};{vals, funs} = DEigensystem[{ℒ, ℬ}, u[t, x], t, {x, 0, π}, 4]Table[Plot3D[funs[[i]]//Evaluate, {x, -3, 3}, {t, 0, 1 / 3}, PlotRange -> All, Ticks -> False, Mesh -> False], {i, 4}]2D (6)
{ℒ, ℬ} = {-Laplacian[u[x, y], {x, y}], DirichletCondition[u[x, y] == 0, True]};{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x, y], {x, 0, π}, {y, 0, π}, 9];valsPlot3D[#, {x, 0, π}, {y, 0, π}]& /@ funsℒ = -Laplacian[u[x, y], {x, y}] + NeumannValue[0, True];{vals, funs} = DEigensystem[ℒ, u[x, y], {x, 0, π}, {y, 0, π}, 4];valsfunsContourPlot[#, {x, 0, π}, {y, 0, π}]& /@ funsℒ = -Laplacian[u[x, y], {x, y}];ℬ = DirichletCondition[u[x, y] == 0, True];演算子の最も小さい4つの固有値と固有関数を単位円板上で求める:
{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x, y], {x, y}∈Disk[], 4];vals//TraditionalFormContourPlot[#, {x, y}∈Disk[], Contours -> 10]& /@ N[funs]ℒ = -Laplacian[u[x, y], {x, y}] + (x ^ 2 + y ^ 2)u[x, y];ℬ = DirichletCondition[u[x, y] == 0, True];{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x, y], {x, y}∈FullRegion[2], 6];valsTable[ContourPlot[funs[[i]], {x, y}∈Rectangle[{-3, -3}, {3, 3}]], {i, 6}]ℒ = -Laplacian[u[x, y], {x, y}];ℬ = DirichletCondition[u[x, y] == 0, True];演算子の最も小さい6つの演算子の固有値と固有関数を三角形内で求める:
{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x, y], {x, y}∈Triangle[], 6];valsTable[Plot3D[funs[[i]], {x, y}∈Triangle[], Boxed -> False, Axes -> False], {i, 6}]ℒ = -Laplacian[u[x, y], {x, y}];ℬ = DirichletCondition[u[x, y] == 0, True];演算子の最も小さい4つの固有値と固有関数を円板のセクター上で求める:
{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x, y], {x, y}∈Disk[{0, 0}, 1, {0, Pi / 5}], 4];vals//TraditionalFormContourPlot[#, {x, y}∈Disk[{0, 0}, 1, {0, Pi / 5}]]& /@ N[funs]//Quiet3D (5)
ℒ = -Laplacian[u[x, y, z], {x, y, z}];ℬ = DirichletCondition[u[x, y, z] == 0, True];{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x, y, z], {x, y, z}∈Cuboid[{2, 1, 1}, {4, 2, 3}], 7];valsContourPlot3D[Evaluate[funs[[7]]], {x, 2, 4}, {y, 1, 2}, {z, 1, 3}, Boxed -> False, Axes -> False]ℒ = -Laplacian[u[x, y, z], {x, y, z}];ℬ = DirichletCondition[u[x, y, z] == 0, True];{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x, y, z], {x, y, z}∈Cylinder[{{0, 0, 0}, {0, 0, 5}}, 2], 7];vals[[1 ;; 5]]//TraditionalFormDensityPlot3D[funs[[7]]//N//Evaluate, {x, y, z}∈Cylinder[{{0, 0, 0}, {0, 0, 5}}, 2], Boxed -> False, Axes -> False]ℒ = -Laplacian[u[x, y, z], {x, y, z}];ℬ = DirichletCondition[u[x, y, z] == 0, True];{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x, y, z], {x, y, z}∈Ball[{0, 0, 0}, 2], 7];DensityPlot3D[funs[[7]]//N//Evaluate, {x, y, z}∈Ball[{0, 0, 0}, 2], Boxed -> False, Axes -> False, ColorFunction -> Hue]ℒ = -Laplacian[u[x, y, z], {x, y, z}];ℬ = DirichletCondition[u[x, y, z] == 0, True];{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x, y, z], {x, y, z}∈Prism[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 2}, {1, 0, 2}, {0, 1, 2}}], 7];valsDensityPlot3D[funs[[7]]//N//Evaluate, {x, y, z}∈Prism[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 2}, {1, 0, 2}, {0, 1, 2}}], Boxed -> False, ColorFunction -> Hue, PlotPoints -> 50, Axes -> False]ℒ = -Laplacian[u[x, y, z], {x, y, z}] + 2(x^2 + y^2 + z^2)u[x, y, z];ℬ = DirichletCondition[u[x, y, z] == 0, True];{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x, y, z], {x, y, z}∈FullRegion[3], 8];valsTable[DensityPlot3D[funs[[i]]//N//Evaluate, {x, y, z}∈Ball[{0, 0, 0}, 3], Boxed -> False, ColorFunction -> Hue, PlotPoints -> 50, Axes -> False], {i, 8}]オプション (2)
Assumptions (1)
Assumptionsを使って結果を簡約する:
DEigensystem[-Laplacian[u[x, y, z], {x, y, z}] + 2ω^2(x^2 + y^2 + z^2)u[x, y, z], u[x, y, z], {x, y, z}∈FullRegion[3], 4, Assumptions -> ω > 0]オプションがないと,等しくはあるがより複雑な答が返されるだろう:
DEigensystem[-Laplacian[u[x, y, z], {x, y, z}] + 2ω^2(x^2 + y^2 + z^2)u[x, y, z], u[x, y, z], {x, y, z}∈FullRegion[3], 4]アプリケーション (3)
関数
の固有関数展開中の最初の3項を,区間
上のディリクレ条件で,1Dラプラス演算子によって与えられた底について計算する:
basis = DEigensystem[{-Laplacian[u[x], {x}] + u[x], DirichletCondition[u[x] == 0, True]}, u[x], {x, 0, π}, 3, Method -> "Normalize"][[2]]f[x_] := x ^ 2(π - x) ^ 3coeffs = Table[Integrate[f[x] basis[[i]], {x, 0, Pi}], {i, 3}]eigexp[x_] = Sum[coeffs[[i]]basis[[i]], {i, 3}]Plot[{f[x], eigexp[x]}//Evaluate, {x, 0, Pi}]ディリクレ条件を持つ熱伝導方程式について,固有関数の線形結合を用いて解を構築する:
eqns = {D[u[t, x], t] == Laplacian[u[t, x], {x}], DirichletCondition[u[t, x] == 0, True]};eigfuns = DEigensystem[eqns, u[t, x], t, {x, 0, Pi}, 5][[2]]sol[t_, x_] = Sum[RandomInteger[{1, 10}] eigfuns[[i]], {i, 5}]eqns[[1]] /. {u -> sol}{sol[t, 0], sol[t, π]}Plot3D[sol[t, x], {x, 0, Pi}, {t, 0, 0.7}, PlotRange -> All]CO分子を実質的なバネ定数が
の平衡長の周囲で実験的に振動させる.振動は量子調和振動子方程式によって支配されている.以下では,
は分子の換算質量,
は固有振動数,
は平衡位置からの移動,
は換算プランク(Planck)定数である:
qho = -(ℏ^2/2m)Laplacian[u[x], {x}] + (m ω^2/2)x ^ 2 u[x];固有値(それぞれの状態のエネルギー)と正規化された固有関数を計算する:
{ℰs, efuns} = DEigensystem[qho, u[x], {x, -∞, ∞}, 4, Assumptions -> ℏ > 0 && m > 0 && ω > 0, Method -> "Normalize"]粒子が4状態を等しく重ね合せたものであるなら,波動関数は次の形になる:
ψ[x_, t_] = Total[MapThread[(1/2)Exp[I t #1 / ℏ]#2&, {ℰs, efuns}]]1のオーダーに近い値を与える原子質量単位の基本単位,フェムト秒,ピコメートルを使って
,
,
を計算する:
m = QuantityMagnitude[(Entity["Element", "Carbon"][EntityProperty["Element", "AtomicMass"]]Entity["Element", "Oxygen"][EntityProperty["Element", "AtomicMass"]]/Entity["Element", "Carbon"][EntityProperty["Element", "AtomicMass"]] + Entity["Element", "Oxygen"][EntityProperty["Element", "AtomicMass"]]), "AtomicMassUnits"]ω = Sqrt[QuantityMagnitude[Quantity[1.86, "Kilonewtons" / "Meters"], "AtomicMassUnit" / "Femtoseconds" ^ 2] / m]ℏ = QuantityMagnitude[Quantity[1., "ReducedPlanckConstant"], "AtomicMassUnit" * "Picometers" ^ 2 / "Femtoseconds"]固有関数の位置エネルギー
に対する応答は,
の幅に入るように再スケールすることで可視化できる:
Show[Plot[Evaluate[ℏ ω efuns + ℰs], {x, -18, 18}], Plot[Evaluate[Append[ℰs, (1/2)m ω^2x^2]], {x, -18, 18}, PlotStyle -> Dashed]]ρ[x_, t_] = FullSimplify[ComplexExpand[Conjugate[ψ[x, t]] ψ[x, t]]]確率分布として,実数上での
の積分はすべての
に対して1である:
Chop[Integrate[ρ[x, t], {x, -∞, ∞}]]Animate[Plot[ρ[x, t], {x, -25, 25}, PlotRange -> {0, .16}, PlotTheme -> "Detailed", FrameLabel -> Style[x, FontSize -> Larger], PlotLegends -> Placed[{HoldForm[ρ][x, NumberForm[t, {3, 2}]]}, Above]], {t, 0., 5.7}, AnimationRate -> 1, SaveDefinitions -> True, Alignment -> Center]特性と関係 (6)
NDEigensystemを使って数値による固有値と固有ベクトルを求める:
{ℒ, ℬ} = {-Laplacian[u[x], {x}], DirichletCondition[u[x] == 0, True]};exacteigsys = DEigensystem[{ℒ, ℬ}, u[x], {x, 0, Pi}, 3, Method -> "Normalize"]exacteigsys /. {x -> 0.3}neigsys = NDEigensystem[{ℒ, ℬ}, u[x], {x, 0, Pi}, 3] /. {x -> 0.3}DEigenvaluesを使って微分演算子についての固有値を求める:
{ℒ, ℬ} = {-Laplacian[u[x], {x}], DirichletCondition[u[x] == 0, True]};{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x], {x, 0, Pi}, 3]valsDEigenvalues[{ℒ, ℬ}, u[x], {x, 0, Pi}, 3]DSolveを使って固有値問題を解く:
{ℒ, ℬ} = {-Laplacian[u[x], {x}], DirichletCondition[u[x] == 0, True]};{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x], {x, 0, Pi}, 3]DSolve[{u''[x] + λ u[x] == 0, u[0] == 0, u[π] == 0}, u[x], x]DEigensystemによって与えられる固有関数は直交関数である:
{ℒ, ℬ} = {-Laplacian[u[x], {x}], DirichletCondition[u[x] == 0, True]};{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x], {x, 0, Pi}, 4]Table[Integrate[funs[[i]] * funs[[j]], {x, 0, Pi}], {i, 1, 4}, {j, 1, i - 1}]//FlattenDEigensystemによって与えられる固有関数の系は,デフォルトで,直交系ではない:
{ℒ, ℬ} = {-Laplacian[u[x], {x}], DirichletCondition[u[x] == 0, True]};{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x], {x, 0, Pi}, 3]Table[Integrate[funs[[i]] funs[[j]], {x, 0, Pi}], {i, 1, 3}, {j, 1, 3}]//MatrixFormMethod->"Normalize"を使って正規直交系を得る:
{vals, funs} = DEigensystem[{ℒ, ℬ}, u[x], {x, 0, Pi}, 3, Method -> "Normalize"]Table[Integrate[funs[[i]] * funs[[j]], {x, 0, Pi}], {i, 1, 3}, {j, 1, 3}]//MatrixForm記号評価が失敗した場合は,N[DEigensystem[...]]を適用してNDEigensystemを呼び出す:
DEigensystem[{-Laplacian[u[x, y], {x, y}] + E ^ (-x ^ 3 + x) u[x, y], DirichletCondition[u[x, y] == 0, True]}, u[x, y], {x, y}∈Rectangle[], 2]N[%]考えられる問題 (2)
First[DEigensystem[{-Laplacian[u[x], {x}], DirichletCondition[u[x] == 1, True]}, u[x], {x, 0, 1}, 2]]First[DEigensystem[{-Laplacian[u[x], {x}], DirichletCondition[u[x] == 0, True]}, u[x], {x, 0, 1}, 2]]First[DEigensystem[{-Laplacian[u[x], {x}] + NeumannValue[1, True]}, u[x], {x, 0, 1}, 2]]First[DEigensystem[-Laplacian[u[x], {x}], u[x], {x, 0, 1}, 2]]テクニカルノート
テキスト
Wolfram Research (2015), DEigensystem, Wolfram言語関数, https://reference.wolfram.com/language/ref/DEigensystem.html.
CMS
Wolfram Language. 2015. "DEigensystem." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/DEigensystem.html.
APA
Wolfram Language. (2015). DEigensystem. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DEigensystem.html
BibTeX
@misc{reference.wolfram_2026_deigensystem, author="Wolfram Research", title="{DEigensystem}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/DEigensystem.html}", note=[Accessed: 08-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_deigensystem, organization={Wolfram Research}, title={DEigensystem}, year={2015}, url={https://reference.wolfram.com/language/ref/DEigensystem.html}, note=[Accessed: 08-September-2026]}