龙格库塔物理信息神经网络RK-PINN 求解离散时间0.0001AC方程 | torch代码案例

文摘   2024-11-20 15:44   北京  
最近不少道友后台反馈说收不到公众号的推文,我查了相关规则发现,微信公众号发布了新规则,只有点亮小星星才能第一时间收到文章推送,步骤如下:

点击上方蓝字关注我吧!


  • 前置知识

    • q阶龙格-库塔方法的一般形式

  • 一、离散时间模型

  • 二、龙格库塔物理信息神经网络

    • 2.1 网络架构

    • 2.2 特点

    • 2.3 缺点

  • 三、龙格库塔物理信息神经网络求解离散时间AC方程

    • 3.1 控制方程

    • 3.2 初始条件

    • 3.3 边界条件

    • 3.4 损失函数

    • 3.5 网络架构

    • 3.6 效果

    • 3.7 Python 代码(150R)

一、什么是物理信息神经网络(PINN)?


物理信息神经网络(PINN)是一种将深度学习与物理建模相结合的方法,用于求解偏微分方程(PDE)和其他物理问题。PINN 的关键思想是将物理约束嵌入神经网络中,从而使网络能够学习物理系统的行为并满足物理方程。这种方法通常用于数据稀缺或者问题复杂的情况,为科学和工程领域提供了一种强大的数值求解工具。

(1)主要特点

  • 深度学习结合物理建模: PINN 将深度神经网络与物理模型相结合,以更好地适应实际物理系统。
  • 数据稀缺性: 适用于数据稀缺或难以获取足够数据的问题。
  • 灵活性: 允许用户集成自定义的物理方程和约束,适用于各种科学和工程领域。

(2)使用方法

  1. 定义物理模型: 定义系统的物理方程和约束条件。
  2. 构建神经网络: 构建包含物理信息的神经网络结构。
  3. 训练网络: 通过优化算法训练网络,使其逼近物理方程并满足约束。
  4. 求解问题: 使用训练好的网络进行物理问题的求解。

1.1 用来求解正反偏微分方程问题的一种新方法

PINN的损失函数通常由四个主要部分组成:数据匹配项、物理方程项、边界条件项和初始条件项。

(1)数据信息

数据匹配项确保神经网络在已知的数据点上准确地匹配真实数据。假设我们有一组带有标签的数据 ,其中 是空间点, 是相应的观测值。数据匹配项通常采用平方误差形式:

其中, 是神经网络在点 处的输出。

(2)物理控制方程

物理方程项确保神经网络满足物理方程。假设我们有一个描述物理系统的偏微分方程(PDE):

其中, 是描述物理方程的函数, 表示梯度运算, 表示 Laplace 运算。物理方程项通常采用形如下式的损失:

(3)边界条件

如果问题涉及到边界条件,可以加入边界条件项以确保网络在边界处的行为符合预期。边界条件项的形式取决于具体问题的边界条件。

(4)初始条件

初始条件项确保神经网络在时间初始点上满足初始条件。如果时间是一个变量,初始条件项的形式通常为:

其中, 是神经网络在时间初始点 处的输出, 是相应的初始条件值。

以上四个项的组合构成了PINN的总体损失函数。通过最小化这个损失函数,神经网络能够学习逼近真实数据并同时满足物理方程、边界条件和初始条件。



  • 前置知识

    • q阶龙格-库塔方法的一般形式

  • 一、离散时间模型

  • 二、龙格库塔物理信息神经网络

    • 2.1 网络架构

    • 2.2 特点

    • 2.3 缺点

  • 三、龙格库塔物理信息神经网络求解离散时间AC方程

    • 3.1 控制方程

    • 3.2 初始条件

    • 3.3 边界条件

    • 3.4 损失函数

    • 3.5 网络架构

    • 3.6 效果

前置知识

q阶龙格-库塔方法的一般形式

龙格库塔法是一种高阶精度的数值方法,常被用于科学计算和工程应用中.。该方法通过在每个时 间步中计算多个中间节点加权和的方式逼近数值 解,可以有效地抑制数值发散等问题,提高了数值求解过程的稳定性,因此更适用于处理长时间跨度问题。

q阶龙格-库塔方法的一般形式是一个数值积分算法,用于求解常微分方程的初始值问题。

这些方法通过计算在单个时间步长内的多个中间点上的导数来提高解的精度。q阶方法意味着全局截断误差是时间步长的q次方。

一个常微分方程的初始值问题可以表示为:

其中 是我们想要解决的未知函数, 是给定的函数, 是初始条件。

q阶龙格-库塔方法的一般形式可以写为:

其中:

  • 是在时间 的解的近似值。

  • 是时间步长。

  • 是斜率的估计值,它们是由以下形式计算:

在上式中:

  • 是龙格-库塔方法的系数矩阵的元素,它影响了斜率估计。
  • 是权重系数,它们决定了不同斜率估计的组合。
  • 是节点系数,它们决定了斜率 被计算的时间点。

对于显式方法(如经典的四阶龙格-库塔方法),系数矩阵 是一个下三角矩阵,这意味着 的计算不依赖于 。对于隐式方法(如高斯-龙格-库塔方法), 可能有非零的上三角元素,这要求通过解决 的联立方程组来计算斜率。

在实践中,,和 的具体值会根据所选择的特定龙格-库塔方法来确定,通常会在文献中以所谓的Butcher表格形式给出。这些值的选择将直接影响方法的稳定性、精度和效率。

一、离散时间模型

首先,考虑一般形式的偏微分方程的数据驱动解的问题:

其中:是隐函数解,是一个非线性微分算子,的子集合。

将q阶龙格-库塔方法的一般形式应用于上式,得到

其中:为龙格库塔公式中的系数;为龙格库塔节点;为龙格库塔采样值。

表示时间间隔。

这里, 对于 。这种一般形式封装了隐式和显式时间步进方案,具体取决于参数集 的选择。上面方程可以等价地表达为

其中

二、龙格库塔物理信息神经网络

2.1 网络架构

通过上面的理论基础,可以得出在龙格库塔物理信息神经网络中,输出层神经元数量应该为龙格库塔阶数q+1,具有如下形式:

其中,为PDE当前时刻的解,为PDE下一时刻的解。

这个先前的假设与上上方程式一起,导出了一个物理信息化的神经网络,该网络以 作为输入,并输出

其中,为q阶龙格库塔采样值,为下一时刻PDE的解。

2.2 特点

  • 相比普通的物理信息神经网络PINN,龙格库塔物理信息神经网络的输入变量仅为空间特征,而没有时间变量,时间特征通过龙格库塔公式被隐式的嵌入到损失函数中了。
  • 能够显著提升求解的稳定性。

2.3 缺点

  • 无法同时描述多个输出物理变量,只能求解单个PDE的问题,从而无法处理互相耦合的PDE系统。

三、龙格库塔物理信息神经网络求解离散时间AC方程

考虑如下具有周期性边界条件的Allen-Cahn方程,使用0.1时间下的数据去预测0.9时间下的系统状态。

3.1 控制方程

3.2 初始条件

3.3 边界条件

Allen-Cahn方程是一个从反应-扩散系统领域中众所周知的方程,它描述了多组分合金系统中的相分离过程,包括有序-无序转变。

对于Allen-Cahn方程,方程(9)中的非线性算子由下式给出:

3.4 损失函数

神经网络的共享参数(12)和(11)可以通过最小化平方误差和来学习

其中

这里, 对应于时间步骤 的数据。在经典数值分析中,这些时间步通常被限制为较小,因为显式方案或计算复杂度对于隐式方案的稳定性约束。随着龙格-库塔阶数 的增加,这些约束变得更为严格,对于大多数实际感兴趣的问题,需要采取数千到数百万步骤,直到解决方案被解决到期望的最终时间。与经典方法形成鲜明对比的是,这里我们可以采用隐式龙格-库塔方案,在几乎没有额外成本的情况下采取非常大的时间步骤,同时保持稳定性和高预测准确性,因此允许我们在单步中解决整个时空解。

3.5 网络架构

3.6 效(torch代码 150R)



END


PINNs代码汇总

长按扫码

点赞

关注

在看

💙整理不易,希望各位道友能够多多支持宝库,支持邪云宝库!你的一个点赞、一次转发、 随手分享,都是宝库前进的最大动力~

💛2024,不忘初心,宝库会给大家带来更好的内容,让我们2024,一起暴富!

邪云宝库
用于分享物理科学启发AI的新范式:人工智能的物理科学(PhysicsScience4AI, PS4AI)资料。用于各种debug日志,偏微分方程,物理信息神经网络,算法原理及实现,数据挖掘,机器学习,智能优化算法,多元统计及生活分享。
 最新文章