您的位置 首页 知识

偏微分方程数值解(偏微分方程(组)的数值解法介绍)

偏微分方程数值解
上篇文章——锂离子电池模型介绍

一、偏微分方程(组)的解法介绍引导
我们知道物理现象中很多问题可以用偏微分方程描述,例如振动、热传导、扩散等。一些典型物理方程的构建及解析解法,有兴趣的用户可参考顾樵编著的《数学物理方法》。
涉及到多变量或多领域的偏微分方程就存在着变量的耦合,很难用数解析解法或无法用解析解法求得耦合偏微分方程解,此时就需要我们是用数值解法进行求解,本文的主题就放在耦合的偏微分方程组的数值解法介绍上。
上篇文章我们简单介绍了锂离子电池的P2D模型,即一个耦合的偏微分方程组。具体可查看上篇文章。
要想求解如上篇文章形式的偏微分方程组我们通常可以选择有限差分法、正交配置法和有限元法。由于有限差分法操作简单,本文的重点介绍有限差分法。newman编写的电池模型程序就是基于有限差分法,有兴趣的用户和登录网站——http://www.cchem.berkeley.edu/jsngrp/ 进行免费下载、使用及二次开发。
二、有限差分法介绍
有限差分法顾名思义可分为有限+差分。
有限——我们可以理解为连续(无限)的求解域,通过离散化变为由有限个网格节点构成的求解域。下图形象的将r和y构成的连续域离散为由网格节点构成的有限域。

差分——由数学定义我们可以理解差分,具体如下图。差分分为三种形式

向前差分、向后差分和中心差分,对于边界点还有特定的处理。

有限差分法求解偏微分方程的基本过程是:
1)划分网格。将连续的求解域划分为有限的差分网格,将求解的变量存放在网格的各个节点上。
2)差分构建。在每个点上将偏微分方程的微分项用合适的差商代替,从而将偏微分方程转换为代数形式的差分方程,每个节点的差分方程组合在一起就构成了一个代数方程组,我们利用初始值和边界条件,即可求解代数方程组的解,获取每个节点的变量值,即偏微分方程的数值解。
例如针对如下的椭圆形偏微分方程中偏微分项

,我们通过有限差分法可表述如下。

用户如果想深入了解及matlab的应用可参考《matlab建模算法及实例分析》一书中的偏微分方程数值解法一章。
三、MOL(直线法)
直线法MOL(Method of Line),如果我们将上节中将所有变量全部离散差分称为完全有限差分,则我们可以将本节的MOL法称为不完全有限差分。MOL方法其实是将偏微分方程的一个变量不进行离散而是继续作为连续变量,而对其他变量进行离散,从而把偏微分方程转换为常微分方程,把边界条件变为代数方程。
例如求解如下方程,我们只对空间x变量进行均等离散化为5段,每段长2,共计6个点,分别表示为T0、T1、T2、T3、T4、T5,保留时间的连续性。

通过差分,我们可得四个常微分方程构成的常微分方程组,如下图。

根据初值和边界条件我们可以求得以上方程的数值解。
如下为matlab程序,用户可参考。
使用matlab  ode15s求解器
微分代数方程组的构建

求解主程序

使用matlab  ode45求解器

用户想深入的了解可参考《实用化工计算及模拟——MATLAB在化学工程中的应用》。
综上,本文对偏微分方程的有限差分解法尤其是MOL解法进行了一定程度的介绍,有兴趣的朋友可思考一下如何根据以上的内容如何利用matla软件对上一篇文章的偏微分方程组进行求解。

文章如有不妥之处,欢迎交流讨论。

偏微分方程数值解相关文章