在圆形薄膜中产生振荡
用二维波动方程对半径为 1 的圆形薄膜的振荡建模.
In[1]:=

eqn = r D[u[r, t], {t, 2}] == D[r D[u[r, t], r], r];
假定薄膜的边界是固定的.
In[2]:=

bc = u[1, t] == 0;
问题的初始条件.
In[3]:=

ic = {u[r, 0] == 0, Derivative[0, 1][u][r, 0] == 1};
使用 DSolve 获取一个以贝塞尔函数(Bessel function)表示的解.
In[4]:=

(dsol = DSolve[{eqn, bc, ic}, u[r, t], {r, t}]) // TraditionalForm
Out[4]//TraditionalForm=

从 Inactive 总和中提取有限数量的一些项.
In[5]:=

h[r_, t_] =
u[r, t] /. dsol[[1]] /. {\[Infinity] -> 3} // Activate // N;
最低模态的周期大约为 2.612.
In[6]:=

N[(2 \[Pi])/BesselJZero[0, 1]]
Out[6]=

在四个周期的范围内可视化薄膜的振荡.
In[7]:=

ListAnimate[
Table[Plot3D[
Evaluate[h[r, t] /. {r -> Sqrt[x^2 + y^2]}], {x, y} \[Element]
Disk[], PlotRange -> {-1, 1}, Ticks -> None, Mesh -> True,
MeshStyle -> {Red, Blue}, PlotStyle -> Yellow, Boxed -> False,
Axes -> False, ImageSize -> Medium, AspectRatio -> 1,
Background -> Lighter[Orange, 0.85]], {t, 0, 10.45, 0.05}]]
