文档库 最新最全的文档下载
当前位置:文档库 › Possion方程的差分法求解

Possion方程的差分法求解

Possion方程的差分法求解
Possion方程的差分法求解

Possion 方程的差分方法

课程名称:微分方程数值解

学生姓名:张弘

一、问题描述

二、问题分析

I.

偏微分方程的数值解法主要有有限差分法和Galerkin有限元法。用差分法和有限元法将连续问题离散化的步骤是:1、对求解区域做网格剖分用有限个网格节点代替连续区域。

2、微分算子离散化。

3、把微分方程的定解问题化为线性代数方程组的求解问题。差分法和有限元方法的主要区别是离散化的第二步,差分法从定解问题的微分或积分形式出发,

用数值微商或数值积分公式到处相应的线性代数方程组,有限元法从定解问题的变分形式出发,用Ritz-Galerkin法导出相应的线性代数方程组。

差分法的基本问题有:

(1)对求解区域做网格剖分

一维情形为把区间分为等距或不等距的区间,二维情形是把区域分割成均匀或不均匀的矩形,其边与坐标轴平行,也可分割成小三角形或凸四边形。

(2)构造逼近微分方程定解问题的差分格式

有两种构造差分格式的方法:直接差分化法和有限体积法。

(3)差分解的存在唯一性,收敛性和稳定性研究

(4)差分方程的解法:逐次超松弛法,交替方向法,共轭梯度法。

II

(1)由题目可知,本题需要考虑矩形网的五点差分格式。题目给出的为第一边值条件,将十字形图形的中心放于坐标原点处,如下图所示:

G1

S1

O

S2

由图形可知,所给区域可以看出是由8个梯形G1通过旋转、翻转拼接而成。因此为了方便计算、减少计算量,只针对G1进行网格剖分,用5点差分格式进行求解。但是由于G1是直角梯形,进行网格剖分时会出现x轴方向网格点个数不同的现象,不利于有差分形成的系数矩阵的生成,所以将三角形S1和梯形G1合在一起形成一个矩形,其区域为[0,3/2]×[0,1/2]。

如果采用等距差分,并且有hx=hy=h,设步长为h,

x=0:h:3/2;

y=0:h:1/2;

nx=length(x)-1;%为所求区域中x轴上内点的个数

ny=length(y)-1; %为所求区域中y轴上内点的个数

对于原来的梯形G1来说,有网格内点nx*ny-(ny^2-my)/2

对于矩形区域S1+G1而言,网格内点数为nx*ny,所以在后面的程序中要比在梯形G1中多计算了(ny^2-my)/2 个点的函数值,但对程序效率的影响并不是很大,可以接受。

以下具体说明只需在G1上求解poisson 方程的原因 所求方程为:

设直线l 是经过原点o 的任意一条直线,其方程为:y=kx 设p(x,y)是区域内任一点,则其关于l 对称的点为p'(s,t) S=((k-1)^2+|2y)/(k^2+1) t=(2kx+(k^2-1)y)/(k^2+1)

则1

211222

+++-=+=k k

u k k u t u s u u t s x t x s x

2

2

222

222)12()1()1(22)11(k

k u k k k u k k u u tt st ss xx +++-++-= 同理可得:

2

2

222222)11()1()1(22)12(k

k u k k k u k k u u tt st ss yy +-++-++= 将u(s,t)代替u(x,y)得: U xx +u yy =u ss +u tt =1 其依然满足上述方程。

令θ=arctan(k) 点p 的横坐标x=rcos(α)

y=rsin(α)

则p 关于直线l 的对称点为p'(rcos(2θ-α),rsin(2θ-α) 由上述证明可知u(p)=u(p')。

由θ和p 点的任意性知,对于函数u 图像上的任意一点p ,其关于任意一条经过原点直线l

的对称点p'都在u 的图像上,即u(α+δ)=u(α),即u 关于原点是旋转对称的。 当l 为x 轴时,有u(x,y)=u(x,-y) l 为y 轴时,u(x,y)=u(-x,y)

坐标轴旋转不改变方程的形式,所以函数在直角坐标系中u 关于原点是旋转对称的,又所求十字形区域关于x ,y 轴是轴对称和关于原点中心对称的,因此可通过直求解区域G1,就可以知道函数在整个十字形区域的图像。 (2)对S1+G1形成的矩形进行正方形网格剖分,则求解Poisson 方程的差分格式和化为如下形式:

对于正则内点其差分如下:

-Δu ij =1/h^2*(-u(i,j+1)-u(i-1,j)+4u(i,j)-u(i+1,j)-u(i,j-1))=f ij (1)

对于矩形区域S1+G1,nx=(xb-xa)/h-1 ny=(yb-ya)/h-1

按从左到右,从下到上的次序排列网点(ij):j=1,1≤i≤nx ;j=2,1≤i≤nx;,…;j=ny,1≤i≤nx ,定义向量

U h =[u 11,u 21…,u nx-1;…;u1,nx-1,u2,nx-1,…,u ny-1,nx-1]T

利用边界条件可以将(1)式写成如下形式:

g Au h h =2

1 其中A=??

?

??

??

?????

????------B I I B I I B I I B .........为nx*ny 阶矩阵,I 为nx 阶单位矩阵,B 为nx 阶单位矩阵。 B=??

?

????

?

???????

?------41141...

(1411)

4

右端向量g 的元素,依赖于边值a 和右端项f ,显然A 是对称正定矩阵,也是稀疏矩阵因此

可以采用逐次超松弛法,共轭梯度法和交替方向法莱求解,但为了方便程序设计采用了matlab 的‘\'运算符来求解u 。

针对本题的Poisson 方程,对S1+G1形成的矩形网格的五点差分的具体分析。 对S1+G1形成的矩形五点差分的具体分析。

红色线条围成的区域为G1,L 为红色斜边,S1为L 左侧的三角形,S2为L 右侧的三角形。 由对称性知,S1和S2中关于L 相互对称的网格点其上U 的函数值是相同的。 按从左到右,从下到上的次序排列网点(ij)。 (1)

对于三角形S1中的网点有u(i,j), ny≥i>j ≥1,有u(i,j)-u(j,i)=0 所以S1中网点的差分就为:u(i,j)-u(j,i)=0

(2)由于原点o 点的特殊性,其邻点中u(1,2)=u(1,-1)=u(-1,1)=u(2,1) 所以其差分为:u(1,1)-4u(1,2)= h^2*f(i,j) 程序中语句:

A(1:nx,nx+1:2*nx)=2*I; 和A(1,2)=-2; 保障了上面差分方程的系数。

(3)对于网格上最下面一行上除了原点o 的所有正则网格内点,由对称性得u(1,i)的邻点中 u(1,i-1)=u(1,i+1)

所以其差分为:4u(i,j)-u(i-1,j)-u(i+1,j)-2*u(i,j+1)=h^2*f(i,j) 对于右下角的非正则内点u(1,nx)

其差分为:4u(i,j)-u(i-1,j)-2*u(i,j+1)=h^2*f(i,j) 程序中的相关语句为:

A(1:nx,nx+1:2*nx)=2*I; A(nx+1:2*nx,nx+1:2*nx)=B;

(4)对于G1中的所有正则内点,其差分为:

4u(i,j)-u(i-1,j)-u(i+1,j)-u(i,j-1)-u(i,j+1)=h^2*f(i,j) 程序中相关语句:

A(i*nx+1:(i+1)*nx,i*nx+1:(i+1)*nx)=B; A((i-1)*nx+1:i*nx,i*nx+1:(i+1)*nx)=I; A(i*nx+1:(i+1)*nx,(i-1)*nx+1:i*nx)=I;

(5)对于网格最后一列的所有非正则内点u(:,nx),其差分为:

ny+1 ny (3)

2 1

1 2 3 4 … i …

…… nx -1 nx nx+1

G1 S2 S1 1/2

O

3/2

1/2

4u(nx,j)-u(nx,j-1)-u(nx,j+1)-u(nx-1,j)=h^2*f(i,j)

(6)在求出了所有的内点后,对于剩下的边界点赋值有:

U(ny+1,ny+1:nx)=0%最上面一行上的边界点

U(1:ny+1,nx+1)=0%最右侧一列的边界点

u(ny+1,1:ny)=u(1:ny,ny+1);%三角形S1和S2边界上的网点,它们是S1的边界点,但是整个求解区域的内点。

三、程序设计及分析

function poisson5spot(h)

if nargin<1 %默认步长h=0.02

h=0.02;

end

x=0:h:3/2;

y=0:h:1/2;

nx=length(x)-1;%取区域的内点

ny=length(y)-1;

%===========构造矩阵B==========

B=eye(nx,nx)*4;

for i=1:nx-1

B(i,i+1)=-1;

end

for i=2:nx

B(i,i-1)=-1;

end

I=-eye(nx,nx);

%===========构造系数矩阵A========

A=zeros(nx*ny,nx*ny);

A(1:nx,1:nx)=B;

%由区域的对称性,正方形网格最下面一行的差分形式

%改为4u(i,j)-u(i-1,j)-u(i+1,j)-2*u(i,j+1)

%因为u(i,j+1)=u(i,j-1)

A(1:nx,nx+1:2*nx)=2*I;

A(nx+1:2*nx,nx+1:2*nx)=B;

%矩形网格左下角第一个点的差分形式改为:

%4u(i,j)-u(i-1,j)-u(i+1,j)-u(i,j+1)-u(i,j-1)

%=4u(i,j)-2u(i,j+1)-2u(i+1,j)

A(1,2)=-2;

%为了方便,本程序往梯形中增加了一个三角形,以方便编程

A(nx+1:2*nx,1:nx)=I;

for i=2:ny-1

A(i*nx+1:(i+1)*nx,i*nx+1:(i+1)*nx)=B;

A((i-1)*nx+1:i*nx,i*nx+1:(i+1)*nx)=I;

A(i*nx+1:(i+1)*nx,(i-1)*nx+1:i*nx)=I;

end

%==========================

%bi=h*h*f;右端向量

b=h*h*ones(nx*ny,1);

%由于对称性,左侧三角形中有u(i,j)-u(j,i)=0 i>j

%因此令A(i,j)=1 A(j,i)=-1

%所以在本程序中多计算了(ny^2-my)/2 个点的函数值

%但对程序的影响并不是很大

for i=2:ny

A((i-1)*nx+1:(i-1)*nx+i-1,:)=0;

for j=1:i-1

A((i-1)*nx+j,(i-1)*nx+j)=1;

A((i-1)*nx+j,(j-1)*nx+i)=-1;

b((i-1)*nx+j)=0;

end

end

x=A\b;%为了方便采用左除求解网格点上的函数值

%x=gmres(A,b,100);

%按顺序将x赋值给u

u=zeros(ny+1,nx+1);

for i=1:ny

for j=1:nx

u(i,j)=x((i-1)*nx+j);

end

end

%根据对称性,给网格最上面一行的点赋值

u(ny+1,1:ny)=u(1:ny,ny+1);

%=============作Poisson方程在区域上的图形=========== [x,y]=meshgrid(0:h:3/2,0:h:1/2);

hold on

surf(x,y,u)%11第一象限的第一块区域,下面的以此类推

surf(y,x,u)%12

surf(-y,x,u)%21

surf(-x,y,u);%22

surf(-x,-y,u)%31

surf(-y,-x,u)%32

surf(y,-x,u)%41

surf(x,-y,u);%42

四、实验结果

1.在区域G1上求解后的图形显示:

图形表示了在S1+G1区域上的函数图像,而不是单纯的G1上的函数图像。2通过拼接后图形显示如下:

由上图可知,除了边界点外网格点上的函数值都有u(i,j)>0.

L h u ij>0,对任意(xi,yj)∈G h,u ij不可能在内点取得负的极小,与极值定理相符合。

3、翻转后图形如下:

4 网格间距h=0.01时得到的图形:

五、实验分析

本次实验将求解区域先利用对称性将其缩小为原区域的1/8,又为了方便系数矩阵的选

取给G1添加了三角形S1,减少了运算量。

在实验中通过更改h,发现当h=0.01时,使用matlab的‘\‘符号来求解,会发生内存溢出的现象,因此此时系数矩阵A为500*1500=750000,但是如果采用稳定双共轭梯度法bicgstab和预条件的再开始gmres算法则可以继续求解。

6、参考文献

[1]李荣华,刘播.微分方程数值方法.

[2]胡建伟,汤怀民,微分方程的数值方法.

(完整版)大连理工大学高等数值分析抛物型方程有限差分法

抛物型方程有限差分法 1. 简单差分法 考虑一维模型热传导方程 (1.1) )(22x f x u a t u +??=??,T t ≤<0 其中a 为常数。)(x f 是给定的连续函数。(1.1)的定解问题分两类: 第一,初值问题(Cauchy 问题):求足够光滑的函数()t x u ,,满足方程(1.1)和初始条件: (1.2) ()()x x u ?=0,, ∞<<∞-x 第二,初边值问题(也称混合问题):求足够光滑的函数()t x u ,,满足方程(1.1)和初始条件: ()13.1 ()()x x u ?=0,, l x l <<- 及边值条件 ()23.1 ()()0,,0==t l u t u , T t ≤≤0 假定()x f 和()x ?在相应的区域光滑,并且于()0,0,()0,l 两点满足相容条件,则上述问题有唯一的充分光滑的解。

现在考虑边值问题(1.1),(1.3)的差分逼近 取 N l h = 为空间步长,M T = τ为时间步长,其中N ,M 是 自然数, jh x x j ==, ()N j ,,1,0Λ=; τ k y y k ==, ()M k ,,1,0Λ= 将矩形域G {}T t l x ≤≤≤≤=0;0分割成矩形网格。其中 ()j i y x ,表 示网格节点; h G 表示网格内点(位于开矩形G 中的网格节点)的集合; h G 表示位于闭矩形G 中的网格节点的集合; h Γ表示h G -h G 网格边界点的集合。 k j u 表示定义在网点()k i t x ,处的待求近似解,N j ≤≤0,M k ≤≤0。 注意到在节点()k i t x ,处的微商和差商之间的下列关系 ((,)k j k j u u x t t t ????≡ ? ????): ()() ()ττ O t u t x u t x u k j k j k j +??? ????=-+,,1 ()() ()2112,,ττ O t u t x u t x u k j k j k j +??? ????=--+ ()()()h O x u h t x u t x u k j k j k j +??? ????=-+,,1 ()() ()h O x u h t x u t x u k j k j k j +??? ????=--,,1 ()() ()2112,,h O x u h t x u t x u k j k j k j +??? ????=--+ ()()() ()2 222 11,,2,h O x u h t x u t x u t x u k j k j k j k j +???? ????=+--+ 可得到以下几种最简差分格式

差分法求解偏微分方程MAAB

南京理工大学 课程考核论文 课程名称:高等数值分析 论文题目:有限差分法求解偏微分方程 姓名:罗晨 学号: 成绩: 有限差分法求解偏微分方程 一、主要内容 1.有限差分法求解偏微分方程,偏微分方程如一般形式的一维抛物线型方程:具体求解的偏微分方程如下: 2.推导五种差分格式、截断误差并分析其稳定性; 3.编写MATLAB程序实现五种差分格式对偏微分方程的求解及误差分析;

4.结论及完成本次实验报告的感想。 二、推导几种差分格式的过程: 有限差分法(finite-differencemethods )是一种数值方法通过有限个微分方程近似求导从而寻求微分方程的近似解。有限差分法的基本思想是把连续的定解区域用有限个离散点构成的网格来代替;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。 推导差分方程的过程中需要用到的泰勒展开公式如下: ()2100000000()()()()()()()......()(()) 1!2!! n n n f x f x f x f x f x x x x x x x o x x n +'''=+-+-++-+-(2-1) 求解区域的网格划分步长参数如下: 11k k k k t t x x h τ ++-=?? -=?(2-2) 2.1古典显格式 2.1.1古典显格式的推导 由泰勒展开公式将(,)u x t 对时间展开得 2,(,)(,)( )()(())i i k i k k k u u x t u x t t t o t t t ?=+-+-?(2-3) 当1k t t +=时有 21,112,(,)(,)( )()(())(,)()() i k i k i k k k k k i k i k u u x t u x t t t o t t t u u x t o t ττ+++?=+-+-??=+?+?(2-4) 得到对时间的一阶偏导数 1,(,)(,)()=()i k i k i k u x t u x t u o t ττ+-?+?(2-5) 由泰勒展开公式将(,)u x t 对位置展开得 223,,21(,)(,)()()()()(())2!k i k i k i i k i i u u u x t u x t x x x x o x x x x ??=+-+-+-??(2-6) 当11i i x x x x +-==和时,代入式(2-6)得

扩散方程的差分解法

扩散方程的差分解法 在研究热传导过程、扩散过程、边界层现象时,我们常常遇到抛物型方程,这类方程中最典型、最简单的就是热传导方程。热传导方程中的自变量中包括时间t ,它是描述一种随时间变化的物理过程,即所谓不定常现象。这类问题的基本定解问题应是初值问题,即在初始时刻(t=0)时给定定解条件,求解t>0时的解。 本文主要运用有限差分法对一维扩散方程进行求解,并对差分解的适定性、相容性、收敛性及稳定性进行分析,同时与解析解进行对比。 1.扩散方程 一维扩散方程为: 22u u t x α??=?? (1) 式中,u 为因知量,α为扩散系数,x 为坐标,t 为时间。 其定解条件如下: 初始条件: (,0)() 0x u x f x L =≤≤ (2) 边界条件: 12(0,)() , (,)()u t f t u L t f t == (3) 一般假定函数()f x ,1()f t ,2()f t 满足连接条件,即1(0)(0) f f =,2()(0) f L f =。 2.有限差分法 有限差分法是数值计算解微分方程古老的方法之一,也是系统化地、数值地求解数学物理方法的方程。其控制方程中的导数用离散点上函数值的差商代替。 差分格式可以分为显格式和隐格式。所谓显格式是指在任一结点上因变量在新是时间层上的值可以通过之前的时间层上相邻结点变量的值显式解出来。由于这些层的变量值是已知的,当时间向前推进时,空间点上的新的变量值就只需逐点计算就行了,因此显格式计算起来比较省事。隐格式则是指任一结点上变量在新的时间层的值,不能通过之前的时间层上相邻结点的值显式解出来,它不仅与之前的时间层上的已知值有关,而且也与新时间层的相邻结点的变量值有关。因而一个差分方程常常包括几个相邻结点上的未知数,未知数的个数取决于格式的构成形式。为了解出这些未知数需要联立新的方程,而每引进一个新的方程往往又同时引进了新的未知数。因此,隐格式总是伴随着求解巨大的代数方程组。隐格式的主要缺点是计算工作量大,因而不如显格式计算得快,但这只是就时间步长一样的情况而言的。隐格式的主要优点是时间步长可以比显格式能够采用的最大步长大很多。显格式的时间步长受到稳定性条件的限制,而隐格式则几乎不受限制。 3.方程的离散 3.1 显格式 采用时间前差及第n 时间层的空间中心差,得一维扩散方程的显格式解: 111 2 2()n n n n n j j j j j u u u u u t x α ++---+=?? (4) 即 111(2) n n n n n j j j j j u u r u u u ++-=+-+ (5)

【毕业设计(论文)】二维热传导方程有限差分法的MATLAB实现

第1章前言 1.1问题背景 在史策教授的《一维热传导方程有限差分法的MATLAB实现》和曹刚教授的《一维偏微分方程的基本解》中,对偏微分方程的解得MATLAB实现问题进行过研究,但只停留在一维中,而实际中二维和三维的应用更加广泛。诸如粒子扩散或神经细胞的动作电位。也可以作为某些金融现象的模型,诸如布莱克-斯科尔斯模型与Ornstein-uhlenbeck过程。热方程及其非线性的推广形式也被应用与影响分析。 在科学和技术发展过程中,科学的理论和科学的实验一直是两种重要的科学方法和手段。虽然这两种科学方法都有十分重要的作用,但是一些研究对象往往由于他们的特性(例如太大或太小,太快或太慢)不能精确的用理论描述或用实验手段来实现。自从计算机出现和发展以来,模拟那些不容易观察到的现象,得到实际应用所需要的数值结果,解释各种现象的规律和基本性质。 科学计算在各门自然科学和技术科学与工程科学中其越来越大的作用,在很多重要领域中成为不可缺少的重要工具。而科学与工程计算中最重要的内容就是求解科学研究和工程技术中出现的各种各样的偏微分方程或方程组。 解偏微分方程已经成为科学与工程计算的核心内容,包括一些大型的计算和很多已经成为常规的计算。为什么它在当代能发挥这样大的作用呢?第一是计算机本身有了很大的发展;第二是数值求解方程的计算法有了很大的发展,这两者对人们计算能力的发展都是十分重要的。 1.2问题现状 近三十年来,解偏微分方程的理论和方法有了很大的发展,而且在各个学科技术的领域中应用也愈来愈广泛,在我国,偏微分方程数值解法作为一门课程,不但在计算数学专业,而且也在其他理工科专业的研究生的大学生中开设。同时,求解热传导方程的数值算法也取得巨大进展,特别是有限差分法方面,此算法的特点是在内边界处设计不同于整体的格式,将全局的隐式计算化为局部的分段隐式计算。而且精度上更好。 目前,在欧美各国MATLAB的使用十分普及。在大学的数学、工程和科学系科,MATLAB

第十章-偏微分方程数值解法

第十章 偏微分方程数值解法 偏微分方程问题,其求解十分困难。除少数特殊情况外,绝 大多数情况均难以求出精确解。因此,近似解法就显得更为重要。本章仅介绍求解各类典型偏微分方程定解问题的差分方法。 §1 差分方法的基本概念 1.1 几类偏微分方程的定解问题 椭圆型方程:其最典型、最简单的形式是泊松(Poisson )方程 ),(22 2 2y x f y u x u u =??+??=? 特别地,当 0),(≡y x f 时,即为拉普拉斯(Laplace )方程,又称 为调和方程 22 22 =??+??=?y u x u u Poisson 方程的第一边值问题为 ?? ?? ?Ω ?=Γ=Ω∈=??+??Γ∈),(),(),(),(),(22 22y x y x u y x y x f y u x u y x ? 其中 Ω为以Γ为边界的有界区域,Γ为分段光滑曲线, ΓΩY 称为定解区域,),(y x f ,),(y x ?分别为Ω,Γ上的已知连 续函数。 第二类和第三类边界条件可统一表示为

),(),(y x u u y x ?α=??? ? ??+??Γ∈n 其中n 为边界Γ的外法线方向。当0=α时为第二类边界条件, 0≠α时为第三类边界条件。 抛物型方程:其最简单的形式为一维热传导方程 2 20(0)u u a a t x ??-=>?? 方程可以有两种不同类型的定解问题: 初值问题 ?? ???+∞ <<∞-=+∞<<-∞>=??-??x x x u x t x u a t u )()0,(,00 22 ? 初边值问题 2 212 00,0(,0)()0(0,)(),(,)()0u u a t T x l t x u x x x l u t g t u l t g t t T ????-=<<<

常微分方程和偏微分方程的数值解法教学大纲

上海交通大学致远学院 《常微分方程和偏微分方程的数值解法》教学大纲 一、课程基本信息 课程名称(中文):常微分方程和偏微分方程的数值解法 课程名称(英文):Numerical Methods for Ordinary and Partial Differential Equations 课程代码:MA300 学分 / 学时:4学分 / 68学时 适用专业:致远学院与数学系相关专业 先修课程:偏微分方程,数值分析 后续课程:相关课程 开课单位:理学院数学系计算与运筹教研室 Office hours: 每周二19:00—21:00,地点:数学楼1204 二、课程性质和任务 本课程是致远学院和数学系应用数学和计算数学方向的一门重要专业基础课程,其主要任务是通过数学建模、算法设计、理论分析和上机实算“四位一体”的教学方法,使学生掌握常微分方程与偏微分方程数值解的基本方法、基本原理和基本理论,进一步提升同学们利用计算机解决实际问题的能力。在常微分方程部分,将着重介绍常微分方程初值问题的单步法,含各类Euler方法和Runge-Kutta方法,以及线性多步法。将简介常微分方程组和高阶常微分方程的数值方法。在偏微分方程部分,将系统介绍求解椭圆、双曲、抛物型方程的差分方法的构造方法和理论分析技巧,对于椭圆型方程的边值问题将介绍相应变分原理与有限元方法。将在课堂上实时演示讲授的核心算法的计算效果,以强调其直观效果与应用性。本课程重视实践环节建设,学生要做一定数量的大作业。 三、教学内容和基本要求 第一部分:常微分方程数值解法 1 引论 1.1回顾:一阶常微分方程初值问题及解的存在唯一性定理

【文献综述】热传导方程差分格式的收敛性和稳定性

文献综述 信息与计算科学 热传导方程差分格式的收敛性和稳定性在实际研究物理问题过程中, 往往能给出问题相应的数学表达式, 但是由于实际物理问题的复杂性, 它的解却一般不容易求出. 由此计算物理应运而生, 计算物理是以计算机为工具, 应用数学的方法解决物理问题的一门应用性学科, 是物理、数学和计算机三者结合的交叉性学科. 它产生于二战期间美国对核武器的研究, 伴随着计算机的发展而发展. 计算物理的目的不仅仅是计算, 而是要通过计算来解释和发现新的物理规律. 这一点它与传统的实验物理和理论物理并无差别, 所不同的只是使用的工具和方法. 计算物理早已与实验物理和理论物理形成三足鼎立之势, 甚至有人提出它将成为现代物理大厦的“栋梁”. 在一个物理问题中一个数值解往往比一个式子更直观, 更有价值. 在实际求解方程时, 除了一些特殊的情况下可以方便地求得其精确解外, 在一般情况下, 当方程或定解条件具有比较复杂的形式, 或求解区域具有比较复杂的形状时, 往往求不到, 或不易求到其精确解. 这就需要我们去寻找方程的近似解, 特别是数值近似解, 简称数值解. 这里主要研究的是热传导方程. 有限差分法是微分方程和积分微分方程数值解的方法. 其基本思想是把连续的定解区域用有限个离散点构成的网格来代替, 这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似, 积分用积分和来近似, 于是原微分方程和定解条件就近似地代之以代数方程组, 即有限差分方程组, 解此方程组就可以得到原问题在离散点上的近似解. 然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解. 热传导的差分法是求解热传导方程的重要方法之一. 对于差分格式的的求解, 我们首先要关注差分格式的收敛性和稳定性. 对于一个微分方程建立的各种差分格式, 为了有实用意义, 一个基本要求是它们能够任意逼近微分方程, 即相容性要求. 一个差分格式是否有用, 就要看差分方程的精确解能否任意逼近微分方程的解, 即收敛性的概念. 此外, 还有一个重要的概念必须考虑, 即差分格式的稳定性. 因为差分格式的计

一维导热方程 有限差分法 matlab实现

第五次作业(前三题写在作业纸上) 一、用有限差分方法求解一维非定常热传导方程,初始条件和边界条件见说明.pdf 文件,热扩散系数α=const , 22T T t x α??=?? 1. 用Tylaor 展开法推导出FTCS 格式的差分方程 2. 讨论该方程的相容性和稳定性,并说明稳定性要求对求解差分方程的影响。 3. 说明该方程的类型和定解条件,如何在程序中实现这些定解条件。 4. 编写M 文件求解上述方程,并用适当的文字对程序做出说明。(部分由网络搜索得到,添加,修改后得到。) function rechuandaopde %以下所用数据,除了t 的范围我根据题目要求取到了20000,其余均从pdf 中得来 a=0.00001;%a 的取值 xspan=[0 1];%x 的取值范围 tspan=[0 20000];%t 的取值范围 ngrid=[100 10];%分割的份数,前面的是t 轴的,后面的是x 轴的 f=@(x)0;%初值 g1=@(t)100;%边界条件一 g2=@(t)100;%边界条件二 [T,x,t]=pdesolution(a,f,g1,g2,xspan,tspan,ngrid);%计算所调用的函数 [x,t]=meshgrid(x,t); mesh(x,t,T);%画图,并且把坐标轴名称改为x ,t ,T xlabel('x') ylabel('t') zlabel('T') T%输出温度矩阵 dt=tspan(2)/ngrid(1);%t 步长 h3000=3000/dt;

h9000=9000/dt; h15000=15000/dt;%3000,9000,15000下,温度分别在T矩阵的哪些行T3000=T(h3000,:) T9000=T(h9000,:) T15000=T(h15000,:)%输出三个时间下的温度分布 %不再对三个时间下的温度-长度曲线画图,其图像就是三维图的截面 %稳定性讨论,傅里叶级数法 dx=xspan(2)/ngrid(2);%x步长 sta=4*a*dt/(dx^2)*(sin(pi/2))^2; if sta>0,sta<2 fprintf('\n%s\n','有稳定性') else fprintf('\n%s\n','没有稳定性') error end %真实值计算 [xe,te,Te]=truesolution(a,f,g1,g2,xspan,tspan,ngrid); [xe,te]=meshgrid(xe,te); mesh(xe,te,Te);%画图,并且把坐标轴名称改为xe,te,Te xlabel('xe') ylabel('te') zlabel('Te') Te%输出温度矩阵 %误差计算 jmax=1/dx+1;%网格点数 [rms]=wuchajisuan(T,Te,jmax) rms%输出误差

有限差分法求解偏微分方程复习进程

有限差分法求解偏微 分方程

有限差分法求解偏微分方程 摘要:本文主要使用有限差分法求解计算力学中的系统数学模型,推导了有限差分法的 理论基础,并在此基础上给出了部分有限差分法求解偏微分方程的算例验证了推导的正确性及操作可行性。 关键词:计算力学,偏微分方程,有限差分法 Abstract:This dissertation mainly focuses on solving the mathematic model of computation mechanics with finite-difference method. The theoretical basis of finite-difference is derived in the second part of the dissertation, and then I use MATLAB to program the algorithms to solve some partial differential equations to confirm the correctness of the derivation and the feasibility of the method. Key words:Computation Mechanics, Partial Differential Equations, Finite-Difference Method

1 引言 机械系统设计常常需要从力学观点进行结构设计以及结构分析,而这些分析的前提就是建立工程问题的数学模型。通过对机械系统应用自然的基本定律和原理得到带有相关边界条件和初始条件的微分积分方程,这些微分积分方程构成了系统的数学模型。 求解这些数学模型的方法大致分为解析法和数值法两种,而解析法的局限性众所周知,当系统的边界条件和受载情况复杂一点,往往求不出问题的解析解或近似解。另一方面,计算机技术的发展使得计算更精确、更迅速。因此,对于绝大多数工程问题,研究其数值解法更具有实用价值。对于微分方程而言,主要分为差分法和积分法两种,本论文主要讨论差分法。 2 有限差分法理论基础 2.1 有限差分法的基本思想 当系统的数学模型建立后,我们面对的主要问题就是微分积分方程的求解。基本思想是用离散的只含有限个未知量的差分方程组去近似地代替连续变量的微分方程和定解条件,并把差分方程组的解作为微分方程定解问题的近似解。将原方程及边界条件中的微分用差分来近似,对于方程中的积分用求和或及机械求积公式来近似代替,从而把原微分积分方程和边界条件转化成差分方程组。有限差分法求解偏微分方程的步骤主要有以下几步: 区域离散,即把所给偏微分方程的求解区域细分成由有限个格点组成的网格,这些离散点称作网格的节点;

差分方程的解法分析及MATLAB实现(程序)

差分方程的解法分析及MATLAB 实现(程序) 摘自:张登奇,彭仕玉.差分方程的解法分析及其MATLAB 实现[J]. 湖南理工学院学报.2014(03) 引言 线性常系数差分方程是描述线性时不变离散时间系统的数学模型,求解差分方程是分析离散时间系统的重要内容.在《信号与系统》课程中介绍的求解方法主要有迭代法、时域经典法、双零法和变换域 法[1]. 1 迭代法 例1 已知离散系统的差分方程为)1(3 1)()2(81)1(43)(-+=-+--n x n x n y n y n y ,激励信号为)()4 3()(n u n x n =,初始状态为21)2(4)1(=-=-y y ,.求系统响应. 根据激励信号和初始状态,手工依次迭代可算出24 59)1(,25)0(==y y . 利用MATLAB 中的filter 函数实现迭代过程的m 程序如下: clc;clear;format compact; a=[1,-3/4,1/8],b=[1,1/3,0], %输入差分方程系数向量,不足补0对齐 n=0:10;xn=(3/4).^n, %输入激励信号 zx=[0,0],zy=[4,12], %输入初始状态 zi=filtic(b,a,zy,zx),%计算等效初始条件 [yn,zf]=filter(b,a,xn,zi),%迭代计算输出和后段等效初始条件 2 时域经典法 用时域经典法求解差分方程:先求齐次解;再将激励信号代入方程右端化简得自由项,根据自由项形 式求特解;然后根据边界条件求完全解[3].用时域经典法求解例1的基本步骤如下. (1)求齐次解.特征方程为081432=+-αα,可算出4 1 , 2121==αα.高阶特征根可用MATLAB 的roots 函数计算.齐次解为. 0 , )4 1()21()(21≥+=n C C n y n n h (2)求方程的特解.将)()4 3()(n u n x n =代入差分方程右端得自由项为 ?????≥?==-?+-1,)4 3(9130 ,1)1()43(31)()43(1n n n u n u n n n 当1≥n 时,特解可设为n p D n y )4 3()(=,代入差分方程求得213=D . (3)利用边界条件求完全解.当n =0时迭代求出25)0(=y ,当n ≥1时,完全解的形式为 ,)4 3(213 )41()21()(21n n n C C n y ?++=选择求完全解系数的边界条件可参考文[4]选)1(),0(-y y .根据边界条件求得35,31721=-=C C .注意完全解的表达式只适于特解成立的n 取值范围,其他点要用 )(n δ及其延迟表示,如果其值符合表达式则可合并处理.差分方程的完全解为

常微分方程边值问题的数值解法

第8章 常微分方程边值问题的数值解法 引 言 第7章介绍了求解常微分方程初值问题的常用的数值方法;本章将介绍常微分方程的边值问题的数值方法。 只含边界条件(boundary-value condition)作为定解条件的常微分方程求解问题称为常微分方程的边值问题(boundary-value problem). 为简明起见,我们以二阶边值问题为 则边值问题(8.1.1)有唯一解。 推论 若线性边值问题 ()()()()()(),, (),()y x p x y x q x y x f x a x b y a y b αβ'''=++≤≤?? ==? (8.1.2) 满足 (1) (),()p x q x 和()f x 在[,]a b 上连续; (2) 在[,]a b 上, ()0q x >, 则边值问题(8.1.1)有唯一解。 求边值问题的近似解,有三类基本方法: (1) 差分法(difference method),也就是用差商代替微分方程及边界条件中的导数,最终化为代数方程求解; (2) 有限元法(finite element method);

(3) 把边值问题转化为初值问题,然后用求初值问题的方法求解。 差分法 8.2.1 一类特殊类型二阶线性常微分方程的边值问题的差分法 设二阶线性常微分方程的边值问题为 (8.2.1)(8.2.2) ()()()(),,(),(), y x q x y x f x a x b y a y b αβ''-=<

第九章 偏微分方程差分方法

170 第9章 偏微分方程的差分方法 含有偏导数的微分方程称为偏微分方程。由于变量的增多和区域的复杂性,求偏微分方程的精确解一般是不可能的,经常采用数值方法求方程的近似解。偏微分方程的数值方法种类较多,最常用的方法是差分方法。差分方法具有格式简单,程序易于实现,计算量小等优点,特别适合于规则区域上偏微分方程的近似求解。本章将以一些典型的偏微分方程为例,介绍差分方法的基本原理和具体实现方法。 9.1椭圆型方程边值问题的差分方法 9.1.1 差分方程的建立 最典型的椭圆型方程是Poisson (泊松)方程 G y x y x f y u x u u ∈=??+??-≡?-),(),,()(2222 (9.1) G 是x ,y 平面上的有界区域,其边界Γ为分段光滑的闭曲线。当f (x ,y )≡0时,方程 (9.1)称为Laplace(拉普拉斯)方程。椭圆型方程的定解条件主要有如下三种边界条件 第一边值条件 ),(y x u α=Γ (9.2) 第二边值条件 ),(y x n u β=??Γ (9.3) 第三边值条件 ),()( y x ku n u γ=+??Γ (9.4) 这里,n 表示Γ上单位外法向,α(x,y ),β(x,y ),γ(x,y )和k (x,y )都是已知的函数,k (x,y )≥0。满足方程(9.1)和上述三种边值条件之一的光滑函数u (x ,y )称为椭圆型方程边值问题的解。 用差分方法求解偏微分方程,就是要求出精确解u (x ,y )在区域G 的一些离散节点(x i ,y i )上的近似值u i ,j ≈(x i ,y i )。差分方法的基本思想是,对求解区域G 做网格剖分,将偏微分方程在网格节点上离散化,导出精确解在网格节点上近似值所满足的差分方程,最终通过求解差分方程,通常为一个线性方程组,得到精确解在离散节点上的近似值。 设G ={0

五点差分法(matlab)解椭圆型偏微分方程

用差分法解椭圆型偏微分方程 -(Uxx+Uyy)=(pi*pi-1)e^xsin(pi*y) 0kmax) break; end if(max(max(t))

五点差分法解椭圆型偏微分方程

用差分法解椭圆型偏微分方程 -(Uxx+Uyy)=(pi*pi-1)e^xsin(pi*y) 0kmax) break; end if(max(max(t))

差分方程求解

例题:已知差分方程51 (2)(1)()(+1)+0.5()66 x k x k x k r k r k +-++=,其中r (k )=1,k ≥0,x (0)=1, x (1)=2。 (1) 试由迭代法求其全解的前5项; (2) 分别由古典法求其零输入解、零状态解,以及全解; (3) 用Z 变换法求解差分方程。 解:注:解题过程中出现的下标“zi ”和“zs ”分别表示零输入条件和零状态条件。 1. 迭代法 题目中给出的条件仅仅是零输入初始条件,进行迭代求解时的初始条件应该是全解初始条件。 (1) 零输入初始条件 本题已给出零输入时的两个初始条件x zi (0)=1,x zi (1)=2。 (2) 零状态初始条件 取k =-2时,则51 (0)(1)(2)(1)0.5(2)66x x x r r --+-=-+-,得x zs (0)=0; 取k =-1 时,则51 (1)(0)(1)(0)0.5(1)66 x x x r r -+-=+-,求得x zs (1)=1。 (3) 全解初始条件 x (0)= x zi (0)+ x zs (0)=1; x (1)= x zi (1)+ x zs (1)=3。 (4) 根据求出的全解x (0)和x (1),利用迭代法求解 取k =0时,则51(2)(1)(0)(1)0.5(0)66x x x r r -+=+,求得23(2)6x =; 取k =1时,则51(3)(2)(1)(2)0.5(1)66x x x r r -+=+,求得151 (3)36x =; 取k =2时,则51(4)(3)(2)(3)0.5(2)66x x x r r -+=+,求得941 (4)216 x =。 2. 古典法 (1) 零输入解 令输入为零,则得齐次方程 51 (2)(1)()066 x k x k x k +-++= (a) 根据差分方程定义的算子()()n d x k x k n =+,可得它的特征方程251 066 d d -+= 求得特征根为: 112d = ,21 3 d =

迭代法

题目:Newton-Raphson 迭代法 (1)计算原理 (2)编出计算机程序 (3)给出算例(任意题型) (1)计算原理: 牛顿-拉夫森(Newton-Raphson)迭代法也称为牛顿迭代法,它是数值分析中最重要的方法之一,它不仅适用于方程或方程组的求解,还常用于微分方程和积分方程求解。 用迭代法解非线性方程时,如何构造迭代函数是非常重要的,那么怎样构造的迭代函数才能保证迭代法收敛呢?牛顿迭代法就是常用的方法之一,其迭代格式的来源大概有以下几种方式: 1设()[]2,f x C a b ∈,对()f x 在点[]0,x a b ∈,作泰勒展开: 略去二次项,得到()f x 的线性近似式:()()()()000f x f x f x x x '≈+- 由此得到方程()0f x =的近似根(假定()00f x '≠),() () 000f x x x f x =-' 即可构造出迭代格式(假定()00f x '≠):() () 1k k k k f x x x f x +=- ' 这就是牛顿迭代公式,若得到的序列{}k x 收敛于α,则α就是非线性方程的根。 2 牛顿迭代法 牛顿切线法,这是由于()f x 的线性化近似函数()()()()000l x f x f x x x '≈+-是曲线()y f x =过点()()00,x f x 的切线而得名的,求()f x 的零点代之以求() l x !2))((''))((')()(2 0000x x f x x x f x f x f -+ -+= ξ

的零点,即切线与x 轴交点的横坐标,如左图所示,这就是牛顿切线法的几何解释。实际上,牛顿迭代法也可以从几何意义上推出。利用牛顿迭代公式,由 k x 得到1k x +,从几何图形上看,就是过点()(),k k x f x 作函数()f x 的切线k l ,切线k l 与x 轴的交点就是1k x +,所以有()() 1 k k k k f x f x x x +'=-,整理后也能得出牛顿迭 代公式: 3 要保证迭代法收敛,不管非线性方程()0f x =的形式如何,总可以构造: 作为方程求解的迭代函数。因为: 而且 在根附近越小,其局部收敛速度越快,故可令: 若0(即根不是0的重根),则由得: , 因此可令 ,则也可以得出迭代公式: 。 4 迭代法的基本思想是将方程改写成等价的迭代形式,但随之而来的问题却是迭代公式不一定收敛,或者收敛的速度较慢。运用前述加速技巧,对于简单迭代过程 ,其加速公式具有形式: ,其中 记,上面两式可以合并写成: 这种迭代公式称作简单的牛顿公式,其相应的迭代函数是: 。 需要注意的是,由于是的估计值,若取,则实际上便是的估计值。假设,则可以用代替上式中的, 就可得到牛顿法的迭代公式: 。 )(')(1k k k k x f x f x x - =+)()()(x f x k x x x -==?)0)((≠x k )(')()()('1)('x f x k x f x k x --=?) ('x ?α0)('=α?≠)('αf α=)(x f 0)('=α?)('1 )(ααf k = )('1 )(x f x k = )(')(1k k k k x f x f x x - =+0)(=x f )(x x ?=)(1n n n x f x x +=+θθ?--= +1)(1n n n x x x ) (111n n n x x x --+=++θθ )(1 n n x x ?=+1-=θL L x f x x n n n )(1- =+L x f x x )()(- =?L )('x ?)()(x f x x +=?)('x ?)('x f 0)('≠x f )('x f L )(')(1n n n n x f x f x x - =+

常微分方程数值解法

i.常微分方程初值问题数值解法 常微分方程初值问题的真解可以看成是从给定初始点出发的一条连续曲线。差分法是常微分方程初值问题的主要数值解法,其目的是得到若干个离散点来逼近这条解曲线。有两个基本途径。一个是用离散点上的差商近似替代微商。另一个是先对微分方程积分得到积分方程,再利用离散点作数值积分。 i.1 常微分方程差分法 考虑常微分方程初值问题:求函数()u t 满足 (,), 0du f t u t T dt =<≤ (i.1a ) 0(0)u u = (i.1b) 其中(,)f t u 是定义在区域G : 0t T ≤≤, u <∞上的连续函数,0u 和T 是给定的常数。我们假设(,)f t u 对u 满足Lipschitz 条件,即存在常数L 使得 121212(,)(,), [0,]; ,(,)f t u f t u L u u t T u u -≤-?∈∈-∞∞ (i.2) 这一条件保证了(i.1)的解是适定的,即存在,唯一,而且连续依赖于初值0u 。 通常情况下,(i.1)的精确解不可能用简单的解析表达式给出,只能求近似解。本章讨论常微分方程最常用的近似数值解法-差分方法。先来讨论最简单的Euler 法。为此,首先将求解区域[0,]T 离散化为若干个离散点: 0110N N t t t t T -=<< <<= (i.3) 其中n t hn =,0h >称为步长。 在微积分课程中我们熟知,微商(即导数)是差商的极限。反过来,差商就是微商的近似。在0t t =处,在(i.1a )中用向前差商 10()()u t u t h -代替微商du dt ,便得 10000()()(,())u t u t hf t u t ε=++ 如果忽略误差项0ε,再换个记号,用i u 代替()i u t 便得到 1000(,)u u hf t u -= 一般地,我们有 1Euler (,), 0,1, ,1n n n n u u hf t u n N +=+=-方法: (i.4) 从(i.1b) 给出的初始值0u 出发,由上式可以依次算出1,,N t t 上的差分解1,,N u u 。

用matlab实现线性常系数差分方程的求解

数字信号处理课程设计 题目:试实现线性常系数差分方程的求解 学院: 专业: 班级: 学号: 组员: 指导教师:

题目:用Matlab 实现线性常系数差分方程求解 一. 设计要求 1. 掌握线性常系数差分方程的求解 2. 熟练掌握Matlab 基本操作和各类函数调用 3. 结合Matlab 实现线性常系数差分方程的求解 二.设计原理 1.差分与差分方程 与连续时间信号的微分及积分运算相对应,离散时间信号有差分及序列求和运算。设有序列f(k),则称…,f(k+2),f(k+1),…,f(k -1),f(k -2),…为f(k)的移位序列。序列的差分可以分为前向差分和后向差分。一阶前向差分定义为 ()(1)()f k f k f k ?=+- (3.1—1) 一阶后向差分定义为 ()()(1)f k f k f k ?=-- (3.1—2) 式中Δ和Δ称为差分算子。由式(3.1—1)和式(3.1—2)可见,前向差分与后向差分的关系为 ()(1)f k f k ?=?- (3.1—3) 二者仅移位不同,没有原则上的差别,因而它们的性质也相同。此处主要采用后向差分,并简称其为差分。 由查分的定义,若有序列1()f k 、2()f k 和常数1a ,2a 则 1122112211221112221122[()()][()()][(1)(1)][()(1)][()(1)]()() a f k a f k a f k a f k a f k a f k a f k f k a f k f k a f k a f k ?+=+--+-=--+--=?+? (3.1—4) 这表明差分运算具有线性性质。 二阶差分可定义为 2()[()][()(1)]()(1) ()2(1)(2) f k f k f k f k f k f k f k f k f k ?=??=?--=?-?-=--+- (3.1—5) 类似的,可定义三阶、四阶、…、n 阶差分。一般地,n 阶差分

相关文档
相关文档 最新文档