当前位置: X-MOL 学术Eng. Appl. Artif. Intell. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A tutorial on solving ordinary differential equations using Python and hybrid physics-informed neural network
Engineering Applications of Artificial Intelligence ( IF 7.5 ) Pub Date : 2020-10-08 , DOI: 10.1016/j.engappai.2020.103996
Renato G. Nascimento , Kajetan Fricke , Felipe A.C. Viana

We present a tutorial on how to directly implement integration of ordinary differential equations through recurrent neural networks using Python. In order to simplify the implementation, we leveraged modern machine learning frameworks such as TensorFlow and Keras. Besides, offering implementation of basic models (such as multilayer perceptrons and recurrent neural networks) and optimization methods, these frameworks offer powerful automatic differentiation. With all that, the main advantage of our approach is that one can implement hybrid models combining physics-informed and data-driven kernels, where data-driven kernels are used to reduce the gap between predictions and observations. Alternatively, we can also perform model parameter identification. In order to illustrate our approach, we used two case studies. The first one consisted of performing fatigue crack growth integration through Euler’s forward method using a hybrid model combining a data-driven stress intensity range model with a physics-based crack length increment model. The second case study consisted of performing model parameter identification of a dynamic two-degree-of-freedom system through Runge–Kutta integration. The examples presented here as well as source codes are all open-source under the GitHub repository https://github.com/PML-UCF/pinn_code_tutorial.



中文翻译:

使用Python和混合物理信息神经网络求解常微分方程的教程

我们提供了有关如何使用Python通过递归神经网络直接实现常微分方程积分的教程。为了简化实施,我们利用了TensorFlow和Keras等现代机器学习框架。此外,通过提供基本模型(例如多层感知器和递归神经网络)的实现和优化方法,这些框架提供了强大的自动区分功能。综上所述,我们方法的主要优点是可以实现结合了物理信息和数据驱动的内核的混合模型,其中数据驱动的内核用于减小预测和观察之间的差距。或者,我们也可以执行模型参数识别。为了说明我们的方法,我们使用了两个案例研究。第一个包括通过结合数据驱动应力强度范围模型和基于物理的裂纹长度增加模型的混合模型,通过Euler正向方法执行疲劳裂纹扩展整合。第二个案例研究包括通过Runge-Kutta集成对动态两自由度系统进行模型参数识别。此处提供的示例以及源代码都是在GitHub存储库https://github.com/PML-UCF/pinn_code_tutorial下的所有开源代码。第二个案例研究包括通过Runge-Kutta集成对动态两自由度系统进行模型参数识别。此处提供的示例以及源代码都是在GitHub存储库https://github.com/PML-UCF/pinn_code_tutorial下的所有开源代码。第二个案例研究包括通过Runge-Kutta集成对动态两自由度系统进行模型参数识别。此处提供的示例以及源代码都是在GitHub存储库https://github.com/PML-UCF/pinn_code_tutorial下的所有开源代码。

更新日期:2020-10-08
down
wechat
bug