东南大学_数值分析_第七章_偏微分方程数值解法
- 格式:doc
- 大小:150.50 KB
- 文档页数:5
偏微分方程数值解法
偏微分方程数值解法是一种利用计算机技术获取偏微分方程数值解的方法,它主要目标是解决微分方程的精确、快速、可靠的数值解。
偏微分方程数值解法交叉应用于分析数学、力学、电磁学等不同领域的各种模型,能够大大提高解决微分方程的效率。
偏微分方程数值解法大致分为两个方面:一是求解偏微分方程的离散数值解法;二是精确解对分解数值解法,如多阶谱方法、牛顿法和共轭梯度法等。
其中,离散数值解法是把偏微分方程抽象成一系列数值求解问题,并进行递推叠加求解,而精确解对分解数值解法则是通过优化问题方式求解微分方程精确解,以达到精确求解的目的。
偏微分方程数值解法的有效解决的方法,给科学与技术研究带来了很大的帮助。
它不但克服了无法精确解决某些复杂偏微分方程的困难,而且有更快的求解效率,也可以很好地满足实际科技应用的需要。
偏微分方程数值解法的应用已经普遍发挥出重要的作用,不仅可以解决物理科学问题,还可以解决经济学、商业投资、财务分析等复杂的数学模型。
因此,偏微分方程数值解法的应用已在各个领域得到了广泛的应用,为科学与技术研究提供了很大的帮助,在微分方程求解方面产生了重要的影响。
偏微分方程组数值解法
偏微分方程组是描述自然、科学和工程问题的重要数学工具。
由于解析解通常难以获得,因此需要使用数值方法来解决这些方程组。
本文将介绍偏微分方程组的一些数值解法,包括有限差分法、有限元法、谱方法和边界元法等。
有限差分法是一种基本的数值方法,将偏微分方程转化为差分方程,然后使用迭代算法求解。
该方法易于理解和实现,但对网格的选择和精度的控制要求较高。
有限元法是目前广泛使用的数值方法之一,它将偏微分方程转化为变分问题,并通过对函数空间的逼近来求解。
该方法对复杂几何形状和非线性问题有很好的适应性,但需要对网格进行精细的划分,计算量较大。
谱方法是一种高精度的数值方法,它将偏微分方程转化为特征值问题,并使用级数逼近来求解。
该方法在高精度求解、解析性质研究和数值计算效率方面具有优势,但需要对函数的光滑性和周期性有较高的要求。
边界元法是一种基于边界积分方程的数值方法,它将偏微分方程转化为边界积分方程,并使用离散化方法求解。
该方法适用于求解边界问题和无穷域问题,但对边界的光滑性和边界积分算子的性质有较高的要求。
总之,在实际问题中选择合适的数值方法需要综合考虑问题的性质、计算资源、精度要求等因素。
第七章 偏微分方程数值解法——Crank-Nicolson 格式****(学号) *****(姓名)上机题目要求见教材P346,10题。
一、算法原理本文研究下列定解问题(抛物型方程)22(,) (0,0)(,0)() (0)(0,)(), (1,)() (0)u ua f x t x l t T t x u x x x l u t t u t t t T ϕαβ⎧∂∂-=<<≤≤⎪∂∂⎪=≤≤⎨⎪==<≤⎪⎩(1)的有限差分法,其中a 为正常数,,,,f ϕαβ为已知函数,且满足边界条件和初始条件。
关于式(1)的求解,采用离散化方法,剖分网格,构造差分格式。
其中,网格剖分是将区域{}0,0D x l t T =≤≤≤≤用两簇平行直线(0)(0)i k x x ih i M t t k k N τ==≤≤⎧⎨==≤≤⎩ 分割成矩形网格,其中,l Th M Nτ==分别为空间步长和时间步长。
将式(1)中的偏导数使用不同的差商代替,将得到不同的差分格式,如古典显格式、古典隐格式、Crank-Nicolson 格式等。
其中,Crank-Nicolson 格式具有更高的收敛阶数,应用更广泛,故本文采用Crank-Nicolson 格式求解抛物型方程。
Crank-Nicolson 格式推导:在节点(,)2i k x t τ+处考虑式(1),有22(,)(,)(,)222i k i k i k u u x t a x t f x t t x τττ∂∂+-+=+∂∂ (2)对偏导数(,)2i k u x t t τ∂+∂用中心差分展开 []2311+131(,)(,)(,)(,) ()224k k i k i k i k i i k i k u ux t u x t u x t x t t t t ττηητ++∂∂+=--<<∂∂ (3) 将22(,)2i k u x t x τ∂+∂在节点(,)i k x t 和1(,)i k x t +表示为222+122224+1221(,)=(,)+(,)22 (,) ()8i k i k i k k k i i k i k u u ux t x t x t x x x ux t t x tττηη⎡⎤∂∂∂+⎢⎥∂∂∂⎣⎦∂-<<∂∂ (4)对以上两个偏导数用二阶差分展开[]2112224i+141(,)(,)2(,)(,) (,) ()12i k i k i k i k kk i k i i u x t u x t u x t u x t x hh u t x x x ξξ+-∂=-+∂∂-<<∂ (5)[]211111122241i+141(,)(,)2(,)(,) (,) ()12i k i k i k i k k ki k i i u x t u x t u x t u x t x hh u t x x xξξ++++-++∂=-+∂∂-<<∂ (6)将式(4)(5)(6)分别代入式(3),略去高阶小量,用k i u 代替(,)i k u x t 并化简得()()()2111111112122,22k k k k k k k k i i i i i i i i i k a u u u u u u u u f x t h ττ+++++-+-⎛⎫⎡⎤---++-+=+ ⎪⎣⎦⎝⎭ (7) 令2/r a h τ=,将式(7)联合式(1)初始条件和边界条件,用矩阵的形式表示为:11112212211111221122221122221122 k k k k k kM M k k M M r r r r u u r r r r r ru u r r r r u u r r u u r r r r +++--+--⎡⎤⎡⎤+---⎢⎥⎢⎥⎢⎥⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥-+--⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-+--⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎢⎥⎢⎥-+-⎢⎥⎢⎥⎣⎦⎣⎦()()()()()()112211,22,2 ,2,22k k k k M k M k k k r f x t t t f x t f x t r f x t t t ττααττττττββ+--+⎡⎤⎛⎫+++ ⎪⎢⎥⎝⎭⎢⎥⎢⎥⎛⎫+ ⎪⎢⎥⎝⎭⎢⎥+⎢⎥⎢⎥⎛⎫⎢⎥+ ⎪⎢⎥⎝⎭⎢⎥⎛⎫⎢⎥+++ ⎪⎢⎥⎝⎭⎣⎦(8) Crank-Nicolson 格式的截断误差为22()R O h τ=+,具有较高的精度。
偏微分方程数值解法偏微分方程(Partial Differential Equations,简称PDE)是数学中重要的研究对象,其在物理学、工程学、经济学等领域有广泛的应用。
然而,对于大多数偏微分方程而言,很难通过解析方法得到精确解,因此需要借助数值解法来求解。
本文将介绍几种常见的偏微分方程数值解法。
一、有限差分法(Finite Difference Method)有限差分法是一种常见且直观的偏微分方程数值解法。
其基本思想是将偏微分方程中的导数通过差分近似来表示,然后通过离散化的方式转化为代数方程组进行求解。
对于一维偏微分方程,可以通过将空间坐标离散化成一系列有限的格点,并使用中心差分格式来近似原方程中的导数项。
然后,将时间坐标离散化,利用差分格式逐步计算每个时间步的解。
最后,通过迭代计算所有时间步,可以得到整个时间域上的解。
对于二维或高维的偏微分方程,可以将空间坐标进行多重离散化,利用多维的中心差分格式进行近似,然后通过迭代计算得到整个空间域上的解。
二、有限元法(Finite Element Method)有限元法是另一种重要的偏微分方程数值解法。
其基本思想是将求解区域分割成有限数量的子区域(单元),然后通过求解子区域上的局部问题来逼近整个求解区域上的解。
在有限元法中,首先选择适当的形状函数,在每个单元上构建近似函数空间。
然后,通过构建变分问题,将原偏微分方程转化为一系列代数方程。
最后,通过求解这些代数方程,可以得到整个求解区域上的解。
有限元法适用于各种复杂的边界条件和几何构型,因此在实际工程问题中被广泛应用。
三、谱方法(Spectral Methods)谱方法是一种基于特定基函数(如切比雪夫多项式、勒让德多项式等)展开解的偏微分方程数值解法。
与有限差分法和有限元法不同,谱方法在整个求解区域上都具有高精度和快速收敛的特性。
在谱方法中,通过选择适当的基函数,并利用其正交性质,可以将解在整个求解区域上展开为基函数系数的线性组合。
偏微分方程的数值解法偏微分方程(Partial Differential Equation,PDE)是描述物理、化学、工程学等许多科学领域中变化的方程。
由于PDE的求解通常是困难的,因此需要使用数值方法。
本文将介绍偏微分方程的数值解法。
一般来说,求解PDE需要求得其解析解。
然而,对于复杂的PDE,往往不存在解析解,因此需要使用数值解法求解。
数值解法可以分为两类:有限差分法和有限元法。
有限差分法是将计算区域分成网格,利用差分公式将PDE转化为离散方程组,然后使用解线性方程组的方法求解。
有限元法则是将计算区域分成有限数量的单元,每个单元内使用多项式函数逼近PDE的解,在单元之间匹配边界条件,得到整个区域上的逼近解。
首先讨论有限差分法。
常见的差分公式包括前向差分、后向差分、中心差分等。
以一维热传导方程为例,其偏微分方程形式为:$$ \frac{\partial u}{\partial t}=\frac{\partial^2 u}{\partial x^2} $$其中,$u(x,t)$表示物理量在时刻$t$和位置$x$处的值。
将其离散化,可得到:$$ \frac{u(x_i,t_{j+1})-u(x_i,t_j)}{\Delta t}=\frac{u(x_{i+1},t_j)-2u(x_i,t_j)+u(x_{i-1},t_j)}{\Delta x^2} $$其中,$x_i=i\Delta x$,$t_j=j\Delta t$,$\Delta x$和$\Delta t$分别表示$x$和$t$上的网格大小。
该差分方程可以通过简单的代数操作化为:$$ u_{i,j+1}=u_{i,j}+\frac{\Delta t}{\Delta x^2}(u_{i+1,j}-2u_{i,j}+u_{i-1,j}) $$其中,$u_{i,j}$表示在网格点$(x_i,t_j)$处的数值解。
由于差分方程中一阶导数的差分公式只具有一阶精度,因此需要使用两个网格点来逼近一阶导数。
偏微分方程数值求解方法引言偏微分方程是数学中研究复杂现象的重要工具之一,它在许多领域都有广泛的应用,例如物理学、工程学和生物学等。
通过求解偏微分方程,我们可以获得系统的解析解或数值解,从而揭示底层的物理规律或实现工程设计。
在本文中,我们将介绍偏微分方程数值求解的常见方法,包括有限差分法、有限元法和谱方法等。
我们将详细介绍这些方法的基本原理、数值算法和实际应用。
有限差分法基本原理有限差分法是偏微分方程数值求解中最常用的方法之一。
它将连续的偏微分方程离散化为差分方程,通过计算差分方程的解来近似原方程的解。
有限差分法的基本思想是将求解域划分为离散的网格,然后在网格点上近似表示原方程。
数值算法有限差分法的数值算法主要包括离散化、边界条件处理和迭代求解三个步骤。
首先,我们将连续的偏微分方程在空间和时间上进行离散化,将其转化为差分方程。
然后,我们需要确定边界条件,即在边界上如何近似表示原方程。
最后,通过迭代计算差分方程的解,直到满足收敛条件。
实际应用有限差分法在许多领域都有广泛的应用。
例如,在流体力学中,它可以用来模拟气体或液体的流动。
在热传导方程中,它可以用来求解物体的温度分布。
此外,有限差分法还可以用来模拟结构力学中的弹性变形和振动问题等。
有限元法基本原理有限元法是一种基于分片线性函数空间的数值方法,用于求解偏微分方程。
它将求解域划分为离散的小单元,然后在每个单元上构造局部基函数,通过组合这些基函数来近似表示原方程的解。
数值算法有限元法的数值算法主要包括离散化、单元刚度矩阵的计算和全局方程的组装三个步骤。
首先,我们将连续的偏微分方程在空间上进行离散化,将其转化为离散的代数方程。
然后,针对每个单元,我们需要计算其对应的刚度矩阵和载荷向量。
最后,通过组装所有单元的刚度矩阵和载荷向量,得到全局方程,并通过求解全局方程来计算原方程的近似解。
实际应用有限元法在结构力学、固体力学和流体力学等领域有广泛的应用。
例如,在结构力学中,它可以用来计算材料的应力和变形分布。
偏微分数值解法
偏微分数值解法是一种用数值方法处理区域内的偏微分方程的技术。
这种方法广泛应用于物理学、工程学、数学和计算机科学等领域。
偏微分方程是一类描述空间变量和时间变量之间关系的方程。
其中,偏微分方程包含多个独立变量,且每个变量都与其他变量相关联。
因此,解决偏微分方程需要在空间中求解方程,而非在时间轴上。
数值解法通过将偏微分方程的解转换为离散的数值解,使得计算机可以运算,从而解决偏微分方程。
这个过程中,空间域网格化和时间域离散化是至关重要的。
具体来说,偏微分数值解法可以通过以下步骤实现:
1.将所研究问题的空间区域网格化。
2.确定方程的边界条件和初值条件。
3.将偏微分方程转换为差分方程。
4.利用数值方法求解差分方程。
5.通过比较数值解和解析解,评估数值解的准确性。
6.可视化数值解,将结果呈现出来。
偏微分数值解法中的一个重要技术是有限差分法(FD法)。
FD法通过近似微分算子的方法,将一个偏微分方程转化为一个差分方程。
这种方法将矢量函数转换为数字表格中的数值,并对数值进行操作。
通过操作这些数字,FD法计算系统中每个节点的准确解。
另一个常见的偏微分数值解法是有限元方法(FEM)。
它基于物理量在连续媒质中的变分原理,将媒质分解为小的空间单元。
通过将媒质问题分解成更简单的问题,FEM可以通过计算单元之间的相互作用,求得整个媒质的解。
第七章 偏微分方程数值解法——Crank-Nicolson 格式****(学号) *****(姓名)上机题目要求见教材P346,10题。
一、算法原理本文研究下列定解问题(抛物型方程)22(,) (0,0)(,0)() (0)(0,)(), (1,)() (0)u ua f x t x l t T t x u x x x l u t t u t t t T ϕαβ⎧∂∂-=<<≤≤⎪∂∂⎪=≤≤⎨⎪==<≤⎪⎩(1)的有限差分法,其中a 为正常数,,,,f ϕαβ为已知函数,且满足边界条件和初始条件。
关于式(1)的求解,采用离散化方法,剖分网格,构造差分格式。
其中,网格剖分是将区域{}0,0D x l t T =≤≤≤≤用两簇平行直线(0)(0)i k x x ih i M t t k k N τ==≤≤⎧⎨==≤≤⎩ 分割成矩形网格,其中,l Th M Nτ==分别为空间步长和时间步长。
将式(1)中的偏导数使用不同的差商代替,将得到不同的差分格式,如古典显格式、古典隐格式、Crank-Nicolson 格式等。
其中,Crank-Nicolson 格式具有更高的收敛阶数,应用更广泛,故本文采用Crank-Nicolson 格式求解抛物型方程。
Crank-Nicolson 格式推导:在节点(,)2i k x t τ+处考虑式(1),有22(,)(,)(,)222i k i k i k u u x t a x t f x t t x τττ∂∂+-+=+∂∂ (2)对偏导数(,)2i k u x t t τ∂+∂用中心差分展开 []2311+131(,)(,)(,)(,) ()224k k i k i k i k i i k i k u ux t u x t u x t x t t t t ττηητ++∂∂+=--<<∂∂ (3) 将22(,)2i k u x t x τ∂+∂在节点(,)i k x t 和1(,)i k x t +表示为222+122224+1221(,)=(,)+(,)22 (,) ()8i k i k i k k k i i k i k u u ux t x t x t x x x ux t t x tττηη⎡⎤∂∂∂+⎢⎥∂∂∂⎣⎦∂-<<∂∂ (4)对以上两个偏导数用二阶差分展开[]2112224i+141(,)(,)2(,)(,) (,) ()12i k i k i k i k kk i k i i u x t u x t u x t u x t x hh u t x x x ξξ+-∂=-+∂∂-<<∂ (5)[]211111122241i+141(,)(,)2(,)(,) (,) ()12i k i k i k i k k ki k i i u x t u x t u x t u x t x hh u t x x xξξ++++-++∂=-+∂∂-<<∂ (6)将式(4)(5)(6)分别代入式(3),略去高阶小量,用k i u 代替(,)i k u x t 并化简得()()()2111111112122,22k k k k k k k k i i i i i i i i i k a u u u u u u u u f x t h ττ+++++-+-⎛⎫⎡⎤---++-+=+ ⎪⎣⎦⎝⎭ (7) 令2/r a h τ=,将式(7)联合式(1)初始条件和边界条件,用矩阵的形式表示为:11112212211111221122221122221122 k k k k k kM M k k M M r r r r u u r r r r r ru u r r r r u u r r u u r r r r +++--+--⎡⎤⎡⎤+---⎢⎥⎢⎥⎢⎥⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥-+--⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-+--⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎢⎥⎢⎥-+-⎢⎥⎢⎥⎣⎦⎣⎦()()()()()()112211,22,2 ,2,22k k k k M k M k k k r f x t t t f x t f x t r f x t t t ττααττττττββ+--+⎡⎤⎛⎫+++ ⎪⎢⎥⎝⎭⎢⎥⎢⎥⎛⎫+ ⎪⎢⎥⎝⎭⎢⎥+⎢⎥⎢⎥⎛⎫⎢⎥+ ⎪⎢⎥⎝⎭⎢⎥⎛⎫⎢⎥+++ ⎪⎢⎥⎝⎭⎣⎦(8) Crank-Nicolson 格式的截断误差为22()R O h τ=+,具有较高的精度。
二、计算代码Crank_Nicolson 格式完整代码function U=Crank_Nicolson(f,a,x0,xn,dx,t0,tm,dt,g,s0,sn) %采用Crank_Nicolson 格式求解抛物线型偏微分方程 % du/dt-a*d2u/dx2=f(x,t) %Input - f 抛物方程右端函数 % - a 为二阶导系数 % - x0 and xn 空间域端点 % - t0 and tm 时间域端点 % - dx 为空间步长,dt 为时间步长 % - g 为初始条件函数 % - s0,sn 为边界条件函数%Output - U 输出,横坐标为空间,纵坐标为时间 M=(tm-t0)/dt;N=(xn-x0)/dx;%网格数 x=x0+dx:dx:xn-dx; t=t0:dt:tm; u=feval(g,x);u=u'; r=a*dt/dx/dx;%步长比%Crank-Nicolson 格式:A*u_(k+1)=B*u_k+CA=-r/2*[zeros(1,N-1);eye(N-2,N-2),zeros(N-2,1)]-r/2* ...[zeros(N-2,1),eye(N-2,N-2);zeros(1,N-1)]+(1+r)*eye(N-1,N-1); A=inv(A);B=r/2*[zeros(1,N-1);eye(N-2,N-2),zeros(N-2,1)]+r/2* ...[zeros(N-2,1),eye(N-2,N-2);zeros(1,N-1)]+(1-r)*eye(N-1,N-1); U=[]; for k=1:MC=dt*feval(f,x,t(k)+0.5*dt); C=C';C(1)=C(1)+r/2*(feval(s0,t(k))+feval(s0,t(k+1))); C(N-1)=C(N-1)+r/2*(feval(sn,t(k))+feval(sn,t(k+1))); u=A*(B*u+C); U=[U;u']; end三、计算结果及分析对于定解问题2210 (01,01)(,0) (01)(0,), (1,) (01)x t t u ux t t x u x e x u t e u t e t +⎧∂∂-=<<≤≤⎪∂∂⎪=≤≤⎨⎪==<≤⎪⎩(9)取空间步长1/x M ∆=,时间步长1/t N ∆=,采用Crank_Nicolson 格式计算,并将计算结果与精确值()x t y x e +=作比较,计算调用程序Crank_Nicolson.m ,如下clcformat longf=inline('0*x+0*t');%抛物方程右端函数 g=inline('exp(x)');%初始条件函数s0=inline('exp(t)');sn=inline('exp(t+1)');%边界条件函数 a=1;x0=0;xn=1;t0=0;tm=1; M=40;N=40; err=[]; kk=4; for ii=1:kkdx=1/N;dt=(tm-t0)/M;%空间步长,时间步长U=Crank_Nicolson(f,a,x0,xn,dx,t0,tm,dt,g,s0,sn);%调用Crank_Nicolson 函数 U_CN=U(length(U),N/5:N/5:4*N/5); %在四个目标点处的数值解 fu=inline('exp(x+t)'); %精确方程 xx=0.2:0.2:0.8;tt=1.0;U_real=feval(fu,xx,tt); %在四个目标点处的精确解 %abs(U_CN-U_real)err=[err,sqrt((U_CN-U_real)*(U_CN-U_real)')]; %平方误差和开方 M=M*2;N=N*2;%步长反复二分 end for ii=2:kkerr(ii)/err(ii-1)%误差观察 endfprintf('%16.15f ', err)在MATLAB 中运行以上程序,计算结果如表1所示表1 Crank_Nicolson 格式计算结果及其误差(40M N ==)从表1可以看出,在空间步长和时间步长均为0.25时,采用Crank_Nicolson 格式计算抛物线方程(5)的数值解与精确解之间的误差达到了410-,故很好的实现偏微分方程的数值解法,且具有较高的精度和较低的运算复杂度。
同时,为了比较不同的步长所带来的计算精度,本文通过将步长反复二分,观察四个输出点的误差均方和减小的规律,如表2所示。
表2 不同步长下的误差及其规律从表2可以看出,随着空间步长和时间步长的减小,数值计算的误差呈下降趋势,说明,随着时间步长和空间步长的减小,计算结果可以收敛到精确解。
同时,通过观察表2最后一列,可见,时间步长和空间步长同时减半,计算误差降低为原来的四分之一,这与Crank_Nicolson 格式的截断误差22()R O h τ=+(其中为τ时间步长,h 为空间步长)是符合一致的。
四、结论本文介绍了偏微分方程求解的Crank_Nicolson 方法,其主要思想是用离散的、只含有限个未知数的差分方程去近似代替连续变量的微分方程和边界条件,并将相应的差分方程的解作为原问题的近似解。
Crank_Nicolson 格式是一种隐格式,是绝对稳定的。
同时,本文考察了其收敛性,实验证明,Crank_Nicolson 格式是收敛的,且具有二阶收敛性。