Язык Wolfram Language

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

Решение задачи Дирихле для уравнения Лапласа

Задать уравнение Лапласа в двухмерной среде.

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

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

In[2]:=
Click for copyable input
\[CapitalOmega] = Rectangle[{0, 0}, {1, 2}];
In[3]:=
Click for copyable input
dcond = DirichletCondition[ u[x, y] == Piecewise[{{UnitTriangle[2 x - 1], y == 0 || y == 2}}, 0], True];

Решить задачу Дирихле.

In[4]:=
Click for copyable input
sol = DSolveValue[{leqn, dcond}, u[x, y], {x, y} \[Element] \[CapitalOmega]] // FullSimplify
Out[4]=

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

In[5]:=
Click for copyable input
asol = sol /. {\[Infinity] -> 300} // Activate;

Визуализировать решение в прямоугольнике.

In[6]:=
Click for copyable input
Plot3D[asol // Evaluate, {x, y} \[Element] \[CapitalOmega], PlotRange -> All, PlotTheme -> "Business"]
Out[6]=

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

de en es fr ja ko pt-br zh