五点差分格式

五点差分格式
五点差分格式

微分方程数值解实验报告 姓名 丁建伟 学号 200708020211 日期

2010.12.30 实验项目 五点差分格式 指导教师

徐强 一、上机实验的问题和要求(需求分析):

实验内容:

(I) 分别在步长h=1/16,1/32,1/64,1/128情形下用五点差分格式计算?

??Ω?=Ω=-?on u in f u ;0; 其中Ω=(0,1)×(0,1); 2=f πsin πxsin πy ;精确解为 u=sin πxsin πy ;

(I)给出系数矩阵A 的图像。

(II) 用G-S 迭代法求解AV=F ,并分析无穷范数和L2范数下的误差阶。

二、程序设计的基本思想,原理和算法描述:

基本思想及原理:

三、主要程序代码或命令:

#include

#include

#define MAX 200

#define M 3.1415926

void main()

{

int n,i,j;

float V[MAX][MAX]={{0}};

float F[MAX][MAX],U[MAX][MAX],e[MAX][MAX];

float h,x,y,err,temp;

printf("请输入分割数n的值:");

scanf("%d",&n);

h=1/float(n+1);

for(i=1,x=h;i<=n;i++,x+=h)

for(j=1,y=h;j<=n;j++,y+=h)

{F[i][j]=2*M*M*sin(M*x)*sin(M*y);

U[i][j]=sin(M*x)*sin(M*y);}

err=1.0;

while(err>1.0e-6)

{err=0.0;

for(j=1;j<=n;j++)

for(i=1;i<=n;i++)

{temp=0.25*(V[i+1][j]+V[i-1][j]+V[i][j-1]+V[i][j+1])+(h*h/4)*F[i][j]; err=(temp-V[i][j])*(temp-V[i][j])+err;

V[i][j]=temp;

}

err=sqrt(err);

}

float e1=0,e2=0;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{

e[i][j]=fabs(V[i][j]-U[i][j]);

e2+=h*e[i][j]*e[i][j];

if(e1

e1=e[i][j];

}

e2=sqrt(e2);

printf("请输出在无穷范数和二范数下的误差:e1=%f和e2=%f\n",e1,e2);

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

printf("请输出V[%d][%d]的值:%f\n",i,j,V[i][j]);

}

四、调试和运行程序过程中产生的问题及采取的措施:

1.编译时出错,若想在主函数和被调用函数都使用一些变量,必须把这些变量设为全局变量。

2.编译时,没有注意数据类型转换,如float h;h=1/n;是错误的,因为n是整形的,当n 值大于1时,h老为零。应进行模式转换,h=1/float(n);这样才是正确的。

3.对浮点数求绝对值时,应使用fabs()函数,而不是abs()。

4.注意乘除的计算,不能直接写成2x等,必须加上符号,2*x。

五、运行输出结果及分析:

上述程序在Visual C++ 6.0环境下加以实现。经过多次测试,程序运行正确。例如:分别输入n值:20 ,40,运行结果如图所示,图中显示了每一步的值及端点误差。

请输入等分数n值:20

输入n值:40

由图可知:

a.四种步长下无穷范数分别为:h=1/20时为e1=0.013742,h=1/40时为e2=0.003477,h=1/80时为e3=0.000872,h=1/160时为e4=0.000218。计算可得差分解近似精确解在无穷范数下误差阶数为二阶。(e=max{u[i]})

b.四种步长下L2范数分别为:h=1/20时为e1'=0.009277,h=1/40时为e2'=0.002342,h=1/80时为e3'=0.000586,h=1/160时为e4'=0.000145。计算可得差分解近似精确解在L2范数下误差阶数为二阶。(2/111)('2∑-==n i i u

e )

通过这次课程设计:

1. 我又进一步巩固了C 语言的基础。

2. 做课程设计达到了理论与实践结合的目的,提高了自己的编程能力。

3. 对数值分析里求解线性方程组的追赶法复习了一下,加深了理解。

4. 掌握中心差分格式的程序实现和分析算法误差的方法。

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

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

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

第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 αβ''-=<

常微分方程数值解法

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 。

常微分方程差分解法、入门、多解法

毕业论文 题目抛物型方程的差分解法学院数学科学学院 专业信息与计算科学 班级计算0802 学生王丹丹 学号20080901045 指导教师王宣欣 二〇一二年五月二十五日

摘要 偏微分方程的数值解法在数值分析中占有重要的地位,很多科学技术问题的数值计算包括了偏微分方程的数值解问题【1】。近三十多年来,数值解法的理论和方法都有了很大的发展,而且在各个科学技术的领域中应用也愈来愈广泛。本文的研究主要集中在依赖于时间的问题,借助于简单的常系数扩散方程,介绍抛物型方程的差分解法。本文以基本概念和基本方法为主,同时结合算例实现算法。 第一部分介绍偏微分方程及差分解法的基本概念,引入本文的研究对象——常系 数扩散方程: 2 2 ,,0 u u a x R t t x ?? =∈>?? 第二部分介绍上述方程的几种差分格式及每种格式的相容性、收敛性与稳定性。 第三部分通过算例检验每种差分格式的可行性。 关键词:偏微分方程;抛物型;差分格式;收敛性;稳定性;算例

ABSTRACT The numerical solution of partial differential equation holds an important role in numerical analysis .Many problems of compution in the field of science and techology include the numerical solution of partial differential equation. For more than 30 years, the theory and method of the numerical computation made a great development and its applications in various fields of science and technology are more and more widely. This paper focuses on the problems based on time. I will use object-constant diffusion equation to introduces the finite difference method of parabolic equation. This paper mainly focus on the basic concept ,basic method and simple numerical example. The first part of this paper introduces partial differential equations and basic concepts of finite difference method.I will introduce the object-constant diffusion equation for the first time. 2 2 ,,0 u u a x R t t x ?? =∈>?? The second part of this paper introduces several difference schemes of the above equation and their compatibility ,convergence and stability. The third part tests the accuracy of each scheme. Key words:partial differential equation;parabolic;difference scheme;convergence;stability;application

常微分方程的差分方法

第五章 常微分方程的差分方法 一、教学目标及基本要求 通过对本节课的学习,使学生掌握常微分方程、常微分方程方程组的数值解法。 二、教学内容及学时分配 本节课主要介绍常微分方程的数值解法。具体内容如下: 讲授内容:欧拉公式、改进的欧拉公式。 三、教学重点难点 1.教学重点:改进的欧拉公式、龙格库塔方法、收敛性与稳定性。 2. 教学难点:收敛性与稳定性。 四、教学中应注意的问题 多媒体课堂教学为主。适当提问,加深学生对概念的理解。 五、正文 基于数值积分的求解公式:欧拉公式、改进的欧拉公式 引 言 1.主要考虑如下的一阶常微分方程初值问题的求解: 00()(,)()y x f x y y x y '=??=? 微分方程的解就是求一个函数y=y(x),该函数满足微分方程并且符合初值条件。 2. 例如微分方程: xy'-2y=4x ;初始条件: y(1)=-3。 于是可得一阶常微分方程的初始问题 24(1)3y y x y ?'=+???=-?。 显然函数y(x)=x 2-4x 满足以上条件,因而是该初始问题的微分方程的解。

3. 但是,只有一些特殊类型的微分方程问题能够得到用解析表达式表示的函数解,而大量的微分方程问题很难得到其解析解,有的甚至无法用解析表达式来表示。因此,只能依赖于数值方法去获得微分方程的数值解。 4. 微分方程的数值解: 设微分方程问题的解y(x)的存在区间是[a,b],初始点x 0=a ,将[a,b]进行划分得一系列节点x 0 , x 1 ,...,x n ,其中a= x 0< x 1<…< x n =b 。y(x)的解析表达式不容易得到或根本无法得到,我们用数值方法求得y(x)在每个节点x k 的近似值y(x k ),即 y≈y(x k ),这样y 0 , y 1 ,...,y n 称为微分方程的数值解。 如果计算y n 时,只利用y n-1,称这种方法为单步法;如果在计算y n 时不仅利用y n-1,而且还要利用y n-2, y n-3,…, y n-r ,则称这种方法为r 步方法,也称多步法。 §5.1 欧拉方法 §5.1.1 欧拉格式 方程()(,)n n n y x f x y '=中,1()()()n n n y x y x y x h +-'≈ 1()()(,())n n n n y x y x hf x y x +≈+?1(,)n n n n y y hf x y +=+ 称为解一阶常微分方程初值问题的欧拉公式,也称显示欧拉公式。 欧拉公式的几何意义非常明显,因为微分方程的解在xoy 平面上表示一族积分曲线。用欧拉公式求数值解的几何意义如图: 容易验证,该折线各个顶点的纵坐标(1,2...)n y n =就是欧拉公式算得的近似值解,所以,欧拉方法又称为折线法。 算例:P98

微分方程的边值问题

微分方程边值问题的数值方法 本部分内容只介绍二阶常微分方程两点边值问题的的打靶法和差分法。 二阶常微分方程为 (,,),y f x y y a x b '''=≤≤ (1.1) 当(,,)f x y y '关于,y y '为线性时,即(,,)()()()f x y y p x y q x y r x ''=++,此时(1.1)变成线性微分方程 ()()(),y p x y q x y r x a x b '''--=≤≤ (1.2) 对于方程(1.1)或(1.2),其边界条件有以下3类: 第一类边界条件为 (),()y a y b αβ== (1.3) 当0α=或者0β=时称为齐次的,否则称为非齐次的。 第二类边界条件为 (),()y a y b αβ''== (1.4) 当0α=或者0β=时称为齐次的,否则称为非齐次的。 第三类边界条件为 0101()(),()()y a y a y b y b ααββ''-=+= (1.5) 其中00000,0,0αβαβ≥≥+>,当10α=或者10β=称为齐次的,否则称为非齐次的。微分方程(1.1)或者(1.2)附加上第一类,第二类,第三类边界条件,分别称为第一,第二,第三边值问题。 1 打靶法介绍 下面以非线性方程的第一类边值问题(1.1)、(1.3)为例讨论打靶法,其基本原理是将边值问题转化为相应的初值问题求解。 【原理】假定()y a t '=,这里t 为解()y x 在x a =处的斜率,于是初值问题为 (,,) ()()y f x y y y a y a t α '''=?? =??'=? (1.6) 令z y '=,上述二阶方程转化为一阶方程组

常微分方程与偏微分方程数值方法比较

常微分方程与微分方程数值方法比较 1. 微分方程数值方法的有关概念 首先回顾微分方程的定义与分类。含有自变量、未知函数及其导数(微分或偏导数)的方程称为微分 方程;如果未知函数只含有一个变量,则称为常微分方程;如果未知函数含有若干个变量,则称为偏微分方程。微分方程中未知函数的导数或偏导数的最高阶次称为微分方程的阶。例如:微分方程 (,)du f t u dt =是一阶常微分方程, 而2 22u u a t x ??=??是二阶偏微分方程。 所有使微分方程成为等式的函数,都是微分方程的解;在 n 阶微分方程中,将微分方 程的含有 n 个任意常数的解称为该微分方程的通解。为确定微分方程通解中的任意常数而需要的条件称为定解条件;定解条件可以分为初始条件和边界条件两类。由微分方程和定解条件一起构成的问题称为微分方程定解问题。 根据定解条件的不同,常微分方程分为初值问题和边值问题;若定解条件是描述函数在一点(或初始点)处状态的,则称为初值问题,一阶常微分方程初值问题的一般形式为: 2(0)1dy x y dx y y ?=-? ??=? 若定解条件描述了函数在至少两点(或边界)处状态的称为边值问题,例如: 2 22(0,)(,)0(,0)()u u a t x u t u L t u x f x ???=????? ==??=??? 2.常微分方程数值方法 有限差分法是常微分方程中数值解法中通常有效的方法,建立差分算法的两个基本的步 骤: 1. 建立差分格式,包括:a. 对解的存在域剖分;b. 采用不同的算法可得到不同的逼近误差—截断误差(相容性);c.数值解对真解的精度—整体截断误差(收敛性);d.数值解收敛于真解的速度;e. 差分算法—舍人误差(稳定性). 2.差分格式求解,将积分方程通过差分方程转化为代数方程求解,一般常用递推算法。 差分方法的基本思想“就是以差商代替微商”,差分形式如下:

常微分方程的差分方法-欧拉法

常微分方程的差分方法-欧拉法 一、摘要:人类社会已迈进电子计算机时代。在今天,熟练地 运用计算机进行科学计算,已成为广大科技工作者和学者的一项基 本技能,数值分析的基本内容是数值算法的设计与分析,科学技术 当中常常需要求解常微分方程的定解问题,本文中主要以解决此问 题最简单形式(一阶方程的初值问题)来求解微分方程。虽然求解 常微分方程有各种各样的解析方法,但解析方法只能用来求解一些 特殊类型的方程,求解从实际问题中归结出来的微分方程主要主要 靠数值解法,本文就数值解法中的差分方法进行求解微分方程。 二、关键词:差分方法、初值问题、数值解法、MATLAB 三、引言:科学计算不应当将计算方法片面的理解为各种算法 的简单罗列和堆积,它也是一门内容丰富、思想方法深刻而有着自 身理论体系的数学学科。微积分的发明是人类智慧的伟大发展。求 解常微分方程有各种各样的解析方法,但解析方法只能用来求解一 些特殊类型的方程,求解从实际问题中归结出来的微分方程主要主 要靠数值解法。怎样应用数值解法求解从实际问题中归结出来的微 分方程呢? 四、正文 y′=f x,y (1) y(x0)=y0 (2) 方程(1)中含有导数项y′(x),这是微分方程的本质特征,也正 是它难以求解的症结所在。 数值解法的第一步就是设法消除其导数项,这项手续称离散化。由于差分是微分的近似运算,实现离散化的基本途径是用差商替代 导数。 譬如,若在点x n列出方程(1): y′(x n)=f(x n,y(x n)) 替代其中的导数项y′(x n),结果有:并用差商y x n+1?y(x n) h y(x n+1)≈y(x n)+hf(x n,y(x n))

常微分方程数值解法

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 。

二阶常微分方程的差分格式

《微分方程数值解》 课程论文 学生姓名1:许慧卿学号:20144329 学生姓名2:向裕学号:20144327学生姓名3:邱文林学号:20144349学生姓名4:高俊学号:20144305学生姓名5:赵禹恒学号:20144359学生姓名6:刘志刚学号: 20144346 学院:理学院 专业:14级信息与计算科学 指导教师:陈红斌 2017年6 月25日

《偏微分方程数值解》课程论文 《二阶常微分方程的差分格式》论文 一、《微分方程数值解》课程论文的格式 1、引言:介绍研究问题的意义和现状 2、格式:给出数值格式 3、截断误差:给出数值格式的截断误差 4、数值例子:按所给数值格式给出数值例子 5、参考文献:论文所涉及的文献和教材 二、《微分方程数值解》课程论文的评分标准 1)文献综述:10分; 2)课题研究方案可行性:10分; 3)数值格式:20分; 4)数值格式的算法、流程图:10分; 5)数值格式的程序:10分; 6)论文撰写的条理性和完整性:10分; 7)论文工作量的大小及课题的难度:10分; 8)课程设计态度:10分; 9)独立性和创新性:10分。 评阅人: - 2 -

二阶常微分方程的差分格式 1 引言 考虑如下二阶常微分方程两点边值问题 22 ()()()()d u x u x q x f x dx -+=, a x b <<, (1) (),u a α= ()u b β= , (2) 的有限差分方法, 其中()q x ,()f x 为[,]a b 上的连续函数, ()0;q x ≥α,β为给定常数. 本文将对(1), (2)差分格式及紧差分格式进行求解, 并给出截断误差与数值例子. 2 差分格式及紧差分格式的建立 2.1 差分格式 将区间[,]a b 作M 等分, 记()/h b a M =-, i x a ih =+, 0i M ≤≤, {|0}h i x i M Ω=≤≤, h 为网格步长, i x 为网格结点, h Ω为网格, 称定义在h Ω上的函数 为网格函数. 在网格结点i x 处考虑方程(1), 有 ()()()()i i i i u x q x u x f x ''-+=, 11i M ≤≤-, (3) 0()u x α=, ()M u x β=. 任取一个结点i x ,(1i =, 2, 3, … ,1M -), 将()1i u x +, ()1i u x -在i x 处运用泰勒级数展开 23(4)4 41()()()()()()()2!3!4! i i i i i i u x h u x h u x h u x u x u x h o h +''''''=+++++, ()()()()()()()()( ) ()() ()2 3 4 441''''''.2!3!4! i i i i i i u x h u x h u x h u x u x u x h o h ----=+-+++ + 利用上面两式得

相关文档
最新文档