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

合集下载

微分方程数值解实验报告

微分方程数值解实验报告

微分方程数值解法课程设计报告

班级:_______

姓名: ___

学号:__________

成绩:

2017年 6月 21 日

摘要

自然界与工程技术中的很多现象,可以归结为微分方程定解问题。其中,常微分方程求解是微分方程的重要基础内容。但是,对于许多的微分方程,往往很难得到甚至不存在精确的解析表达式,这时候,数值解提供了一个很好的解决思路。,针对于此,本文对常微分方程数值解法进行了简单研究,主要讨论了一些常用的数值解法,如欧拉法、改进的欧拉法、Runge—Kutta方法、Adams法以及椭圆型方程、抛物型方程的有限差分方法等,通过具体的算例,结合MATLAB求解画图,初步给出了一般常微分方程数值解法的求解过程。同时,通过对各种方法的误差分析,让大家对各种方法的特点和适用范围有一个直观的感受。

关键词:微分方程数值解、MATLAB

目录

摘要 (2)

目录 (3)

第一章常微分方程数值解法的基本思想与原理 (4)

1.1 常微分方程数值解法的基本思路 (4)

1.2用matlab编写源程序 (4)

1.3 常微分方程数值解法应用举例及结果 (5)

第二章常系数扩散方程的经典差分格式的基本思想与原理 (6)

2.1 常系数扩散方程的经典差分格式的基本思路 (6)

2.2 用matlab编写源程序 (7)

2.3 常系数扩散方程的经典差分格式的应用举例及结果 (8)

第三章椭圆型方程的五点差分格式的基本思想与原理 (10)

3.1 椭圆型方程的五点差分格式的基本思路 (10)

3.2 用matlab编写源程序 (10)

3.3 椭圆型方程的五点差分格式的应用举例及结果 (12)

(完整版)偏微分方程的MATLAB解法

(完整版)偏微分方程的MATLAB解法

引言

偏微分方程定解问题有着广泛的应用背景。人们用偏微分方程来描述、解释或者预见各种自然现象,并用于科学和工程技术的各个领域fll。然而,对于广大应用工作者来说,从偏微分方程模型出发,使用有限元法或有限差分法求解都要耗费很大的工作量,才能得到数值解。现在,MATLAB PDEToolbox已实现对于空间二维问题高速、准确的求解过程。

偏微分方程

如果一个微分方程中出现的未知函数只含一个自变量,这个方程叫做常微分方程,也简称微分方程;如果一个微分方程中出现多元函数的偏导数,或者说如果未知函数和几个变量有关,而且方程中出现未知函数对几个变量的导数,那么这种微分方程就是偏微分方程。

常用的方法有变分法和有限差分法。变分法是把定解问题转化成变分问题,再求变分问题的近似解;有限差分法是把定解问题转化成代数方程,然后用计算机进行计算;还有一种更有意义的模拟法,它用另一个物理的问题实验研究来代替所研究某个物理问题的定解。虽然物理现象本质不同,但是抽象地表示在数学上是同一个定解问题,如研究某个不规则形状的物体里的稳定温度分布问题,由于求解比较困难,可作相应的静电场或稳恒电流场实验研究,测定场中各处的电势,从而也解决了所研究的稳定温度场中的温度分布问题。

随着物理科学所研究的现象在广度和深度两方面的扩展,偏微分方程的应用范围更广泛。从数学自身的角度看,偏微分方程的求解促使数学在函数论、变分法、级数展开、常微分方程、代数、微分几何等各方面进行发展。从这个角度说,偏微分方程变成了数学的中心。

一、MATLAB方法简介及应用

Matlab求解微分方程(组)及偏微分方程(组)

Matlab求解微分方程(组)及偏微分方程(组)

第四讲 Matlab 求解微分方程(组)

理论介绍:Matlab 求解微分方程(组)命令 求解实例:Matlab 求解微分方程(组)实例

实际应用问题通过数学建模所归纳得到的方程,绝大多数都是微分方程,真正能得到代数方程的机会很少.另一方面,能够求解的微分方程也是十分有限的,特别是高阶方程和偏微分方程(组).这就要求我们必须研究微分方程(组)的解法:解析解法和数值解法. 一.相关函数、命令及简介

1.在Matlab 中,用大写字母D 表示导数,Dy 表示y 关于自变量的一阶导数,D2y 表示y 关于自变量的二阶导数,依此类推.函数dsolve 用来解决常微分方程(组)的求解问题,调用格式为:

X=dsolve(‘eqn1’,’eqn2’,…)

函数dsolve 用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解.

注意,系统缺省的自变量为t

2.函数dsolve 求解的是常微分方程的精确解法,也称为常微分方程的符号解.但是,有大量的常微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,我们需要寻求方程的数值解,在求常微分方程数值解方面,MATLAB 具有丰富的函数,我们将其统称为solver ,其一般格式为:

[T,Y]=solver(odefun,tspan,y0)

说明:(1)solver 为命令ode45、ode23、ode113、ode15s 、ode23s 、ode23t 、ode23tb 、ode15i 之一.

(2)odefun 是显示微分方程'(,)y f t y =在积分区间tspan 0[,]f t t =上从0t 到f

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

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

用差分法解椭圆型偏微分方程

-(Uxx+Uyy)=(pi*pi-1)e^xsin(pi*y) 0

U(0,y)=sin(pi*y),U(2,y)=e^2sin(pi*y); 0=

U(x,0)=0, U(x,1)=0; 0=

先自己去看一下关于五点差分法的理论书籍

Matlab程序:

unction [p e u x y k]=wudianchafenfa(h,m,n,kmax,ep)

% g-s迭代法解五点差分法问题

%kmax为最大迭代次数

%m,n为x,y方向的网格数,例如(2-0)/0.01=200;

%e为误差,p为精确解

syms temp;

u=zeros(n+1,m+1);

x=0+(0:m)*h;

y=0+(0:n)*h;

for(i=1:n+1)

u(i,1)=sin(pi*y(i));

u(i,m+1)=exp(1)*exp(1)*sin(pi*y(i));

end

for(i=1:n)

for(j=1:m)

f(i,j)=(pi*pi-1)*exp(x(j))*sin(pi*y(i));

end

end

t=zeros(n-1,m-1);

for(k=1:kmax)

for(i=2:n)

for(j=2:m)

temp=h*h*f(i,j)/4+(u(i,j+1)+u(i,j-1)+u(i+1,j)+u(i-1,j))/4; t(i,j)=(temp-u(i,j))*(temp-u(i,j));

u(i,j)=temp;

end

end

t(i,j)=sqrt(t(i,j));

if(k>kmax)

break;

end

if(max(max(t))

五点差分格式求解椭圆型偏微分方程(解线性方程组方法)

五点差分格式求解椭圆型偏微分方程(解线性方程组方法)

五点差分格式求解椭圆型偏微分方程(解线性方程组方

法)

五点差分格式是一种常用的数值方法,用于求解椭圆型偏微分方程。该方法将偏微分方程中的二阶导数项用差分近似替代,并将偏微分方程转化为一个线性方程组。本文将介绍五点差分格式的推导过程,并使用该方法求解一个简单的椭圆型偏微分方程。

假设我们要求解的偏微分方程为:

∂²u/∂x²+∂²u/∂y²=f(x,y)

其中,u是未知函数,f(x,y)是已知函数。我们将该方程离散化,将坐标(x,y)分别用h表示,将u(x,y)用U(i,j)表示,其中i和j分别表示x和y的离散位置。

我们可以使用中心差分近似来计算二阶导数,得到:

∂²u/∂x²≈(U(i+1,j)-2U(i,j)+U(i-1,j))/h²

∂²u/∂y²≈(U(i,j+1)-2U(i,j)+U(i,j-1))/h²

将上述近似代入原方程,得到:

(U(i+1,j)-2U(i,j)+U(i-1,j))/h²+

(U(i, j+1) - 2U(i, j) + U(i, j-1)) / h² = f(ih, jh)

整理上述方程,得到:

U(i+1, j) + U(i-1, j) + U(i, j+1) + U(i, j-1) - 4U(i, j) = h² * f(ih, jh)

该方程表示了U(i,j)与其相邻四个点的关系。我们可以将整个区域离散化为一个网格,每个网格点都满足类似的方程。离散化后的方程可以写成一个线性方程组的形式。

例如,在一个矩形区域内,我们将x轴和y轴的区间划分为n个小区间,即x轴上的取值为0, h, 2h, ..., nh;y轴上的取值为0, h,

微分方程数值解 五点差分格式

微分方程数值解 五点差分格式

宋玉霞 2008050216 统数 信科0802

实验二:五点差分格式

一、实验题目:

⎪⎩

⎪⎨⎧<<=<<<<-=--Γ,10),sin(,

10,

20),sin()1(2t y e u y x y e u u x x

yy xx πππ

二、实验要求:用五点差分格式求解椭圆型偏微分方程 三、程序运行结果: U =

Columns 1 through 9

0.3426 0.6516 0.8968 1.0543 1.1086 1.0543 0.8968 0.6516 0.3426

Columns 10 through 18

0.3793 0.7216 0.9931 1.1675 1.2276 1.1675 0.9931 0.7216 0.3793

Columns 19 through 27

0.4198 0.7985 1.0990 1.2920 1.3585 1.2920 1.0990 0.7985 0.4198

Columns 28 through 36

0.4643 0.8832 1.2156 1.4291 1.5026 1.4291 1.2156 0.8832 0.4643

Columns 37 through 45

0.5134 0.9766 1.3442 1.5802 1.6615 1.5802 1.3442 0.9766 0.5134

Columns 46 through 54

0.5676 1.0796 1.4860 1.7469 1.8368 1.7469 1.4860 1.0796 0.5676

Columns 55 through 63 0.6274 1.1934 1.6425 1.9309 2.0303 1.9309 1.6425 1.1934 0.6274

五点差分格式

五点差分格式

《微分方程数值解》大作业(一)

——椭圆型方程

编程计算:采用五点差分格式求如下椭圆型方程

2222u

u x y f (x,y),(x,y);∂∂∂∂--=∈Ω

其中f (x,y)、Ω及边条件为:

1. f (x,y)0,= (1,2)(0,1)Ω=⨯, 且边条件如下:

222u(x,0)2ln x,u(x,1)ln(x 1)1x 2;u(1,y)ln(1y ),u(2,y)ln(4y ),0y 1.⎧==+<<⎪⎨=+=+<<⎪⎩

, 问题存在精确解为: 22(,)ln()u x y x y =+

2.f (x,y)4,=- (0,1)(0,2)Ω=⨯,且边条件如下:

2222u(x,0)x ,u(x,2)(x 2)0x 1;u(0,y)y ,u(1,y)(y 1),0y 2.

⎧==-<<⎪⎨==-<<⎪⎩, 问题存在精确解为: 2(,)()u x y x y =-

3.f (x,y)cos(x y)cos(x y),=++- (0,)(0,)2

πΩ=π⨯,且边条件如下:

u(x,0)cos x,u(x,)00x ;2u(0,y)cos y,u(,y)cos y,0y .2π⎧==<<π⎪⎪⎨π⎪=π=-<<⎪⎩

, 问题存在精确解为: (,)cos cos u x y x y =.

代码:主函数

1,差分解

function g=fivepoints(x1,x2,y1,y2,M,N)%变步长法

h=(x2-x1)/M; %横轴步长

k=(y2-y21/N; %纵轴步长

二阶椭圆型偏微分方程五点差分格式解的收敛性

二阶椭圆型偏微分方程五点差分格式解的收敛性

二阶椭圆型偏微分方程五点差分格式解的收敛性

发表时间:2020-08-13T07:07:27.104Z 来源:《学习与科普》2020年6期作者:邢舒雯[导读] 本文旨在五点差分格式的基础上利用极值原理证明该差分格式解存在唯一性、收敛性。

成都理工大学 610059摘要:差分格式作为求解二阶椭圆型偏微分方程中较为普遍的一种方法,研究证明其解存在唯一性以及收敛性在解决实际应用中起到决定性作用。五点差分格式作为其中最简单的一种方法,在其基础上已知函数满足某些假设条件时,利用极值原理证明解的唯一性和收敛

性,并用MTTLAB软件绘出随着差分格式迭代次数的增加解与精确解的误差分析图。关键词:椭圆型偏微分方程;五点差分方程;极值原理;收敛性

引言

当今社会高速发展的过程中,越来越多的学科更加紧密的与数学联系起来,在许多领域中的数学模型都需要用偏微分方程来描述。以应用为目的或以物理、力学等其他学科中的问题为背景的应用偏微分方程研究,不仅是传统应用数学的一个最主要的内容,而且是当代数学中的一个重要组成部分。它是数学理论与实际应用之间的一座桥梁,研究工作一直非常活跃,研究的领域日益扩大。大量素材的积累,进一步提出了将偏微分方程系统化和许多实际问题要求解决线性问题。因此研究椭圆型偏微分方程的边值问题解的收敛性有着重要的实际意义。本文旨在五点差分格式的基础上利用极值原理证明该差分格式解存在唯一性、收敛性。

1 二阶椭圆型偏微分方程首先介绍一下二阶椭圆型偏微分方程。

二阶椭圆型方程的研究甚早,早在50年代以前对方程的一些基本边值问题的可解性就获得了某些成果,在几十年代的发展中建立了各种解法,例如,泛函方法、差分法、变分法、积分方程法等。

《偏微分方程概述及运用matlab求解偏微分方程常见问题》

《偏微分方程概述及运用matlab求解偏微分方程常见问题》

北京航空航天大学

偏微分方程概述及运用matlab求解微分方

程求解常见问题

姓名徐敏

学号********

班级380911班

2011年6月

偏微分方程概述及运用matlab求解偏微分

方程常见问题

徐敏

摘要偏微分方程简介,matlab偏微分方程工具箱应用简介,用这个工具箱解方程的过程是:确定待解的偏微分方程;确定边界条件;确定方程所在域的几何形状;划分有限元;解方程

关键词MATLAB 偏微分方程程序

如果一个微分方程中出现的未知函数只含有一个自变量,这个方程叫做常微分方程,也简称微分方程:如果一个微分方程中出现多元函数的偏导数,或者说如果未知函数和几个变量有关,而且方程中出现未知函数对几个变量的导数,那么这种微分方程就是偏微分方程。

一,偏微分方程概述

偏微分方程是反映有关的未知变量关于时间的导数和关于空间变量的导数之间制约关系的等式。许多领域中的数学模型都可以用偏微分方程来描述,很多重要的物理、力学等学科的基本方程本身就是偏微分方程。早在微积分理论刚形成后不久,人们就开始用偏微分方程来描述、解释或预见各种自然现象,并将所得到的研究方法和研究成果运用于各门科学和工程技术中,不断地取得了显著的成效,显示了偏微分方程对于人类认识自然界基本规律的重要性。逐渐地,以物

理、力学等各门科学中的实际问题为背景的偏微分方程的研究成为传统应用数学中的一个最主要的内容,它直接联系着众多自然现象和实际问题,不断地提出和产生出需要解决的新课题和新方法,不断地促进着许多相关数学分支(如泛函分析、微分几何、计算数学等)的发展,并从它们之中引进许多有力的解决问题的工具。偏微分方程已经成为当代数学中的一个重要的组成部分,是纯粹数学的许多分支和自然科学及工程技术等领域之间的一座重要的桥梁。

《偏微分方程数值解》课程教学大纲

《偏微分方程数值解》课程教学大纲

征线法构造差分格
课堂教学 4 学时 6 学时
6 学时 6 学时
6 学时
讨论
作业及要求 自学及要求 布置课后作 业
布置课后作 业
布置课后作 业 上机实算 2 学 时
布置课后作 业 上机实算 2 学 时
布置课后作 业
Hale Waihona Puke Baidu团组大作业及要求
介绍数值实验要求和报告提 交格式。
数值实验 1:求解 Poisson 方程 五点差分格式的快速 Fourier 方法。
数值实验 4:求解稳态热传导 问题的有限元方法。
三、教学方法
以课堂教学为主,结合自学、数学实验大作业。 1. 课堂教学主要讲解偏微分方程数值解的基本概念,基本方法和基本原理,含有限差分法、变分原理和有限元方
法等,培养学生利用计算机为工具,通过数学建模、理论分析与数值求解等步骤定量化解决实际问题的能力。 2. 数值实验大作业是本课程的重要内容。共安排 4 个数值实验大作业,包括:求解五点差分格式的快速 Fourier 方

作业
贡献度
知 知识体系
完整掌握求解线性偏微分方程的有限差分方法,掌握变分原 √√√

理和有限元方法的基本知识
能 清晰思考和用语言文字准确表达的能 √
√√ √
√√√ √√ √√ √√
力力
发现、分析和解决问题的能力

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

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

用差分法解椭圆型偏微分方程-

(Uxx+Uyy)=(pi*pi-1)e^xsi n(pi*y) 0

U(0,y)=sin(pi*y),U(2,y)=e^ 2sin(pi*y); 0=

先自己去看一下关于五点差分法的理论书籍

Matlab程序:

unction[p e u x y k]=wudianchafenfa(h,m, n,kmax,ep)

% g-s迭代法解五点差分法问题%kmax为最大迭代次数

%m,n为x,y方向的网格数,例如(2-0)/0.01=200;

%e为误差,p为精确解

syms temp;

u=zeros(n+1,m+1);

x=0+(0:m)*h;

y=0+(0:n)*h;

for(i=1:n+1)

u(i,1)=sin(pi*y(i));

u(i,m+1)=exp(1)*exp(1) *sin(pi*y(i));

end

for(i=1:n)

for(j=1:m)

f(i,j)=(pi*pi-1)*exp(x (j))*sin(pi*y(i));

end

end

t=zeros(n-1,m-1);

for(k=1:kmax)

for(i=2:n)

for(j=2:m)

temp=h*h*f(i,j)/4+(u(i ,j+1)+u(i,j-1)+u(i+1,j )+u(i-1,j))/4;

t(i,j)=(temp-u(i,j))*( temp-u(i,j));

u(i,j)=temp;

end

end

t(i,j)=sqrt(t(i,j));

if(k>kmax)

break;

end

if(max(max(t))

break;

偏微分方程的matlab解法

偏微分方程的matlab解法

例如,对于细杆导热,虽然是一维问题, 可以将宽度y虚拟出来,对应于y的边界 条件和初始条件按照题意制定
Boundary Mode

PDE Mode
PDE Specification,确定偏 微分方程类型共有四种:
椭圆形Elliptic

抛物型Parabolic

双曲型Hyperbolic

如图22.3.
图 22.3 网格密集化
第六步: 解偏微分方程并显示图形解 选择Solve菜单中Solve PDE命令,解 偏微分方程并显示图形解,如图 2.4 所示
第七步:单击Plot菜单中Parameter选项,打开Plot Selection对话框,选中Color,Height(3D plot)和 Show mesh三项.再单击Polt按钮,显示三维图形解, 如图22.5所示.
已知求解域是方形区域,空间坐标的个数由具体问题确定.
偏微分方程的matlab解法
主要讲述如何用MATLAB实现对偏微分方程的仿 真求解.MATLAB的偏微分方程工具箱(PDE Toolbox)的出现,为偏微分方程的求解以及定 性研究提供了捷径.主要步骤为: 1、设置PDE的定解问题.即设置二维定解区域、 边界条件以及方程的形式;和系数 2、用有限元法(FEM)求解PDE.即网格的生 成、方程的离散以及求出数值解; 3、解的可视化.

matlab_pde

matlab_pde
21
一维对流方程——迎风格式算例结果
1 0.9
0.7
0.6 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.1 0 -0.5 0 0.3 0.5
0.4
0.2
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
29
一维对流方程——拉克斯-温德洛夫格式算例
30
一维对流方程——拉克斯-温德洛夫格式算例
31
一维对流方程——拉克斯-温德洛夫格式算例
32
一维对流方程——比姆-沃明格式
33
一维对流方程——比姆-沃明格式
34
一维对流方程——比姆-沃明格式算例
35
一维对流方程——多步格式
多步格式也有多种,这里只简单介绍其中几种格式。包括Richtmyer
61
差分方法小结
以上我们介绍了差分方法在椭圆型、抛物型和双曲型 偏微分方程中的应用,用差分格式求解偏微分方程的基本 步骤是一样的,首先把连续的问题离散化,建立差分格式 ,然后根据差分格式对求解区域进行网格剖分,最后求解 方程。 下面将简单介绍有限元方法。 另外变分法、边界元法、混合有限元法和多重网格法 等也是偏微分方程数值求解方法,有兴趣的同学可以参考 相关书籍。

matlab解偏微分方程

matlab解偏微分方程

matlab解偏微分方程

偏微分方程(PDE)是描述物理系统和工程问题中的变化和变形的

基本方程之一。它们是数学方程,可以用来解决流体力学、热传递、

电磁场和结构分析等领域的问题。在MATLAB中,可以使用PDE工具箱

来求解偏微分方程。

PDE工具箱是MATLAB中的一个工具箱,用于求解偏微分方程。它

提供了多种方法来求解PDE,如有限元方法、有限差分方法、谱方法等。PDE工具箱还提供了可视化工具,可以帮助用户更好地理解方程的解。以下是PDE工具箱的使用步骤:

1. 创建偏微分方程

使用PDE工具箱,可以通过选择预定义的模型或手动创建方程来

定义偏微分方程。预定义的模型包括泊松方程、热传导方程、斯托克

斯方程等。手动创建方程要求用户提供方程的系数和初始条件。

2. 定义边界条件

通过定义边界条件,可以限制方程的解在特定区域内。通常,边界条件与实际问题的物理特征有关。例如,泊松方程的边界条件可以是Dirichlet、Neumann或Robin条件。

3. 离散化空间和时间

PDE工具箱使用离散化方法来计算偏微分方程的解。在离散化过程中,空间和时间被分割成小的网格。离散化方法的选择取决于所使用的数值方法。

4. 求解方程

完成离散化后,PDE工具箱可以求解偏微分方程。求解器的选取依赖于方程的类型和分析目的。例如,稳态问题可以使用静态求解器,而动态问题可以使用显式和隐式求解器。

5. 可视化解

PDE工具箱提供了多种工具来可视化解。用户可以使用等值线、箭头和图形等来显示解的不同方面。此外,PDE工具箱还提供了交互式工具,使用户可以更改参数以观察不同的解。

Matlab解微分方程

Matlab解微分方程

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

科学研究和工程技术中的许多问题可建立偏微分方程的数学模型。包含多个自变量的微分方程称为偏微分方程(partial differential equation),简称PDE 。偏微分方程问题,其求解是十分困难的。除少数特殊情况外,绝大多数情况均难以求出精确解。因此,近似解法就显得更为重要。本章仅介绍求解各类典型偏微分方程定解问题的差分方法。

16.1 几类偏微分方程的定解问题

一个偏微分方程的表示通常如下:

(,,,,)x x x y y y x y A B C f x y Φ+Φ+Φ=ΦΦΦ (16.1.1)

式中,,,A B C 是常数,称为拟线性(quasilinear)数。通常,存在3种拟线性方程: 双曲型(hyperbolic)方程:240B AC ->; 抛物线型(parabolic)方程:240B AC -=; 椭圆型(ellliptic)方程:240B AC -<。

16.1.2 双曲型方程

最简单形式为一阶双曲型方程:

0u u

a t x

∂∂+=∂∂ (16.1.2) 物理中常见的一维振动与波动问题可用二阶波动方程:

22222u u a t x

∂∂=∂∂ (16.1.3) 描述,它是双曲型方程的典型形式。方程的初值问题为:

222220

0,(,0)()()t u u

a

t x t

x u x x u x x t ϕψ=⎧∂∂=>-∞<<+∞

⎪∂∂⎪⎪

=⎨⎪

∂⎪=-∞<<+∞

⎪∂⎩ (16.1.4)

边界条件一般有三类,最简单的初边值问题为:

偏微分方程—matlab

偏微分方程—matlab

基础知识

偏微分方程的定解问题

各种物理性质的定常(即不随时间变化)过程,都可用椭圆型方程来描述。其最典型、最简单的形式是泊松(Poisson)方程

),(2222y x f y

u

x u u =∂∂+∂∂=∆ (1)

特别地,当 f ( x , y ) ≡ 0 时,即为拉普拉斯(Laplace)方程,又称为调和方程

02222=∂∂+∂∂=∆y

u

x u u (2)

带有稳定热源或部无热源的稳定温度场的温度分布,不可压缩流体的稳定无旋流动及静电场的电势等均满足这类方程。

Poisson 方程的第一边值问题为

⎪⎩

⎪⎨

⎧Ω∂=Γ=Ω

∈=∂∂+∂∂=∆Γ∈),(),(),(),(),(2222y x y x u y x y x f y u

x u u y x ϕ (3) 其 中 Ω 为 以 Γ 为 边 界 的 有 界区 域 , Γ 为 分 段 光 滑 曲 线, Ω U Γ 称 为 定 解区 域 ,f (x, y),ϕ(x, y) 分别为 Ω,Γ 上的已知连续函数。 第二类和第三类边界条件可统一表示成

)0(0),(>=⎪

⎭⎫

⎝⎛+∂∂Γ

∈a u n u y x α (4) 其中 n 为边界 Γ 的外法线方向。当α = 0 时为第二类边界条件,α ≠ 0 时为第三类边界条件。

在研究热传导过程,气体扩散现象及电磁场的传播等随时间变化的非定常物理问题时,常常会遇到抛物型方程。其最简单的形式为一维热传导方程

)0(022>=∂∂-∂∂a x

u

a t u (5) 方程(5)可以有两种不同类型的定解问题: 初值问题(也称为 Cauchy 问题)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用差分法解椭圆型偏微分方程

-(Uxx+Uyy)=(pi*pi-1)e^xsin(pi*y) 0

U(0,y)=sin(pi*y),U(2,y)=e^2sin(pi*y); 0=

U(x,0)=0, U(x,1)=0; 0=

先自己去看一下关于五点差分法的理论书籍

Matlab程序:

unction [p e u x y k]=wudianchafenfa(h,m,n,kmax,ep)

% g-s迭代法解五点差分法问题

%kmax为最大迭代次数

%m,n为x,y方向的网格数,例如(2-0)/0.01=200;

%e为误差,p为精确解

syms temp;

u=zeros(n+1,m+1);

x=0+(0:m)*h;

y=0+(0:n)*h;

for(i=1:n+1)

u(i,1)=sin(pi*y(i));

u(i,m+1)=exp(1)*exp(1)*sin(pi*y(i));

end

for(i=1:n)

for(j=1:m)

f(i,j)=(pi*pi-1)*exp(x(j))*sin(pi*y(i));

end

end

t=zeros(n-1,m-1);

for(k=1:kmax)

for(i=2:n)

for(j=2:m)

temp=h*h*f(i,j)/4+(u(i,j+1)+u(i,j-1)+u(i+1,j)+u(i-1,j))/4; t(i,j)=(temp-u(i,j))*(temp-u(i,j));

u(i,j)=temp;

end

end

t(i,j)=sqrt(t(i,j));

if(k>kmax)

break;

end

if(max(max(t))

break;

end

end

for(i=1:n+1)

for(j=1:m+1)

p(i,j)=exp(x(j))*sin(pi*y(i));

e(i,j)=abs(u(i,j)-exp(x(j))*sin(pi*y(i)));

end

End

在命令窗口中输入:

[p e u x y k]=wudianchafenfa(0.1,20,10,10000,1e-6) k=147

surf(x,y,u) ;

xlabel(‘x’);ylabel(‘y’);zlabel(‘u’);

Title(‘五点差分法解椭圆型偏微分方程例1’)

就可以得到下图

surf(x,y,p)

surf(x,y,e)

[p e u x y k]=wudianchafenfa(0.05,40,20,10000,1e-6)

[p e u x y k]=wudianchafenfa(0.025,80,40,10000,1e-6)

为什么分得越小,误差会变大呢?

我们试试运行:

[p e u x y k]=wudianchafenfa(0.025,80,40,10000,1e-8)

K=2164

surf(x,y,e)

误差变小了吧

还可以试试

[p e u x y k]=wudianchafenfa(0.025,80,40,10000,1e-10) K=3355

误差又大了一点

再试试

[p e u x y k]=wudianchafenfa(0.025,80,40,10000,1e-11) k=3952

误差趋于稳定

总结:

最终的误差曲面

与网格数有关,也与设定的迭代前后两次差值(ep,看程序)有关;固定网格数,随着设定的迭代前后两次差值变小,误差由大比变小,中间有一个最小值,随着又增大一点,最后趋于稳定。

也许可以去研究一下那个误差最小的地方或者研究趋于稳定时的临界值。

相关文档
最新文档