Язык Wolfram Language

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

Изучение вибраций натянутой струны

Изучить вибрации натянутой струны, используя волновое уравнение.

In[1]:=
Click for copyable input
weqn = D[u[x, t], {t, 2}] == D[u[x, t], {x, 2}];

Задать условие, чтобы концы струны оставались зафиксированными во время вибраций.

In[2]:=
Click for copyable input
bc = {u[0, t] == 0, u[\[Pi], t] == 0};

Указать начальные значения в различных точках струны.

In[3]:=
Click for copyable input
ic = {u[x, 0] == x^2 (\[Pi] - x), \!\(\*SuperscriptBox[\(u\), TagBox[ RowBox[{"(", RowBox[{"0", ",", "1"}], ")"}], Derivative], MultilineFunction->None]\)[x, 0] == 0};

Решить начально-краевую задачу.

In[4]:=
Click for copyable input
dsol = DSolve[{weqn, bc, ic}, u, {x, t}] /. {K[1] -> m}
Out[4]=

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

In[5]:=
Click for copyable input
asol[x_, t_] = u[x, t] /. dsol[[1]] /. {\[Infinity] -> 4} // Activate
Out[5]=

Каждый свободный элемент суммы представляет стоячую волну.

In[6]:=
Click for copyable input
Table[Show[ Plot[Table[asol[x, t][[m]], {t, 0, 4}] // Evaluate, {x, 0, Pi}, Ticks -> False], ImageSize -> 150], {m, 4}]
Out[6]=

Визуализировать вибрацию струны.

In[7]:=
Click for copyable input
Animate[Plot[asol[x, t], {x, 0, \[Pi]}, PlotRange -> {-5, 5}, ImageSize -> Medium, PlotStyle -> Red], {t, 0, 2 Pi}, SaveDefinitions -> True]
Запустить анимацию
Остановить анимацию

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

de en es fr ja ko pt-br zh