浅水方程

[来自 知乎@alpha 君]

刻画浅水的水深与运动之间的关系. 关键的假设是水的深度远小于其它维度, 如湖泊、海洋等. 此时忽略水的竖直方向运动, 只考虑水平方向的运动.

一维浅水方程 假设重力加速度为 `g`, 水的密度等于 `1`, 深度为 `h(x, t)`, 速度为 `v(x, t)` (向右为正方向). 这里 `x` 是一维变量. 则浅水方程为 `{ del/(del t) h + del/(del x) (h v) = 0; del/(del t) (h v) + del/(del x) (h v^2 + g h^2//2) = 0; :}`

  1. 考虑任意区间 `x in [a, b]` 上质量随时间的变化率 `del/(del t) int_a^b h dx`. 由质量守恒, 这个量等于单位时间内从左端点流入的质量, 减去从右端点流出的质量: `-[h v]_(x=a)^b`. 于是 `del/(del t) int_a^b h dx + [h v]_(x=a)^b = 0`, `int_a^b (del/(del t) h + del/(del x)(h v) ) dx = 0`. 由区间的任意性, 就得到第一条方程.
  2. 类似地, 考虑区间 `x in [a, b]` 上动量随时间的变化率 `del/(del t) int_a^b h v dx`. 由动量守恒, (回忆动量定理 `Delta(m v) = int F dt`), 这个量等于该时刻左右端点的压力之差, 加上流入流出的水自身带来的动量变化率. 压力可以用压强 `rho g y = g y` 的积分来计算; 水带来的动量变化率是第一条方程中的 `h v` 再乘以 `v` 即 `h v^2`: `del/(del t) int_a^b h v dx` `= -[F + del/(del t)(m v)]_(x=a)^b` `= -[int_0^h rho g y dy + h v^2]_(x=a)^b` `= -[g h^2//2 + h v^2]_(x=a)^b`. 同样由区间的任意性, 两边对 `x` 微分可得第二条方程.