Burgers 方程概念及数据生成

先上总结:

  • Burgers 方程 = “非线性对流 + 粘性扩散 的炼金石:既保留 真实流体非线性,又 可解析求解
  • 借助 Cole–Hopf 变换,可将它视为一个“可完全积分”的经典例子,非常适合作为学习更复杂流体方程之前的“热身”。

Burgers 方程是什么?

首先是来自 Wiki 的介绍,Burgers’ equation

伯格斯方程是一个基本的偏微分方程对流-扩散方程,出现在应用数学的各个领域,如流体力学、 非线性声学、 气体动力学和交通流。

Burgers’ 方程看似简单,却涵盖了 流体力学 里“非线性对流”(advection)与“粘性扩散”(viscosity)两大核心过程的相互作用,因此常被当做“简化版的 Navier–Stokes 方程”来研究。

一维 Burgers 方程形式和意义

  1. 带粘性 Burgers 方程 形式为:
    ∂ u ∂ t + u   ∂ u ∂ x = ν   ∂ 2 u ∂ x 2 \frac{\partial u}{\partial t} + u\,\frac{\partial u}{\partial x} = \nu\,\frac{\partial^2 u}{\partial x^2} tu+uxu=νx22u

    • 非线性对流项 u   u x u\,u_x uux速度场 u ( x , t ) u(x,t) u(x,t) 自己把自身向前“推”——速度高的部分会赶超下游速度低的部分容易造成梯度增大,最终形成“冲击”或“梯度爆破”(shock)
    • 粘性扩散项 ν   u x x \nu\,u_{xx} νuxx起到 平滑作用把陡峭的梯度“抹平”,防止真正的阶跃不连续出现

在这里插入图片描述

  1. ν = 0 \nu=0 ν=0 时,方程退化为 无粘性 Burgers 方程,等同于一个标量的无粘性守恒律:
    u t + (   1 2 u 2   ) x = 0 , u_t + (\,\tfrac12 u^2\,)_x = 0, ut+(21u2)x=0,
    这正是 最简单的“超声速气流”、“交通流”等模型的原型,会出现真正的“冲击波”(shock)和“稀疏波”(rarefaction)。

    在这里插入图片描述
    右半图展示的正是 无粘性 Burgers 方程的特征线(characteristics)——每条竖直或倾斜的蓝线都代表 从某个初始点 x 0 x_0 x0 出发,以速度 u ( 0 , x 0 ) u(0,x_0) u(0,x0) “平直”前进的轨迹

    • 特征线互不相交(如最左边的几条几乎竖直的线段)时,解是光滑的
    • 交叉点=冲击产生: 一旦两条或多条特征线在某个时刻 t t t 相交,就意味着按 “保持自身速度不变” 这个单纯平移的规则,会出现多值解——在物理上把它看作“冲击波”形成的前兆。

    有粘 vs. 无粘:有粘性时形成平滑的“冲击层”,无粘性时则用不连续跳跃建模冲击

    • 有粘性的情形下,这些本来要交叉的特征会在交叉处产生一个厚度为 O ( ν ) O(\nu) O(ν) 的“冲击层”把多值区替换成跨越跳跃
    • 而在严格无粘时,则需要引入一个数学上的跳跃(entropy‐satisfying shock)来保持解的唯一性和物理可接受性。
  2. 具有狄利克雷边界条件外部力 w ( t , x ) \mathbf w(t, x) w(t,x)1D Burgers 方程
    { ∂ u ∂ t = − u ⋅ ∂ u ∂ x + ν ∂ 2 u ∂ x 2 + w ( t , x ) in  [ 0 , T ] × Ω u ( t , x ) = 0 in  [ 0 , T ] × ∂ Ω u ( 0 , x ) = u 0 ( x ) in  { t = 0 } × Ω \begin{cases} \frac{\partial u}{\partial t} = -u \cdot \frac{\partial u}{\partial x} + \nu \frac{\partial^2 u}{\partial x^2} + w(t, x) \quad & \text{in}\ [0, T] \times \Omega \\ u(t, x) = 0 \quad & \text{in}\ [0, T] \times \partial\Omega \\ u(0, x) = u_0(x) \quad & \text{in} \ \{t = 0\} \times \Omega\end{cases} tu=uxu+νx22u+w(t,x)u(t,x)=0u(0,x)=u0(x)in [0,T]×Ωin [0,T]×Ωin {t=0}×Ω
    ν \nu ν 是粘性参数, u 0 ( x ) u_0(\mathbf x) u0(x) 是初始条件。

在一维 Burgers 方程中,符号 x x x 就是“空间坐标”或者说“位置变量”。具体来说:

  • 空间域 Ω \Omega Ω 通常是 x x x 所在的区间,比如 [ 0 , L ] [0,L] [0,L] [ − 1 , 1 ] [-1,1] [1,1]
  • ∂ Ω \partial\Omega Ω:区间的端点,狄利克雷边界条件在这些点上强行规定 u = 0 u=0 u=0
  • 当写 u ( t , x ) u(t,x) u(t,x) 时,意思是 “在时刻 t t t 、位置 x x x 处的速度(或浓度、位移等物理量) ”。
  • 对应的边界条件 u ( t , x ) = 0 u(t,x)=0 u(t,x)=0 (狄利克雷边界)就是在区间端点 x = ∂ Ω x=\partial\Omega x=Ω 上速度被钳制为零
  • 积分 ∫ Ω \int_\Omega Ω ∫ [ 0 , T ] × Ω \int_{[0,T]\times\Omega} [0,T]×Ω:分别代表对位置 x x x 和对时空 ( t , x ) (t,x) (t,x) 的累积。

因此,在控制问题中:

  • 控制场 w ( t , x ) w(t,x) w(t,x) 描述的是在时刻 t t t 、位置 x x x 施加的外部力大小——它是一个在 时空 [ 0 , T ] × Ω [0,T]\times\Omega [0,T]×Ω 上分布的函数

这样就可以清楚地看到,所有关于 x x x 的出现,都是在描述“这条一维管道上不同位置”的物理量如何随时间演化,以及如何被外部力 w ( t , x ) w(t,x) w(t,x) 所控制。

直观画面:对流 vs. 粘性

  1. 只有对流( ν = 0 \nu=0 ν=0

    • 高速区域向低速推,梯度不断增强——最终出现真正的不连续(“冲击”)。
    • 类似挤压淤泥:越往前越堆越高、形成断崖。
  2. 只有扩散( u   u x = 0 u\,u_x=0 uux=0

    • 平方一项无效,剩余热方程——初始波形逐渐“挤扁”、变平滑
  3. 两者并存( ν > 0 \nu>0 ν>0

    • 初期非线性对流让波形向前压去,出现陡峭的前缘;
    • 粘性扩散在此刻发挥平滑作用,防止断崖,但仍保留“陡峭”特征。
    • 稳态下常常呈现“平缓向前 + 陡峭向后”的波前结构。

Burgers’ equation Code and figures
无粘性 Burgers 方程下,用特征线方法(method of characteristics)把初始速度剖面推进到时间 t = 7.75 t=7.75 t=7.75

  • 虚线是 t = 0 t=0 t=0 的初始速度分布 u ( 0 , x ) u(0, x) u(0,x),实线是在 t = 7.75 t=7.75 t=7.75 时刻,Burgers 方程的解 u ( 7.75 , x ) u(7.75,x) u(7.75,x)。看到整个波形向右平移、并且在右侧越压越“陡峭”,形成了接近垂直的跳跃——这就是“冲击前奏”(pre-shock)。
  • 每一条箭头都从初始曲线上的某一点 ( x 0 ,   u ( 0 , x 0 ) ) \bigl(x_0,\,u(0,x_0)\bigr) (x0,u(0,x0)) 出发,指向它在 t = 7.75 t=7.75 t=7.75 时刻所到达的位置 ( x 0 + u ( 0 , x 0 )   t ,    u ( 0 , x 0 ) ) \bigl(x_0 + u(0,x_0)\,t,\;u(0,x_0)\bigr) (x0+u(0,x0)t,u(0,x0))。这正是 无粘性 Burgers 方程的特征线:速度值本身 u u u 就是特征速度,沿着这条特征 u u u 保持不变、只发生平移
  • 如果沿箭头一直画下去,会发现多条特征在某一点汇聚、交叉,代表无粘性 Burgers 会在该处产生一个“真正”的冲击(数学意义上的不连续跳跃)。在这里插入图片描述
    注意,最初对每个 x x x 都是单值的。一段时间后,波峰会超过前沿。从那时起,对于某些 x x x 的值,得到一个三值解。这种超过发生的时间被称为破碎时间——这是指海浪拍打沙滩。它也是微分形式的守恒定律失效,以及特征线首次交叉的点。当特征线交叉时,会形成冲击波或不连续性。从数学上讲,用不连续性替换三值区域可以避免解的多值问题。冲击波应该位于哪里?
    在这里插入图片描述
  • 如果用冲击波替换部分多值解区间,一些质量将被移除(区域 A1),而一些质量将被添加(区域 A2)。为了保持积分守恒冲击波必须放置在这些两个面积相等的位置
  • 如果加入粘性项 ν u x x \nu u_{xx} νuxx,那垂直折返会被“平滑”成一个陡峭但连续的过渡层(shock layer)。

为什么 Burgers 方程重要?

Cole–Hopf 变换:从线性回到非线性

Burgers 方程的一个“魔法”是,它可以通过 Cole–Hopf 变换

u = − 2 ν   φ x φ u = -2\nu\,\frac{\varphi_x}{\varphi} u=2νφφx

将原方程化为热方程

φ t = ν   φ x x . \varphi_t = \nu\,\varphi_{xx}. φt=νφxx.

  • 热方程线性的、良好研究的方程,可以 用经典的 Green 函数(高斯核)给出解析解
  • 解出 φ \varphi φ 后,再反变换即可得到 u u u

尽管 Burgers 方程 看似非线性,借助恰当的变量替换,实际上它是“可完全积分”(integrable)的——在数学上地位比一般 Navier–Stokes 要简单得多。

兼具“可解析性”与“非线性特征”,是物理与数值分析双料“试金石”。

领域Burgers 方程 的角色
湍流模型在低维度和可控条件下,测试数值算法,验证湍流统计学理论;研究“能谱转移”(energy cascade)。
交通流将汽车密度或车速看作标量守恒量,无粘性版本直接给出冲击波(交通拥堵波)的形成机制。
气体动力学可近似描述一维无压力的气体运动;冲击与膨胀波。
非线性声学描述高振幅声波的非线性变形与耗散平衡;产生“陡峭波前”但不会形成数学奇异。

多个一维高斯函数叠加生成 Burgers 方程数据

应用场景,经常 叠加高斯函数来生成时间序列数据,形如,

在这里插入图片描述

高斯分布

高斯分布(Gaussian distribution),也称为正态分布(Normal distribution),的概率密度函数公式如下:

f ( x ) = 1 2 π σ 2   e − ( x − μ ) 2 2 σ 2 f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \, e^{-\frac{(x - \mu)^2}{2\sigma^2}} f(x)=2πσ2 1e2σ2(xμ)2

其中:

  • x x x:随机变量
  • μ \mu μ:均值(mean),决定分布的中心位置
  • σ \sigma σ:标准差(standard deviation),决定分布的宽度
  • σ 2 \sigma^2 σ2:方差(variance)

这是连续型分布,图像是一个钟形曲线(钟形曲线越“瘦”,代表标准差越小)。

μ = 0 \mu = 0 μ=0 σ = 1 \sigma = 1 σ=1 时,称为标准正态分布,其公式为:

f ( x ) = 1 2 π   e − x 2 2 f(x) = \frac{1}{\sqrt{2\pi}} \, e^{-\frac{x^2}{2}} f(x)=2π 1e2x2

在这里插入图片描述

乘以前面的分子 1 2 π σ 2 \frac{1}{\sqrt{2\pi\sigma^2}} 2πσ2 1 是为了保证 曲线下的面积是 1,使其成为有效的概率分布

一维高斯函数定义

G ( x ) = A ⋅ exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) G(x) = A \cdot \exp\left(-\frac{(x - \mu)^2}{2\sigma^2}\right) G(x)=Aexp(2σ2(xμ)2)

  • A A A:振幅(Amplitude)
  • u u u:中心位置(Mean 或 Center)
  • σ σ σ:标准差(Standard deviation)

各参数的作用与变化效果:

参数决定什么增大或减小的效果
A(振幅)函数在中心处的最大高度
  • 增大:整体上下拉高
  • 减小:整体缩矮
  • 正值 = 正峰,负值 = 倒峰
μ(中心)横坐标上高斯峰的中心位置
  • 增大:向右平移
  • 减小:向左平移
σ(标准差)控制函数的宽度(扩散程度)
  • 增大:变宽,峰变平缓
  • 减小:变窄,峰更尖锐

函数在距离中心 ±σ 的位置处会下降到最大值的约 60.6%:

G ( μ ± σ ) ≈ A ⋅ 0.6065 G(\mu \pm \sigma) \approx A \cdot 0.6065 G(μ±σ)A0.6065

多个一维高斯叠加

在这里插入图片描述

1D Burgers 方程示例

《Solving PDE-Constrained Control Problems Using Operator Learning》论文中提到,对于初始状态 u 0 u^0 u0,添加了两个高斯波,其中一个位于 + x +x +x 处,具有负振幅,另一个位于 − x -x x 处,具有正振幅,以生成冲击。此外,外部力 m t m^t mt 是通过随机添加 1 至 7 个高斯分布来生成的。通过使用 60 个随机初始条件和 500 个外部力,生成了 30000 个轨迹来构建数据集。

《A Generative Approach to Control Complex Physical Systems》论文中提到,在数值模拟中,模拟了 x = [ 0 , 1 ] x=[0,1] x=[0,1] t = [ 0 , 1 ] t=[0,1] t=[0,1] 范围内的区域。空间被离散为 128 个网格,时间被离散为 10,000 个时间步。然而,在数据集中,仅保存了 10 个时间点的数据。对于控制序列 w \mathbf w w,其刷新频率为 0. 1 − 1 0.1^{-1} 0.11,即在 t ∈ [ 0.1 k , 0.1 ( k + 1 ) ] , k ∈ { 0 , . . . , 9 } t \in [0.1k, 0.1(k + 1)], k \in \{0, ..., 9\} t[0.1k,0.1(k+1)],k{0,...,9} 范围内, w ( t , x ) \mathbf w(t, x) w(t,x) 不随时间 t t t 改变。因此,每条轨迹的数据大小为 [ 11 , 128 ] [11, 128] [11,128](状态 u \mathbf u u)和 [ 10 , 128 ] [10, 128] [10,128](控制 w \mathbf w w)。
在所有设置中,初始值 u ( 0 , x ) \mathbf u(0,x) u(0,x) 是两个高斯函数的叠加 u ( 0 , x ) = ∑ i = 1 2 a i e − ( x − b i ) 2 2 σ i 2 , \mathbf u(0, x) = \sum_{i=1}^2 a_i e^{-\frac{(x-b_i)^2}{2\sigma_i^2}}, u(0,x)=i=12aie2σi2(xbi)2,其中 a i a_i ai b i b_i bi σ i \sigma_i σi 均从以下均匀分布中随机采样: a 1 ∼ U ( 0 , 2 ) , a_1 \sim U(0, 2), a1U(0,2), a 2 ∼ U ( − 2 , 0 ) , a_2 \sim U(-2, 0), a2U(2,0), b 1 ∼ U ( 0.2 , 0.4 ) , b_1 \sim U(0.2, 0.4), b1U(0.2,0.4), b 2 ∼ U ( 0.6 , 0.8 ) , b_2 \sim U(0.6, 0.8), b2U(0.6,0.8), σ 1 ∼ U ( 0.05 , 0.15 ) , \sigma_1 \sim U(0.05, 0.15), σ1U(0.05,0.15), σ 2 ∼ U ( 0.05 , 0.15 ) \sigma_2 \sim U(0.05, 0.15) σ2U(0.05,0.15)
类似地,控制序列 w ( t , x ) \mathbf w(t, x) w(t,x) 也是 8 个高斯函数的叠加
w ( t , x ) = ∑ i = 1 8 a i e − ( x − b 1 , i ) 2 2 σ 1 , i 2 e − ( t − b 2 , i ) 2 2 σ 2 , i 2 , (20) \mathbf w(t, x) = \sum_{i=1}^8 a_i e^{-\frac{(x-b_{1,i})^2}{2\sigma_{1,i}^2}} e^{-\frac{(t-b_{2,i})^2}{2\sigma_{2,i}^2}}, \tag{20} w(t,x)=i=18aie2σ1,i2(xb1,i)2e2σ2,i2(tb2,i)2,(20)
其中每个参数独立生成: b 1 , i ∼ U ( 0 , 1 ) , b_{1,i} \sim U(0, 1), b1,iU(0,1), b 2 , i ∼ U ( 0 , 1 ) , b_{2,i} \sim U(0, 1), b2,iU(0,1), σ 1 , i ∼ U ( 0.05 , 0.2 ) , \sigma_{1,i} \sim U(0.05, 0.2), σ1,iU(0.05,0.2), σ 2 , i ∼ U ( 0.05 , 0.2 ) , \sigma_{2,i} \sim U(0.05, 0.2), σ2,iU(0.05,0.2), a 1 ∼ U ( − 1.5 , 1.5 ) a_1 \sim U(-1.5, 1.5) a1U(1.5,1.5),对于 i ≥ 2 i \geq 2 i2 a i ∼ U ( − 1.5 , 1.5 ) a_i \sim U(-1.5, 1.5) aiU(1.5,1.5) 或 0(以相等概率生成)
在基于方程 (16) 的数值求解中,给定 u ( 0 , x ) \mathbf u(0, x) u(0,x) w ( t , x ) \mathbf w(t, x) w(t,x) 后计算得到 u ( t , x ) , t ≠ 0 \mathbf u(t, x), t \neq 0 u(t,x),t=0。数据集生成的设置基于之前的研究(就是上面的)。
我们为训练集生成了 90,000 条轨迹,为测试集生成了 50 条轨迹。每条轨迹占用 32KB 空间,数据集总大小为 2GB。

那么问题来了,参数范围为什么这么取?

在这个数据集的设计中,对高斯函数参数取这样的范围,主要是为了在 多样性可分辨性、以及 数值稳定性 之间取得平衡。

  1. 中心位置 b 1 , i ,   b 2 , i ∼ U ( 0 , 1 ) b_{1,i},\,b_{2,i}\sim U(0,1) b1,i,b2,iU(0,1)

    • 将空间中心 b 1 , i b_{1,i} b1,i 和时间中心 b 2 , i b_{2,i} b2,i 都均匀分布在 [ 0 , 1 ] [0,1] [0,1] 区间,保证每条轨迹中的高斯突发可以出现在整个空间-时间域的任意位置,从而 最大化数据的覆盖性和多样性
  2. 空间和时间尺度 σ 1 , i ,    σ 2 , i ∼ U ( 0.05 ,   0.2 ) \sigma_{1,i},\;\sigma_{2,i}\sim U(0.05,\,0.2) σ1,i,σ2,iU(0.05,0.2)

    • 可分辨性:对于空间方向,网格间距为 Δ x = 1 / 127 ≈ 0.0079 \Delta x=1/127\approx0.0079 Δx=1/1270.0079。若 σ 1 \sigma_1 σ1 过小(例如 < 0.02 <0.02 <0.02),高斯峰会在太窄的区域内剧烈变化,导致在离散网格上无法准确解析;若过大(例如 > 0.3 >0.3 >0.3),又退化为近似平坦的背景,对解的影响趋同于整体偏置,降低了样本的“激发”效果。取 σ 1 ∈ [ 0.05 ,   0.2 ] \sigma_1\in[0.05,\,0.2] σ1[0.05,0.2] 时,高斯峰宽度约在 0.15 0.15 0.15 0.6 0.6 0.6 之间,既能被 128 格网格良好解析,又能产生足够丰富的局部结构
    • 时间分辨率:同理,时间步长 Δ t = 1 / 10000 = 1 0 − 4 \Delta t=1/10000=10^{-4} Δt=1/10000=104,而控制序列只在每个 [ 0.1 k , 0.1 ( k + 1 ) ] [0.1k,0.1(k+1)] [0.1k,0.1(k+1)] 区间内保持常数。若 σ 2 \sigma_2 σ2 远小于 0.05 0.05 0.05,高斯脉冲在时间上集中得太短,与 0.1 0.1 0.1 的刷新周期严重不匹配;若远大于 0.2 0.2 0.2,则又近似全程恒定,不足以激发多样演化。 [ 0.05 , 0.2 ] [0.05,0.2] [0.05,0.2] 能使高斯脉冲在 0.1 的区间内既有明显起落,又不过于尖锐,从而生成既平滑又富有波动的控制
  3. 振幅范围 a i a_i ai

    • 主分量 a 1 ∼ U ( − 1.5 , 1.5 ) a_1\sim U(-1.5,1.5) a1U(1.5,1.5):保证第一个高斯激励幅度在 ± 1.5 \pm1.5 ±1.5 之间,以便产生与 Burgers 方程中速度场同量级(通常 u u u 也在 [ − 2 , 2 ] [-2,2] [2,2] 量级)的驱动,不至于过强导致数值发散,也不至于过弱丧失驱动效果。
    • 其余分量 a i ≥ 2 a_{i\ge2} ai2 等概率取零或 ∼ U ( − 1.5 , 1.5 ) \sim U(-1.5,1.5) U(1.5,1.5):通过一半概率“关闭”某些高斯项,引入不同的“激励模式数”(1 到 8 个峰不等),丰富了数据集中轨迹间的多样性,对下游学习任务(比如深度学习物理仿真、控制策略学习)十分有益。

    振幅范围选在 ± 1.5 \pm1.5 ±1.5 ,主要也是为了在“够大以激发丰富的非线性动力学”与“又不至于数值发散”之间找到一个合理的折中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯水果茶!

谢谢你的水果茶啦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值