课程名称: 数值代数课程设计 指导教师: 刘兰冬 班级: 姓名: 学号:
实验项目名称: 二阶常微分方程边值问题
实验目的及要求: 二阶常微分方程边值问题 d4 — U 0, 1x1
dx2 (x 2)2
1 u( 1) 1,u⑴ 3
1 (该问题真解为:()x 2 )步长h自己选定,利用差分法求出近似解,利
用MATLA函数画出比较图形。 实验原理: 一、微分方程: 微分方程是现代数学中一个很重要的分支,从早期的微积分时代起,这个 学科就成为了理论研究和实践应用的一个重要领域。在微分方程理论中,定解 条件通常有两种提法:一种是给出了积分曲线在初始时刻的性态,相应的定解 条件称为初值问题;另一种是给出了积分曲线首末两端的性态,这类条件则称 为边界条件,相应的定解问题称为边值问题。 常微分方程边值问题在应用科学与工程技术中有着非常重要的应用,例如 工程学、力学、天文学、经济学以及生物学等领域中的许多实际问题通常会归 结为常微分方程边值问题的求解。虽然求解常微分方程边值问题有很多解析方 法可以求解,但这些方法只能用来求解一些特殊类型的方程,对从实际问题中 提炼出来的微分方程往往不再适用,因而对常微分方程边值问题的数值方法的 研究显得尤为重要。经典的数值方法主要有:试射法(打靶法)和有限差分法。 许多物理现象随着时间而发生变化、如热传导过程、气体扩散过程和波的 传播过程都与时间有关。描述这些过程的偏微分方程具有这样的性质;若初始 时刻t=to的解已给定,则t>to时刻的解完全取决于初始条件和某些边界条件。 利用差分法解这类问题,就是从初始值出发,通过差分格式沿时间增加的方向, 逐步求出微分方程的近似解。 微分方程的定解问题就是在满足某些定解条件下求微分方程的解。在空间 区域的边界上要满足的定解条件称为边值条件。如果问题与时间有关,在初始 时刻所要满足的定解条件,称为初值条件。不含时间而只带边值条件的定解问 题,称为边值问题。与时间有关而只带初值条件的定解问题,称为初值问题。 同时带有两种定解条件的问题,称为初值边值混合问题。 定解问题往往不具有解析解,或者其解析解不易计算。所以要采用可行的 数值解法。有限差分方法就是一种数值解法,它的基本思想是先把问题的定义 域进行网格剖分,然后在网格点上,按适当的数值微分公式把定解问题中的微 商换成差商,从而把原问题离散化为差分格式,进而求出数值解。此外,还要 研究差分格式的解的存在性和唯一性、解的求法、解法的数值稳定性、差分格 式的解与原定解问题的真解的误差估计、差分格式的解当网格大小趋于零时是 否趋于真解(即收敛性),等等。 有限差分方法具有简单、灵活以及通用性强等特点,容易在计算机上实现
二、二阶常微分方程 二阶常微分方程一般可表示成如下的形式: y (x) f(x,y,y) a x b (2.1)
边值条件有如下三类[9]: 第一类边值条件
y(a) y(b) (2.2) 第二类边值条件 y (a) y(b) (2.3) 第三类边值条件[19]
oy(a) iy (a) oy(b) 1y (b) (2.4)
其中 0 1 0 0 1 0
0 1 0 0 1
0
o
在对边值问题用数值方法求解之前,应该从理论上分析该边值问题的解是 否存在,
若问题的解不存在,用数值方法计算出来的数据没有任何意义。下面 的定理给出了边值问题存在唯一解的充分条件。
定理:设方程(2.1)中的函数f及y , y在区域 {(x,y,y)|a x b, y,y }内连续,并且 f(x, y,y) (ii) y 在内有界,即存在常数M,使得
」(x,y,y). M
y (x, y, y )
则边值问题(2.1)-(2.4) 的解存在且唯一。 我们假设函数f(x,y,y)可以简单地表示成 f(x, y, y ) p(x)y q(x)y r(x) 即边值问题(2.1)-(2.2) 为具有如下形式的二阶线性边值问题 y P(x)y q(x)y r(x), y(a) , y(b)
三、有限差分法: 有限差分方法是用于微分方程定解问题求解的最广泛的数值方法,其基本 思想是用离散的、只含有有限个未知量的差分方程去近似代替连续变量的微分 方程和定解条件,并把相应的差分方程的解作为微分方程定解问题的近似解。 有限差分逼近的相关概念 设函数f(x)光滑,且Oh 1,利用Taylor展开,可得 2 h3 y(x) hy(x) 2y(x) 3
八"
h2 h3 y(x) hy(x) 2y(x) 3y (x)
由(2.19)可以得到一阶导数的表达式 2 y(x h) y(x) h h
y (x) — y (x) c y (x) h 2 3
或者
f(x,y,y) 0
(i) y
(x, y, y)
(2.5) y(x h) y(x h) (2.19)
(2.20)
(2.21a) y(x)y(x h) y(x) o(h) h (2.21b)
同理由(2.20)式可得 h / 、 h2 / 、 —y (x) — y (x) 2 3
y(x) y(x) y(x h)
h
或者
y(x) y(x) y(x h) O(h) h (2.22b)
(2.22a)
其中O(h)表示截断误差项.因此,可得一阶导数的 y (x)
的差分近似表达式为
y(x) y(x h) y(x) h (2.23)
y(x) y(x) y(x h) h (2.24)
由(2.21)和(2.22)可知,差商(2.23)和(2.24) 逼近微商y(x)的精度为一阶,
即为O(h),为了得到更精确的差分表达式,将(2.19)减(2.20)可得 2h?
y(x h) y(x h) 2hy (x) y (x)
(2.25)
从而可以的到
y(x) y(x h) y(x h) S()
6 2h (2.26a)
或者 y(x) y(x h) y(x h) o(h2)
2h (2.26b)
其中,x
可得一阶导数 y (x)的差分近似表达式为
y(x) y(x h) y(x h) 2h (2.27)
2 由此可知,(2.16)差商逼近微商y(x)的精度为二阶,即为O(h)。 类似地,我们还可以给出二阶微商 y(X)和高阶微商的差分近似表达式。例 如将(2.19)和(2.20)两式相加可得 h2
y(X h)y(X h)2y(X)h2y(X)12y(4)(X)
进而有 2 y (X) y(X h) 2y(x) y(X h) h、,⑷() y (X) ------------------------ 2 12 y (丿 h2 (2.28)
其中X h X h
.
因此,二阶导数y (X)的差分近似表达式[8]为 y (X) y(X h) 2y(X) y(X h) O(h2) h
(2.29)
实验内容(方法和步骤): 差分法代码如下 clc; clear all h=0.05;
%x属于【a,b ]
a=-1;b=1; x=a:h:b; n=le ngth(x); %定义y syms y; y=(((x+2).*(x+2))“(-1)); hold on grid on yx=zeros(1, n); yxx=zeros(1, n); for i=2: n-1 yx(i-1)=(y(i+1)-y(i-1))/(2*h); yxx(i-1)=(y(i+1)+y(i-1)-2*y(i))/hA2; end
plot(x,y,'r','li newidth',2) plot(x(2: n-1),yx(1: n-2),'g','li newidth',2); plot(x(2: n-1),yxx(1: n-2),'b','li newidth',2);-1
5 4 3 2 1 0
|| 1 I 1 P 1 h ■ 1 ■ » 1 II | | 1 li d 1 fe i ■ a i ■ I I 4 1 h II 1 1 1 1 ..■■■■ ■ ■■■ ■ ■
----- 原函数 ——差外一阶导数 ----- 菱分二阶导数 ci ■ a i ■
I ・ — | p II 1 1 1 1
1 P ! 1 P i i i i ■ 1 f a 1 f
1 i 1 1 1
I ! 1 ii ■ 1 V I 1 U 1
legend('原函数','差分一阶导数','差分二阶导数') xlabel('$$x$$','l nterpreter','latex','color','r','fo ntsize',28); ylabel('$$y$$','l nterpreter','latex','color','r','fo ntsize',28);
实验结果与分析: 差分法结果如下:
0 2 0.4 0.6 0.8 1 0.8 -0 6 04 -0 2