PINN物理信息神经网络驱动的Burgers偏微分方程求解MATLAB代码
代码实现了一个物理信息神经网络(PINN) 来求解 Burgers 偏微分方程(PDE)。以下是代码的详细分析:
一、主要功能
使用一个无需标注数据的神经网络(PINN)来求解 Burgers 方程:
∂u∂t+u∂u∂x=νπ∂2u∂x2 \frac{\partial u}{\partial t} + u \frac{\partial u}{\partial x} = \frac{\nu}{\pi} \frac{\partial^2 u}{\partial x^2} ∂t∂u+u∂x∂u=πν∂x2∂2u
其中 ν=0.01\nu = 0.01ν=0.01,边界条件为:
- u(−1,t)=0u(-1, t) = 0u(−1,t)=0
- u(1,t)=0u(1, t) = 0u(1,t)=0
- 初始条件:u(x,0)=−sin(πx)u(x, 0) = -\sin(\pi x)u(x,0)=−sin(πx)
二、逻辑关联
三个文件的功能如下:
文件名 | 功能 |
---|---|
main.m | 主程序:数据生成、网络构建、训练、测试 |
modelLoss.m | 定义损失函数:PDE 残差 + 边界/初始条件误差 |
solveBurgers.m | 提供 Burgers 方程的解析解,用于验证 |
三、算法步骤
1. 数据生成
- 边界条件点:左右边界各 25 个时间点
- 初始条件点:50 个空间点
- 内部配置点:10,000 个随机点(用于 PDE 残差约束)
2. 网络结构
- 输入层:2 维(x, t)
- 隐藏层:8 个全连接层,每层 20 个神经元,激活函数为 tanh
- 输出层:1 维(u)
3. 损失函数
mseF
:PDE 残差的均方误差mseU
:初始和边界条件的 L2 损失- 总损失:
loss = mseF + mseU
4. 训练
- 使用 L-BFGS 优化器
- 最大迭代次数:1500
- 早停条件:梯度或步长范数 < 1e-5
5. 验证
- 在 (t=0.25,0.5,0.75,1)(t = 0.25, 0.5, 0.75, 1)(t=0.25,0.5,0.75,1) 时刻比较预测值与解析解
- 计算相对误差并绘图展示
四、技术路线
技术 | 说明 |
---|---|
PINN | 将物理方程作为正则项融入损失函数 |
自动微分 | 使用 dlgradient 和 dljacobian 计算偏导数 |
L-BFGS | 二阶优化算法,适合小批量高精度问题 |
双精度训练 | 提高数值稳定性 |
dlarray | 用于深度学习的高效张量操作 |
五、公式原理
Burgers 方程:
∂u∂t+u∂u∂x=ν∂2u∂x2 \frac{\partial u}{\partial t} + u \frac{\partial u}{\partial x} = \nu \frac{\partial^2 u}{\partial x^2} ∂t∂u+u∂x∂u=ν∂x2∂2u
损失函数:
L=1NF∑i=1NF∣f(xi,ti)∣2+1NU∑j=1NU∣u(xj,tj)−uj∣2 \mathcal{L} = \frac{1}{N_F} \sum_{i=1}^{N_F} \left| f(x_i, t_i) \right|^2 + \frac{1}{N_U} \sum_{j=1}^{N_U} \left| u(x_j, t_j) - u_j \right|^2 L=NF1i=1∑NF∣f(xi,ti)∣2+NU1j=1∑NU∣u(xj,tj)−uj∣2
其中:
- fff 是 PDE 残差
- NFN_FNF 是内部点数
- NUN_UNU 是边界/初始点数
⚙️ 六、参数设定
参数 | 值 | 说明 |
---|---|---|
numBoundaryConditionPoints | [25, 25] | 左右边界点数 |
numInitialConditionPoints | 50 | 初始条件点数 |
numInternalCollocationPoints | 10000 | 内部配置点数 |
numBlocks | 8 | 隐藏层数 |
fcOutputSize | 20 | 每层神经元数 |
maxIterations | 1500 | 最大迭代次数 |
gradientTolerance | 1e-5 | 梯度容差 |
stepTolerance | 1e-5 | 步长容差 |
七、运行环境
- 软件:MATLAB2024b
总结
该代码展示了一种无需标注数据的偏微分方程求解方法,通过将物理方程融入神经网络损失函数,实现了对 Burgers 方程的高精度求解。适用于逆问题、数据稀缺场景或复杂边界条件的 PDE 求解任务。