问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于PINN的两点边值问题深度学习求解方法

创作时间:
作者:
@小白创作中心

基于PINN的两点边值问题深度学习求解方法

引用
CSDN
1.
https://blog.csdn.net/qq_49385628/article/details/146025383

在科学工程领域,除了会遇到微分方程的各种初值问题,还会经常出现边界条件确定的边值问题。很多时候,我们得不到一个精确得解析解,因此,我们通过数值计算的方法为微分方程寻求一个数值解。本文主要是提供一种神经网络方法来求解二阶线性常微分方程边值问题:

两点边值问题

在科学工程领域,除了会遇到微分方程的各种初值问题,还会经常出现边界条件确定的边值问题。很多时候,我们得不到一个精确得解析解,因此,我们通过数值计算的方法为微分方程寻求一个数值解。本文主要是提供一种神经网络方法来求解二阶线性常微分方程边值问题:

$$
\begin{align*}
&{y}''(x) +p(x){y}'+q(x)y=f(x),a<x<b \
&y(a)=\alpha, y(b)=\beta
\end{align*}
$$

上诉式子中,$p(x), q(x), f(x)$为已知函数,$y(x)$为待求解函数,$\alpha、\beta$为常数。该类问题被称为狄利克雷(Dirichlet)边界条件。我们在求解问题中常常会利用分解的思想去将问题简化。因此,我们可以在这个基础上对原微分方程进行简化。

打靶法求解两点狄利克雷边值问题

打靶法的基本思想是将原问题式化为一个与之等价的初值问题。可以先做一个假设通过待定系数来明确这种转化关系。为此我们假定如下式子与原初值问题有相同的解,称为等价问题式:

$$
\begin{align*}
&{y}''(x) +p(x){y}'+q(x)y=f(x),a<x<b \
&y(a)=\alpha, {y}'(a)=\gamma
\end{align*}
$$

其中,常数$\gamma$待定,它需要通过原初值问题与等价问题式之间的等价同解关系来确定。因此,通过这种变换,我们就将原问题转换为求解等价问题式子。然而,等价的问题式子通常情况下也很难获取到精确解,因此这里我们仍然可以通过对问题式子分解的思想将问题分解。

事实上,等价的初值问题的解可以通过三个更一般的初值问题的解来确定。这三个初值问题分别是两个齐次方程与一个非齐次方程,具体如下:

$$
\begin{align*}
&{y}''(x) +p(x){y}'+q(x)y=f(x),a<x<b \
&y(a)=1, {y}'(a)=0
\end{align*}
$$

$$
\begin{align*}
&{y}''(x) +p(x){y}'+q(x)y=f(x),a<x<b \
&y(a)=0, {y}'(a)=1
\end{align*}
$$

$$
\begin{align*}
&{y}''(x) +p(x){y}'+q(x)y=f(x),a<x<b \
&y(a)=0, {y}'(a)=0
\end{align*}
$$

以上三个问题的精确解分别是$y_1(x), y_2(x), y_3(x)$。根据线性微分方程的结构可知,$y=\alpha y_1+\gamma y_2+y_3$就是等价初值问题的解,即也为原常微分方程边值问题的解。现在的问题是式中的$\gamma$的值为多少。这里利用等价关系,即$y(b)=\beta=\alpha y_1(b)+\gamma y_2(b)+y_3(b)$,于是,我们就能得到如下式子:

$$
\gamma = \frac{\beta -\alpha y_1(b)-y_3(b)}{y_2(b)}
$$

很容易会考虑到如果$y_2(b)=0$怎么办,很简单,将问题式子转换为下式即可。然后按照刚刚的推理方法再推一遍即可。

$$
\begin{align*}
&{y}''(x) +p(x){y}'+q(x)y=f(x),a<x<b \
&y(b)=\beta, {y}'(b)=\gamma
\end{align*}
$$

目前,我们已经将问题规模简化,下面将提供一个例子来说明方法的可行性。我们求解方程的数值方法将会是PINN,具体的原理这里便不累赘了,可以参考一下我的另一篇博客链接:使用物理信息神经网络求解二维热扩散方程实例,仅作参考。

问题描述

求解两点边值问题

$$
\begin{align*}
&{y}'' +y=-1,0<x<1 \
&y(0)=y(1)=0
\end{align*}
$$

已知此问题的精确解为:

$$
y = cosx+\frac{1-cos1}{sin1}·sinx-1
$$

使用打靶法分解问题

假定原问题与以下初值问题等价同解:

$$
\begin{align*}
&{y}'' +y=-1,0<x<1 \
&y(0)=0 ,{y}'(0)=\gamma
\end{align*}
$$

上式中,常数$\gamma$待定,需要通过问题式子与等价式子之间的等价同解关系来确定。因此,将原问题便转化为研究初值等价问题式。但是上式一般情况下也很难获取到精确解,因此需要对该式子进一步分解。

  • 事实上,可以通过三个更一般的初值问题的解来确定,分别是两个齐次方程与一个非齐次方程对应的初值问题:

$$
\begin{align*}
&{y}'' +y=0,0<x<1 \
&y(0)=1 ,{y}'(0)=0
\end{align*}
$$

$$
\begin{align*}
&{y}'' +y=0,0<x<1 \
&y(0)=0 ,{y}'(0)=1
\end{align*}
$$

$$
\begin{align*}
&{y}'' +y=-1,0<x<1 \
&y(0)=0 ,{y}'(0)=0
\end{align*}
$$

  • 以上三个问题的精确解分别是$y_1,y_2,y_3$,原微分方程的解为$y=y(0)*y_1+\gamma *y_2 +y_3 = \gamma *y_2 +y_3$
  • 以上信息可以求得$\gamma$的值$\gamma = \frac{\beta -\alpha y_1(1)-y_3(1)}{y_2(1)} = \frac{0 -0* y_1(1)-y_3(1)}{y_2(1)}=-\frac{y_3(1)}{y_2(1)}$

PINN方法求解效果

网络的输入是$x$信息,输出为$y_1,y_2,y_3$,分别对三个输出作pde损失以及边界损失计算,训练20000次,耗时5分钟左右。对于$\gamma$的值,直接代入式子求得结果大约在0.5414左右。求解效果如下:

误差图:

说明打靶法求解问题确实可行。不过考虑到神经网络求对$x$的偏导可能会存在误差,因此,我们直接将原问题的线性常微分方程代入到pinn求解,得到如下效果:

误差图:

明显效果要比打靶法效果还好,可见pinn在处理该问题的上可以不使用打靶法的思想直接求解。打靶法在其他的数值计算方法上有很好的应用,有兴趣的朋友可以去尝试一下。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号