微分方程近似解法归纳 |
您所在的位置:网站首页 › 差分方程求解公式 › 微分方程近似解法归纳 |
文章目录
前言一、差分方程的概念二、差分格式的构造三、差分方程求解1、基本原理:(1)先考虑一维情形(2)二维情形第一类边界条件第二、三类边界条件(以下内容摘自教材)
总结
前言
数学物理方程中的各类定解问题,都是有生活中碰到的各类问题归纳总结而来,但课本中提出的一些解法只可求解一些方程较为简单且求解区域规则的的问题,而工程技术中遇到的许多问题往往无法满足以上陈述的两个条件,因而无法取出有效的准确解,求解近似解可有效解决此类问题。笔者在学习王元明老师编纂的数理方程第五版教材后,根据教材第七章提及的差分解法并结合网上相关资料做了一些归纳。 由于个人水平有限,本文不讨论解的存在性与差分格式的收敛性问题,出现错误的地方也请不吝赐教。 一、差分方程的概念先回顾一下导数的定义式: f ′ ( x ) = lim h → 0 f ( x + h ) − f ( x ) h = lim h → 0 f ( h ) − f ( x − h ) h f^{'}(x)=\lim\limits_{h\to0}\frac{f(x+h)-f(x)}{h}=\lim\limits_{h\to0}\frac{f(h)-f(x-h)}{h} f′(x)=h→0limhf(x+h)−f(x)=h→0limhf(h)−f(x−h) 函数的导数表示为了函数值的增量与自变量增量的比值,式中函数值的增量即称作函数的差分。 由此,对于一个微分方程,我们可以把其中的微分用差分来代替,并把代替后得到的方程成为差分方程,也叫递推关系。 二、差分格式的构造函数的一阶导与二阶导在 ∣ Δ x ∣ \left|\Delta x \right| ∣Δx∣很小的情况下可分别用一节差商和二阶差商代替。方便起见,本文直接给出一、二阶差商形式,下文所作讨论也均针对一、二阶偏微分方程。 对于一阶导数的近似有: u ′ ( x ) = f ( x + h ) − f ( x ) h 或 u ′ ( x ) = f ( h ) − f ( x − h ) h u^{'}(x)=\frac{f(x+h)-f(x)}{h}或u^{'}(x)=\frac{f(h)-f(x-h)}{h} u′(x)=hf(x+h)−f(x)或u′(x)=hf(h)−f(x−h) 二阶导数的近似有: u ′ ′ ( x ) = u ( x + Δ x ) − 2 u ( x ) + u ( x − Δ x ) ( Δ x ) 2 u^{''}(x)=\frac{u(x+\Delta x)-2u(x)+u(x-\Delta x)}{(\Delta x)^{2}} u′′(x)=(Δx)2u(x+Δx)−2u(x)+u(x−Δx) 举一维波动方程 ∂ 2 u ∂ t 2 = a 2 ∂ 2 u ∂ x 2 \frac{\partial^{2} u}{\partial t^{2}}=a^{2}\frac{\partial^{2}u}{\partial x^{2}} ∂t2∂2u=a2∂x2∂2u为例,将式中的二阶导数用二阶差商代替得: u ( t + Δ t ) − 2 u ( t ) + u ( t − Δ t ) ( Δ t ) 2 = a 2 u ( x + Δ x ) − 2 u ( x ) + u ( x − Δ x ) ( Δ x ) 2 \frac{u(t+\Delta t)-2u(t)+u(t-\Delta t)}{(\Delta t)^{2}}=\\a^{2}\frac{u(x+\Delta x)-2u(x)+u(x-\Delta x)}{(\Delta x)^{2}} (Δt)2u(t+Δt)−2u(t)+u(t−Δt)=a2(Δx)2u(x+Δx)−2u(x)+u(x−Δx) 这种近似产生的误差可用泰勒公式展开化简后的无穷小项(教材中称作截断误差)估计,本文不多赘述。 关于n阶差商的计算方法可见:函数差商的计算方法 三、差分方程求解 1、基本原理: (1)先考虑一维情形在上述差分格式的构造中可以看到,我们将原本的微分方程通过差分替换得到了函数 f ( x ) f(x) f(x), x ∈ [ a , b ] x\in\left[a,b\right] x∈[a,b]在相邻两个或三个自变量取值下的等价关系,即: F [ f ( x ) , f ( x + Δ x ) 或 f ( x − Δ x ) ] = 0 F[f(x),f(x+\Delta x)或f(x-\Delta x)]=0 F[f(x),f(x+Δx)或f(x−Δx)]=0 通过简单地变换即可得到 f ( x ) f(x) f(x)与 f ( x + Δ x ) f(x+ \Delta x) f(x+Δx)或 f ( x − Δ x ) f(x- \Delta x) f(x−Δx)的(递推)关系,假设为 f ( x ) = A ( f ( x + Δ x ) ) f(x)=A(f(x+\Delta x)) f(x)=A(f(x+Δx)),即函数某一点的值与相邻点的值有关。 不同的递推关系分别成为向前差分、向后差分或中心差分。详细可以参考:https://cloud.tencent.com/developer/article/1685119 对于给定的 Δ x \Delta x Δx(步长), x x x取值区间被划分成了有限个具有一定长度的线段(我们假设被分成了n个这样的线段,其中 n = [ b − a Δ x ] n=[\frac {b-a}{\Delta x}] n=[Δxb−a]),线段的端点称为结点。 则第i个结点上的值 f ( x i ) f(x_{i}) f(xi)可由其前结点 f ( x i + Δ x ) f(x_{i}+\Delta x) f(xi+Δx)也即 f ( x i + 1 ) f(x_{i+1}) f(xi+1),或后结点 f ( x i − Δ x ) f(x_{i}-\Delta x) f(xi−Δx)也即 f ( x i − 1 ) f(x_{i-1}) f(xi−1),确定;特别的,考虑到区间长度 b − a b-a b−a可能不是步长 Δ x \Delta x Δx的整数倍,我们把临近区间边界的结点上的值用边界点的值代替,即令 f ( x n ) = f ( b ) f(x_{n})=f(b) f(xn)=f(b)或 f ( x 1 ) = f ( a ) f(x_{1})=f(a) f(x1)=f(a)。 由此我们便得到方程组 { f ( x i ) = A ( f ( x i + 1 ) ) x i ∈ [ a , b ] 且 i = 1 , 2 , . . . , n f ( x n ) = f ( b ) \begin{cases} f(x_{i})=A(f(x_{i+1}))&x_{i}\in\left[a,b \right]且i=1,2,...,n\\ f(x_{n})=f(b) \end{cases} {f(xi)=A(f(xi+1))f(xn)=f(b)xi∈[a,b]且i=1,2,...,n 求解该方程组即可得到问题的解。 但是这个方程组不仅方程数量多,未知量也多直接求解很麻烦,这里教材中给出了迭代法。其基本原理是,任意给定区域内结点 x i x_{i} xi的值作为解的零次近似 { f i ( 0 ) } \left\{f_{i}^{(0)}\right\} {fi(0)},将其代入 f ( x i ) = A ( f ( x i + 1 ) ) f(x_{i})=A(f(x_{i+1})) f(xi)=A(f(xi+1)),得到 f i ( 1 ) = f i + 1 ( 0 ) f_{i}^{(1)}=f_{i+1}^{(0)} fi(1)=fi+1(0),将 f i ( 1 ) f_{i}^{(1)} fi(1)作为解的一次近似。多次迭代后可得到一个近似解的序列 { f i k } \{f_{i}^{k}\} {fik} ( k = 0 , 1 , 2 , . . . ) (k=0,1,2,...) (k=0,1,2,...),且当 k → + ∞ k\to+\infty k→+∞时,该序列收敛于差分方程的解,与零次近似的选取无关。 有关其解合理性的论述可以参考:差分格式的稳定性与收敛性 在实际计算过程中,我们可以预先给定适当小的控制数 ε > 0 \varepsilon > 0 ε>0,当相邻两迭代解间的误差小于 ε \varepsilon ε时即可结束迭代过程。 迭代法有同步迭代法与异步迭代法之分,二者区别在于在给定零次近似后,是否在计算过程中使用已经计算获得的值作为目标点位的起算数据。 (2)二维情形 第一类边界条件确定求解区域后,我们先做平行于坐标轴的两族直线 x i = x 0 + i h , x_{i}=x_{0}+ih, xi=x0+ih, y i = y 0 + i h . y_{i}=y_{0}+ih. yi=y0+ih.
与第一类边界条件不同之处在于,第二、三类边界条件中包含未知函数的法向导数。下面以第三类边界条件
(
∂
u
∂
n
+
σ
u
)
∣
Γ
=
f
(
x
,
y
)
\left(\frac{\partial u}{\partial n}+\sigma u\right)\bigg|_{\Gamma}=f(x,y)
(∂n∂u+σu)∣∣∣∣Γ=f(x,y)为例,说明其处理方法。式中
σ
\sigma
σ,
f
f
f为
Γ
\Gamma
Γ上的已知函数,
σ
≥
0
\sigma \ge0
σ≥0(且至少在一部分边界上
σ
>
0
\sigma >0
σ>0)。 ∂ u ∂ n ∣ P = ∂ u ∂ x c o s ( α + π ) + ∂ u ∂ y c o s ( π − β ) = − ∂ u ∂ x c o s α − ∂ u ∂ y s i n α \begin{aligned} \frac{\partial u}{\partial n}\bigg|_{P}&=\frac{\partial u}{\partial x}cos(\alpha+\pi)+\frac{\partial u}{\partial y}cos(\pi-\beta) \\ &=-\frac{\partial u}{\partial x}cos\alpha-\frac{\partial u}{\partial y}sin \alpha \end{aligned} ∂n∂u∣∣∣∣P=∂x∂ucos(α+π)+∂y∂ucos(π−β)=−∂x∂ucosα−∂y∂usinα 将偏导数 ∂ u ∂ x \frac{\partial u}{\partial x} ∂x∂u以及 ∂ u ∂ y \frac{\partial u}{\partial y} ∂y∂u分别用差商 U ( Q ) − U ( P ) h \frac{U(Q)-U(P)}{h} hU(Q)−U(P)及 U ( R ) − U ( P ) h \frac{U(R)-U(P)}{h} hU(R)−U(P)来代替,并以 f ( P ∗ ) f(P^{*}) f(P∗)代替 f ( P ) f(P) f(P),以 σ ( P ∗ ) \sigma(P^{*}) σ(P∗)代替 σ ( P ) \sigma(P) σ(P),代入上式即可得 U ( P ) = U ( Q ) c o s α + U ( R ) s i n α + h f ( P ∗ ) c o s α + s i n α + h σ ( P ∗ ) U(P)=\frac{U(Q)cos\alpha +U(R)sin\alpha +hf(P^{*})}{cos\alpha+sin\alpha+h\sigma(P^{*})} U(P)=cosα+sinα+hσ(P∗)U(Q)cosα+U(R)sinα+hf(P∗) 其中 U ( P ) U(P) U(P)、 U ( Q ) U(Q) U(Q)等均为解在 P P P、 Q Q Q等点的近似值,其选取均取在 Γ \Gamma Γ上按几何距离最近点的值。 关于网格的划分不必完全为正方形,按实际条件选取 总结本文介绍了差分方程的构建与求解。 在构建过程中,不仅要把方程化为差分格式,还要把定解条件化为差分格式,不同种类的定解条件有所不同。 在求解过程中,由于方程个数较多,通常用计算机代为计算,考虑到存储的不变,通常采取迭代法,给定零次近似后,计算求解序列的收敛值,即为差分方程近似解。 参考文献 《数学物理方程与特殊函数(第五版)》王元明编 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |