Язык Wolfram Language

Дифференциальные уравнения в частных производных

Решение задачи Дирихле для уравнения Гельмгольца

Задать уравнение Гельмгольца в двухмерной среде.

In[1]:=
Click for copyable input
heqn = {Laplacian[u[x, y], {x, y}] + 5 u[x, y] == 0};

Задать условия Дирихле для уравнения в прямоугольнике.

In[2]:=
Click for copyable input
bc = {u[x, 0] == UnitTriangle[x - 2]/2, u[x, 2] == 0, u[0, y] == 0, u[4, y] == 0};

Решить задачу Дирихле, используя DSolveValue.

In[3]:=
Click for copyable input
(sol = DSolveValue[{heqn, bc}, u[x, y], {x, y}]) // TraditionalForm
Out[3]//TraditionalForm=

Получить первые 30 свободных элементов из неактивной (Inactive) суммы.

In[4]:=
Click for copyable input
fsol = sol /. \[Infinity] -> 30 // Activate;

Визуализировать приближённое решение.

In[5]:=
Click for copyable input
Plot3D[fsol // Evaluate, {x, 0, 4}, {y, 0, 2}, PlotRange -> All, PlotTheme -> "Scientific"]
Out[5]=

Родственные примеры

de en es fr ja ko pt-br zh