CONCEPT / waves

一维波动方程:从局部振动到波的传播

从受张力弦的局部受力推导一维波动方程,连接初始条件、边界条件、单位、传播速度与稳定数值离散。

尚未开始仅保存在此浏览器
先修partial-derivativesnewton-lawswave-parameters

本页目标

  1. 说明位移、位置、时间和波速的物理单位与量纲。
  2. 从小振幅受张力弦模型推导一维波动方程。
  3. 区分方程、初始条件、边界条件和数值稳定条件。
  4. 验证行波、固定端模态与能量守恒式的适用条件。
本页目录

学习目标与问题边界

一根受张力的细弦被拨动后,局部形变会向远处传播并在边界反射。核心任务是从弦微元的受力推导一维波动方程,说明初始条件和边界条件怎样选择具体运动,再把解析行波、固定端模态与离散时间步区分开。每个量都保留 SI 单位,便于检查推导和实验参数。

讨论对象是均匀、柔软、张力近似恒定的理想弦,横向位移和斜率足够小,阻尼、弯曲刚度与纵向伸缩可以忽略。该模型也可抽象描述某些声学或电磁一维传播,但参数含义和边界条件必须重新建立,不能把弦的张力解释直接复制到所有波动系统。

为什么局部振动会传播

拨动弦的一小段,扰动不会永远停在原处。相邻弦段通过张力相互作用:局部弯曲产生横向合力,使附近弦段开始运动。每一点只直接响应局部曲率,但这种局部耦合随时间把信息传向远处。

“波形向前移动”是宏观观察;波动方程描述的是每个位置的局部加速度如何由附近空间曲率决定。

\frac{\partial^2 u}{\partial t^2}=c^2\frac{\partial^2 u}{\partial x^2}
一维波动方程

变量、单位与模型范围

  • xx:沿弦的平衡位置,单位 m;
  • tt:时间,单位 s;
  • u(x,t)u(x,t):横向位移,单位 m;
  • cc:波速,单位 ms1\mathrm{m\,s^{-1}}

一维波动方程是

2ut2=c22ux2.\frac{\partial^2u}{\partial t^2} =c^2\frac{\partial^2u}{\partial x^2}.

左侧量纲是 ms2\mathrm{m\,s^{-2}}。右侧 uxxu_{xx} 的量纲是 m1\mathrm{m^{-1}},乘以 c2c^2m2s2\mathrm{m^2\,s^{-2}} 后同样得到 ms2\mathrm{m\,s^{-2}}

模型假设弦均匀、张力恒定、横向位移斜率足够小、阻尼可忽略。大振幅、变张力、弯曲刚度或空气阻力会引入额外项,单独调整波速无法涵盖这些机制。

从牛顿第二定律推导

取长度为 Δx\Delta x 的小弦段。设恒定张力为 TT,线密度为 μ\mu,分别具有单位 N 和 kgm1\mathrm{kg\,m^{-1}}。小斜率下,张力的横向分量近似为 TuxT u_x。小段两端横向力之差约为

T[ux(x+Δx,t)ux(x,t)]Tuxx(x,t)Δx.T\left[u_x(x+\Delta x,t)-u_x(x,t)\right] \approx T u_{xx}(x,t)\Delta x.

弦段质量为 μΔx\mu\Delta x,横向加速度为 uttu_{tt}。牛顿第二定律给出

μΔxutt=TuxxΔx.\mu\Delta x\,u_{tt} =T u_{xx}\Delta x.

约去 Δx\Delta x

utt=Tμuxx.u_{tt}=\frac{T}{\mu}u_{xx}.

于是

c=Tμ.c=\sqrt{\frac{T}{\mu}}.

推导的关键边界是小斜率近似。它不是对任意大变形弦的严格方程;若这一假设失效,横向和纵向运动会耦合。

方程还不够:初始与边界条件

二阶时间方程需要两个初始条件:

u(x,0)=f(x),ut(x,0)=g(x).u(x,0)=f(x),\qquad u_t(x,0)=g(x).

ff 给初始形状,gg 给初始速度。只说“初始振幅”通常不足以唯一决定运动。

有限弦还需要边界条件。例如两端固定:

u(0,t)=u(L,t)=0.u(0,t)=u(L,t)=0.

自由端、驱动端和吸收边界会产生不同反射行为。相同波动方程配上不同条件,可以得到完全不同的解。

固定端规定 u=0u=0,入射脉冲反射时位移符号翻转;理想自由端规定 ux=0u_x=0,反射时位移不翻转;周期边界把区间两端连接,适合描述环形介质或计算上的重复单元。所谓“吸收边界”是近似让出射波离开有限计算域,设计不当仍会产生数值反射。边界类型属于模型定义,不能根据动画外观临时切换后仍把结果视为同一问题。

无限弦上的行波与达朗贝尔公式

在整条实线上,设 FFGG 为任意足够光滑的函数,则下式给出一组解:

u(x,t)=F(xct)+G(x+ct).u(x,t)=F(x-ct)+G(x+ct).

第一项以速度 cc 向正 xx 方向平移,第二项以同样速度向负方向平移。对第一项求导,utt=c2F(xct)u_{tt}=c^2F''(x-ct)uxx=F(xct)u_{xx}=F''(x-ct);第二项同样成立,所以二者的线性组合满足方程。这个验证依赖二阶导数存在;对尖角或弱解,需要用更一般的函数空间表述。

若初始位移为 ff、初始速度为 gg,达朗贝尔公式写成

u(x,t)=f(xct)+f(x+ct)2+12cxctx+ctg(s)ds.u(x,t)=\frac{f(x-ct)+f(x+ct)}2 +\frac1{2c}\int_{x-ct}^{x+ct}g(s)\,\mathrm ds.

t=0t=0 可得到 u(x,0)=f(x)u(x,0)=f(x);对时间求导后令 t=0t=0,可得到 ut(x,0)=g(x)u_t(x,0)=g(x)。初始位移分成向左、向右传播的两份,初始速度通过不断扩大的影响区间进入位移。这条公式适用于无边界无限弦;有限弦的反射必须通过边界延拓、模态展开或边值求解处理。

传播的有限速度还体现在依赖区间:点 (x,t)(x,t) 只依赖初始区间 [xct,x+ct][x-ct,x+ct]。区间之外的初始扰动在时间 tt 前无法影响该点。这是双曲型方程的重要性质,与扩散方程的瞬时全域影响形成区别。

交互实验

实验问题是:振幅、频率和波速分别改变波形的哪些量,行波、驻波与局部脉冲的时间演化有何差别?

一维波动方程

正在加载交互实验…

演示在 0010m10\,\mathrm m 的窗口中显示正向行波、驻波或按周期边界平移的高斯脉冲。控件分别改变振幅、频率和波速;播放、暂停、前进、后退与重置控制时间演化,状态摘要给出当前时间、波长、波数、最大位移和色散关系核对。参数或时间步均经过 URL 校验,可用分享链接复现实验状态。

建议按以下顺序操作:

  1. 固定弦长和边界,改变振幅,检查线性模型中传播速度是否改变。
  2. 固定波速,改变初始形状或频率,比较波长和时间演化。
  3. 改变 cc,记录扰动到达某一固定位置的时间。
  4. 暂停并单步前进,区分波峰移动与每个弦元的横向运动。
  5. 重置后分享状态 URL,确认参数、时间和初始条件能够复现。

行波和驻波选项显示满足 ω=ck\omega=ck 的解析波形在离散时间点的采样,高斯选项用于观察周期窗口中的局部脉冲平移。它并非任意初边值问题的有限差分求解器,也没有模拟阻尼、变张力或开放边界。图形可帮助检查相位与参数关系,方程成立仍需代入求导或使用数值收敛分析。文本摘要在画布不可见时仍说明参数、单位和当前状态。

例题一:固定弦的正常模态

例 1:核对边界、方程与频率

两端固定、长度为 LL 的弦有模态解

un(x,t)=Asin(nπxL)cos(nπctL),n=1,2,u_n(x,t) =A\sin\left(\frac{n\pi x}{L}\right) \cos\left(\frac{n\pi c t}{L}\right), \qquad n=1,2,\ldots

代回方程可核对:

utt=(nπcL)2un,c2uxx=(nπcL)2un.u_{tt} =-\left(\frac{n\pi c}{L}\right)^2u_n, \qquad c^2u_{xx} =-\left(\frac{n\pi c}{L}\right)^2u_n.

边界处正弦因子为零,因此固定端条件成立。角频率 ωn=nπc/L\omega_n=n\pi c/L,普通频率为

fn=ωn2π=nc2L.f_n=\frac{\omega_n}{2\pi}=\frac{nc}{2L}.

L=1mL=1\,\mathrm mc=100ms1c=100\,\mathrm{m\,s^{-1}},基频为 50Hz50\,\mathrm{Hz}。振幅取 A=0.01mA=0.01\,\mathrm m 会改变位移大小,但在线性模型中不改变该频率。

例题二:静止三角脉冲怎样分成两列行波

例 2:用达朗贝尔公式读取传播方向

设无限弦初始速度为零,初始位移是以原点为中心、半宽为 aa 的三角脉冲

f(x)={A(1x/a),xa,0,x>a.f(x)= \begin{cases} A(1-|x|/a),& |x|\le a,\\ 0,& |x|>a. \end{cases}

因为 g(x)=0g(x)=0,达朗贝尔公式化为

u(x,t)=12f(xct)+12f(x+ct).u(x,t)=\frac12f(x-ct)+\frac12f(x+ct).

初始脉冲立即分成两个形状相同、振幅为 A/2A/2 的脉冲,分别以速度 cc 向右和向左移动。两脉冲尚未分离时会线性叠加,在 t=0t=0 恰好恢复原振幅 AA。该结论依赖无限弦与零初速度;有限弦到达边界后会反射,有阻尼时振幅还会衰减。

若观察点固定在 x0>0x_0>0,右行脉冲只在 x0cta|x_0-ct|\le a 的时间窗口影响该点。最早到达时间为 (x0a)/c(x_0-a)/c,前提是 x0>ax_0>a。这直接体现有限传播速度,也可作为时间演示中测量到达时刻的解析基准。

数值离散

在均匀网格 xj=jΔxx_j=j\Delta xtn=nΔtt^n=n\Delta t 上,用中心差分近似可得

ujn+1=2ujnujn1+λ2(uj+1n2ujn+uj1n),λ=cΔtΔx.u_j^{n+1} =2u_j^n-u_j^{n-1} +\lambda^2 \left(u_{j+1}^n-2u_j^n+u_{j-1}^n\right), \qquad \lambda=\frac{c\Delta t}{\Delta x}.

对这一标准显式格式,一维稳定性通常要求 λ1\lambda\le1。这是离散算法的 CFL 条件,不是连续波动方程限制波速的物理定律。

代码:一次有限差分时间步

export function stepWaveEquation(
  previous: readonly number[],
  current: readonly number[],
  waveSpeedMetresPerSecond: number,
  deltaTimeSeconds: number,
  deltaXMetres: number,
): number[] {
  if (previous.length !== current.length || current.length < 3) {
    throw new Error("Wave states must have the same grid with at least 3 points.");
  }
  const courant = (waveSpeedMetresPerSecond * deltaTimeSeconds) / deltaXMetres;
  if (!(courant > 0 && courant <= 1)) {
    throw new Error("The explicit 1D scheme requires 0 < c*dt/dx <= 1.");
  }

  const next = new Array<number>(current.length).fill(0);
  for (let index = 1; index < current.length - 1; index += 1) {
    next[index] =
      2 * current[index] -
      previous[index] +
      courant * courant * (current[index + 1] - 2 * current[index] + current[index - 1]);
  }
  return next;
}

首尾元素保持零,表示固定端。代码没有生成实验结果,也没有处理阻尼、变网格或吸收边界;这些扩展必须改变模型或边界实现,而不只是修改标签。

能量守恒与边界功率

对长度为 LL 的理想均匀弦,定义总能量

E(t)=μ20Lut(x,t)2dx+T20Lux(x,t)2dx.E(t)=\frac\mu2\int_0^L u_t(x,t)^2\,\mathrm dx +\frac T2\int_0^L u_x(x,t)^2\,\mathrm dx.

第一项是横向动能,第二项是在小斜率近似下的弹性势能。μut2dx\mu u_t^2\,\mathrm dx 的单位为焦耳,Tux2dxT u_x^2\,\mathrm dx 也为焦耳。对时间求导并使用 μutt=Tuxx\mu u_{tt}=T u_{xx}

dEdt=T0L(utuxx+uxuxt)dx=T[utux]0L.\frac{\mathrm dE}{\mathrm dt} =T\int_0^L(u_tu_{xx}+u_xu_{xt})\,\mathrm dx =T\,[u_tu_x]_0^L.

积分内部两项合成空间导数,能量变化只由边界功率决定。固定端在所有时刻满足 u=0u=0,因而端点速度 ut=0u_t=0;自由端满足 ux=0u_x=0;周期边界两端贡献相消。这些理想边界都给出 dE/dt=0\mathrm dE/\mathrm dt=0。驱动端可以向系统输入能量,阻尼项会把机械能耗散,吸收边界则允许能量流出计算域。

数值格式满足 CFL 条件只说明线性稳定性的必要结构,并不保证离散能量精确守恒。网格加密时应比较相位、振幅和离散能量误差;稳定但色散明显的计算仍可能在长时间后让波峰位置偏离解析解。

分离变量、傅里叶级数与简正模

固定端问题可以尝试乘积解 u(x,t)=X(x)q(t)u(x,t)=X(x)q(t)。代入方程并除以 c2Xqc^2Xq,得到

X(x)X(x)=q(t)c2q(t)=k2.\frac{X''(x)}{X(x)} =\frac{q''(t)}{c^2q(t)}=-k^2.

空间方程 X+k2X=0X''+k^2X=0 配合 X(0)=X(L)=0X(0)=X(L)=0,只有 kn=nπ/Lk_n=n\pi/L 时存在非零解 Xn(x)=sin(nπx/L)X_n(x)=\sin(n\pi x/L)。时间方程为

qn+ωn2qn=0,ωn=ckn.q_n''+\omega_n^2q_n=0, \qquad \omega_n=ck_n.

线性叠加给出一般模态展开

u(x,t)=n=1(Ancosωnt+Bnsinωnt)sinnπxL.u(x,t)=\sum_{n=1}^{\infty} \left(A_n\cos\omega_nt+B_n\sin\omega_nt\right) \sin\frac{n\pi x}{L}.

初始位移和速度通过正交积分决定 AnA_nBnB_n。这正是 傅里叶级数 在波动初值问题中的作用:边界条件先选择允许的空间谐波,初始状态再决定每个模态的权重。若线密度随位置改变,允许振型通常不再是普通正弦函数,需要 Sturm–Liouville 本征函数及相应权重内积。

线性叠加还意味着两个解的线性组合仍是解,只要它们满足同一齐次边界条件。非线性弦、大振幅几何效应或状态相关波速会让模态之间交换能量,独立谐波演化不再成立。

常见误区

常见误区

“图上的波峰向右移动,所以弦上的材料也一直向右移动。”在横波模型中,弦元主要上下振动;传播的是相位与能量模式,不是整段材料随波峰平移。

常见误区

“波速越大,振幅越大。”在线性方程中 cc 控制传播时空尺度,振幅由初始/边界条件决定。二者可以独立改变。

常见误区

“数值图看起来平滑就说明算法正确。”不稳定误差可能尚未显现,数值色散也可能在平滑图中改变相位。需要检查 CFL、收敛性、守恒量和网格加密结果。

参数实验

固定 L=1mL=1\,\mathrm m,使用同一初始脉冲:

  • c=0.5,1,2ms1c=0.5,1,2\,\mathrm{m\,s^{-1}},测量脉冲中心走过 0.25m0.25\,\mathrm m 所需时间。
  • 保持 cc 不变,把振幅加倍,比较到达时间。
  • 固定 Δx\Delta x,逐渐增大 Δt\Delta t 直到 λ>1\lambda>1,记录数值异常,但不要把不稳定轨迹解释成物理爆炸。
  • 改用一个正常模态初始形状,比较数值周期与 2L/(nc)2L/(nc)

练习

练习

量纲检查:证明 c=T/μc=\sqrt{T/\mu} 的单位是 ms1\mathrm{m\,s^{-1}}

查看解答

[T]=kgms2[T]=\mathrm{kg\,m\,s^{-2}}[μ]=kgm1[\mu]=\mathrm{kg\,m^{-1}},所以 [T/μ]=m2s2[T/\mu]=\mathrm{m^2\,s^{-2}},开平方得到 ms1\mathrm{m\,s^{-1}}

练习

计算:长度 0.8m0.8\,\mathrm m、波速 160ms1160\,\mathrm{m\,s^{-1}} 的两端固定弦,其前三个正常模态频率是多少?

查看解答

fn=nc/(2L)=100nHzf_n=nc/(2L)=100n\,\mathrm{Hz},所以前三个频率为 100Hz100\,\mathrm{Hz}200Hz200\,\mathrm{Hz}300Hz300\,\mathrm{Hz}

练习

数值迁移:若 c=2ms1c=2\,\mathrm{m\,s^{-1}}Δx=0.01m\Delta x=0.01\,\mathrm m,标准显式格式允许的最大 Δt\Delta t 是多少?

查看解答

cΔt/Δx1c\Delta t/\Delta x\le1,有 ΔtΔx/c=0.005s\Delta t\le\Delta x/c=0.005\,\mathrm s。实际计算可留安全裕量,并通过网格收敛测试验证。

与其他知识的关系

  • 偏导数 分别度量位移场沿空间和时间方向的局部变化。
  • 牛顿定律 把微元横向合力与加速度连接,给出方程的力学来源。
  • 波的振幅、频率与相位 提供行波参数,并由 c=fλc=f\lambda 连接时空周期。
  • 傅里叶级数 把初始形状投影到固定端允许的正弦模态。
  • 波动边界条件 区分固定、自由、周期与近似吸收边界的反射行为。
  • 简正模 把分离变量得到的本征振型组织成可独立演化的坐标。

已核实资源

lecture · 2011

MIT 18.03SC Differential Equations

Arthur Mattuck, Haynes Miller

为傅里叶方法、模态分解及其微分方程应用提供连续课程背景。

打开官方来源

MIT OpenCourseWare 微分方程课程覆盖二阶方程、傅里叶级数、边值问题与波动方程,可用于核对分离变量和模态展开。

lecture · 2016

MIT 8.03SC Physics III: Vibrations and Waves

Yen-Jie Lee

连接波动方程的数学解、边界条件、驻波和物理观测。

打开官方来源

振动与波课程从振子、行波、驻波和色散建立物理图景,可用于继续检查波速、能量和边界反射的解释。

后续学习

先阅读 傅里叶级数,把任意初始位移分解为正弦模态;随后进入 波动边界条件简正模,系统比较固定端、自由端和其他本征问题。研究波包传播时可继续到 色散关系,区分相速度、群速度与数值色散。

作者one-forth-core
最近修订2026-07-11
审阅状态待独立人工审阅