2. 正问题建模基础

正问题计算的第一步,不是写代码,也不是选算法,而是把“真实世界里的物理过程”翻译成“计算机能处理的数学问题”。这个翻译过程是否规范,直接决定了后续反问题求解有没有可靠的正演算子可用。本节围绕三个核心要素展开:控制方程、边界条件、初始条件,并说明如何把它们写成一套完整、可复现、可编程的数学描述。

一、物理模型到数学模型的三层抽象

以热传导为例。物理模型描述的是“一块金属板左端被加热,内部温度如何随时间变化”;数学模型则要写成偏微分方程加定解条件的形式。中间需要完成三层抽象:

  • 几何抽象:把实际物体简化为规则区域,例如一维杆 x ∈ [0, L],或二维矩形 Ω = [0,Lx]×[0,Ly]。几何简化必须记录简化依据,因为它会进入反问题的模型误差。
  • 物性抽象:把材料属性写成参数,如导热系数 k、密度 ρ、比热容 c。若这些参数未知,它们就是反问题要反演的变量。
  • 场变量抽象:明确未知场是什么,例如温度场 T(x,t)、位移场 u(x,t)、压力场 p(x,t)。场变量决定了方程的类型和求解空间。

三层抽象完成后,才能写出控制方程。以均匀一维杆瞬态热传导为例,能量守恒给出:

ρc ∂T/∂t = ∂/∂x( k ∂T/∂x ) + Q(x,t),   x ∈ (0,L), t > 0

其中 Q 为内热源。若 k 为常数,可简化为 ∂T/∂t = α ∂²T/∂x² + Q/(ρc),α = k/(ρc) 为热扩散率。这一步的关键是:方程中每一个符号都要有明确的物理含义、单位和取值来源,不能出现“某个系数”这类模糊表述。

二、边界条件:把“外界如何影响物体”写清楚

控制方程描述内部规律,边界条件描述外部作用。二者缺一,定解问题不成立。常见三类边界条件必须能准确区分并规范书写:

类型数学形式物理含义典型场景
第一类(Dirichlet)T(0,t) = T₀(t)边界温度已知端面与恒温源接触
第二类(Neumann)-k ∂T/∂x |ₓ₌₀ = q(t)边界热流已知电加热片、绝热面 q=0
第三类(Robin)-k ∂T/∂x |ₓ₌₀ = h(T∞ - T(0,t))对流换热表面与流体接触

规范书写边界条件要注意三点。第一,方向约定要统一:本文约定外法线方向为正,因此左端 x=0 处外法线指向负方向,热流项写作 -k ∂T/∂x;若改用内法线约定,符号必须整体调整,且全文与图示保持一致。第二,边界要覆盖完整:一维区间有两个端点,二维区域有四条边,每条边都必须给出条件,不能遗漏。第三,条件要与方程阶数匹配:二阶空间导数需要每个边界一个条件,不能多也不能少。

三、初始条件:瞬态问题的起点

瞬态问题还需要初始时刻的场分布:T(x,0) = T_init(x)。初始条件不是随便填一个常数,它应当来自实际工况,例如“整杆初始处于 25 ℃ 室温”。若初始场本身未知,它也可能成为反演对象。稳态问题则不需要初始条件,这一点在建模时必须先判断清楚,避免给稳态方程硬加初始条件导致定解问题超定。

判断定解问题是否“适定”,可快速检查三件事:方程类型与未知场是否匹配;边界条件数量是否等于空间导数阶数;瞬态问题是否恰好有一个初始条件。三项都满足,才具备进入离散求解的前提。

四、规范化描述模板与一个可执行示例

把上述内容组织成一份规范化描述,建议固定包含:区域与坐标系、控制方程、物性参数及单位、边界条件(逐边列出)、初始条件、待反演量与已知量清单。下面给出一个可直接用于编程的示例(示例参数为教学假设值,非实测数据):

区域: x ∈ [0, 0.5] m, 一维均匀杆
方程: ρc ∂T/∂t = k ∂²T/∂x²,  k=200 W/(m·K), ρ=7800 kg/m³, c=500 J/(kg·K)
边界: x=0: -k ∂T/∂x = q(t), q(t)=5×10⁴ W/m² (恒定热流)
      x=L: T(L,t) = 25 ℃ (恒温端)
初始: T(x,0) = 25 ℃
待反演: q(t) 或 k;已知量: 测点温度 T_obs(t)

这份描述已经足够支撑有限差分或有限元离散:空间步长 Δx、时间步长 Δt 可据此选取,稳定性条件(显式格式需 αΔt/Δx² ≤ 0.5)也能直接核算。若后续反问题要反演 q(t),正演算子就是“给定 q(t) 算出测点温度”的映射,而这份规范化描述正是该映射的定义域与值域说明。

正问题定解问题的规范化结构 物理模型 金属杆 · 左端加热 右端恒温 · 初始室温 几何 / 物性 / 场变量 数学模型(定解问题) ρc ∂T/∂t = k ∂²T/∂x² x=0: -k ∂T/∂x = q(t) x=L: T = 25 ℃ T(x,0) = 25 ℃ 离散与正演算子 Δx, Δt 选取 稳定性核算 q(t) → T_obs(t) 第一类 Dirichlet T(0,t) = T₀(t) 边界温度已知 恒温源接触 每边 1 个条件 第二类 Neumann -k ∂T/∂x = q(t) 边界热流已知 加热片 / 绝热面 外法线为正约定 第三类 Robin -k ∂T/∂x = h(T∞-T) 对流换热 表面与流体接触 h 为换热系数

五、建模阶段最容易埋下的三类隐患

第一类是符号与方向不一致。同一份文档里,边界热流有时写 k ∂T/∂x,有时写 -k ∂T/∂x,离散后热流方向整体反号,正演结果与实测趋势相反,反问题会反演出负的导热系数。解决办法是在描述模板中固定“外法线为正”的约定,并在图示中标注法线方向。

第二类是边界条件与方程阶数不匹配。二阶方程每个边界给两个条件,或一维问题只给一个端点条件,都会导致定解问题不适定。离散后表现为矩阵奇异或解对网格不收敛,这类错误在反问题中会被误判为“数据不足”。

第三类是参数单位混用。例如 k 用 W/(m·K)、长度用 mm、时间用 min,直接代入会导致 α 量级错误,稳定性条件失效。规范做法是在描述模板中为每个参数标注单位,并在代码入口统一换算为 SI 单位。

建模阶段的简化(一维近似、常物性、忽略辐射)不是“免费”的。每一项简化都应在描述中显式记录,因为它会在反问题中转化为模型误差,与测量噪声一起影响反演结果的可信度。

完成本节工作后,你应当得到一份“给定输入即可算出输出”的完整定解问题描述:方程、边界、初始条件、参数与单位齐全,方向约定统一,待反演量与已知量边界清晰。这份描述就是后续离散求解与反问题迭代的共同基础,也是判断正演结果是否可信的第一道依据。