微分方程 · 热方程

热方程

热方程uₜ = uₓₓ说的是:每一点温度变化的快慢,由那里温度曲线弯曲的程度决定。在一根杆上,它把所有起伏抹平,越细的起伏消失得越早。

热方程与本页画面

上面的主图画一根从0到π\pi的杆上的温度uu:淡色是开始时,黄色是时刻tt。蓝色箭头表示每一点升温或降温有多快。下面一条按温度给杆涂上深浅,最下面一行用对数刻度给出每个正弦模式的大小(两端绝热时是余弦模式)。

随时间变化的快慢,就是沿杆方向的二阶导数
ut=uxxu_t = u_{xx}

为什么弯得越厉害的地方变得越快?取一个小步长hh,uxx(x)≈(u(x−h)+u(x+h)−2u(x))/h2u_{xx}(x) \approx \bigl(u(x-h) + u(x+h) - 2u(x)\bigr)/h^2,也就是两个邻居的平均值比u(x)u(x)高出的部分再乘2/h22/h^2。uxx>0u_{xx} > 0的地方曲线向上弯,这一点比近旁邻居的平均低,它升温;uxx<0u_{xx} < 0的地方则降温。在直的一段上ut=0u_t = 0,不管那里多热。探针可以用两个近旁的邻居和它们的平均示意这一点。跳跃和尖角会立刻被抹平:只要t>0t > 0,温度就是一条光滑曲线。

为什么细的起伏先消失?单个模式(两端恒温0时是sin⁡kx\sin kx,两端绝热时是cos⁡kx\cos kx)满足uxx=−k2uu_{xx} = -k^2 u,所以它形状不变,只是按因子e−k2te^{-k^2 t}整体变小。波纹数变成三倍,同样振幅下uxxu_{xx}变成九倍,衰减也快到九倍。任何初始温度都是这些模式的和,所以最下面一行的柱从右往左依次落下:模式kk过了tk=ln⁡10/k2t_k = \ln 10/k^2就剩不到开始时的10%。在对数时钟下,时间每过十倍,被抹掉的模式就宽约10≈3.2\sqrt{10} \approx 3.2倍。红色的尺子2t2\sqrt t给出这个尺度:单个模式的半波长不超过尺长时,振幅最多剩e−π2/4≈8.48%e^{-\pi^2/4} \approx 8.48\%。

两端起什么作用?两端恒温0时,它们是冰,uu就是相对冰的温度。时间越久,曲线越由初态里现有的最低模式主导。初始温度处处不为负、也不全为0时,热量从两端流走,∫u dx\int u\,dx不断减少,曲线变成一个按e−te^{-t}下沉的正弦拱。两端绝热时热量出不去,∫u dx\int u\,dx保持不变。这时的模式是余弦,k=0k = 0那个模式就是平均温度,它永远不衰减:杆最后处处等于平均温度。两种两端都从t=0t = 0起作用;初始温度在端点和它对不上,比如夹在两块冰之间、全杆一样热的杆,端点处会立刻被拉过去。

值得注意

  • 所有箭头共用一个比例,由此刻变得最快的那一点决定,图例标出参考箭头代表的变化率。箭头长短只能在同一时刻里比,不能跨时刻比。
  • 比冰冷的温度是负数。两端恒温0时,初始温度有正有负,热量读数就给净值∫u dx\int u\,dx,不给比例。

操作

  • 按“扩散”,时间每过十倍就留下一条淡色快照。
  • 点杆,探针就移到那里。
  • 选“手画”,在主图上拖动来画初始温度;一画,tt就回到0。

相关概念