二阶常微分方程边值问题

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

有限差分方法具有简单、灵活以及通用性强等特点,容易在计算机上实现

二、二阶常微分方程

二阶常微分方程一般可表示成如下的形式:

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]

o y(a) i y (a)o y(b) 1y (b)(2.4)

其中0 1 00 1 0

0 1 0

0 1

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

h 3

y(x) hy(x)

2y(x) 3八"

h 2

h 3

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 / 、 h 2

/ 、 —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(h 2) 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)

两式相加可得 h 2 y (X h )y (X h )2y (X )h2y (X )12

y (4)(X )

进而有 2

y (X ) y (X h) 2y(x) y (X

h) h 、,⑷() y (X) ------------------------ 2 12 y (丿

h 2

(2.28)

其中X h X h

.

因此,二阶导数y (X)

的差分近似表达式[8]为 y (X ) y(X h) 2y (X) y(X h) O(h 2)

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))/h A2;

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);

相关文档
最新文档