您的当前位置:首页正文

二阶常微分方程边值问题

2022-06-18 来源:步旅网
课程名称: 数值代数课程设计 指导教师: 刘兰冬 班级: 姓名: 学号: 实验项目名称: 二阶常微分方程边值问题 实验目的及要求: 二阶常微分方程边值问题 d2u2u0,1x1dx2(x2)21u(1)1,u(1)3, u(x)(该问题真解为:1x2)步长h自己选定,利用差分法求出近似解,利用MATLAB函数画出比较图形。 1

实验原理: 一、微分方程: 微分方程是现代数学中一个很重要的分支,从早期的微积分时代起,这个学科就成为了理论研究和实践应用的一个重要领域。在微分方程理论中,定解条件通常有两种提法:一种是给出了积分曲线在初始时刻的性态,相应的定解条件称为初值问题;另一种是给出了积分曲线首末两端的性态,这类条件则称为边界条件,相应的定解问题称为边值问题。 常微分方程边值问题在应用科学与工程技术中有着非常重要的应用,例如工程学、力学、天文学、经济学以及生物学等领域中的许多实际问题通常会归结为常微分方程边值问题的求解。虽然求解常微分方程边值问题有很多解析方法可以求解,但这些方法只能用来求解一些特殊类型的方程,对从实际问题中提炼出来的微分方程往往不再适用,因而对常微分方程边值问题的数值方法的研究显得尤为重要。经典的数值方法主要有:试射法(打靶法)和有限差分法。 许多物理现象随着时间而发生变化、如热传导过程、气体扩散过程和波的传播过程都与时间有关。描述这些过程的偏微分方程具有这样的性质;若初始时刻t=t0的解已给定,则t>t0时刻的解完全取决于初始条件和某些边界条件。利用差分法解这类问题,就是从初始值出发,通过差分格式沿时间增加的方向,逐步求出微分方程的近似解。 微分方程的定解问题就是在满足某些定解条件下求微分方程的解。在空间区域的边界上要满足的定解条件称为边值条件。如果问题与时间有关,在初始时刻所要满足的定解条件,称为初值条件。不含时间而只带边值条件的定解问题,称为边值问题。与时间有关而只带初值条件的定解问题,称为初值问题。同时带有两种定解条件的问题,称为初值边值混合问题。 定解问题往往不具有解析解,或者其解析解不易计算。所以要采用可行的2

数值解法。有限差分方法就是一种数值解法,它的基本思想是先把问题的定义域进行网格剖分,然后在网格点上,按适当的数值微分公式把定解问题中的微商换成差商,从而把原问题离散化为差分格式,进而求出数值解。此外,还要研究差分格式的解的存在性和唯一性、解的求法、解法的数值稳定性、差分格式的解与原定解问题的真解的误差估计、差分格式的解当网格大小趋于零时是否趋于真解(即收敛性),等等。 有限差分方法具有简单、灵活以及通用性强等特点,容易在计算机上实现。 二、二阶常微分方程 二阶常微分方程一般可表示成如下的形式: 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] 0y(a)1y(a), 0y(b)1y(b) (2.4) 其中010, 010, 010, 010。 在对边值问题用数值方法求解之前,应该从理论上分析该边值问题的解是否存在,若问题的解不存在,用数值方法计算出来的数据没有任何意义。下面的定理给出了边值问题存在唯一解的充分条件。 ff定理:设方程(2.1)中的函数f及y,y在区域 {(x,y,y)|axb,y,y}内连续,并且 3

f(x,y,y)0,y(ⅰ) (x,y,y); f(x,y,y)y(ⅱ) 在内有界,即存在常数M,使得 f(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)axb (2.5) 三、有限差分法: 有限差分方法是用于微分方程定解问题求解的最广泛的数值方法,其基本思想是用离散的、只含有有限个未知量的差分方程去近似代替连续变量的微分方程和定解条件,并把相应的差分方程的解作为微分方程定解问题的近似解。 有限差分逼近的相关概念 设函数f(x)光滑,且0h1,利用Taylor展开,可得 h2h3y(xh)y(x)hy(x)y(x)y(x)23 (2.19) h2h3y(xh)y(x)hy(x)y(x)y(x)23 (2.20) 由(2.19)可以得到一阶导数的表达式 y(xh)y(x)hh2y(x)y(x)y(x)h23 (2.21a) 或者 4

y(x)y(xh)y(x)O(h)h (2.21b) 同理由(2.20)式可得 y(x)y(xh)hh2y(x)y(x)y(x)h23 (2.22a) 或者 y(x)y(x)y(xh)O(h)h (2.22b) 其中O(h)表示截断误差项.因此,可得一阶导数的y(x)的差分近似表达式为 y(x)y(xh)y(x)h (2.23) y(x)y(xh)h (2.24) y(x)由(2.21)和(2.22)可知,差商(2.23)和(2.24)逼近微商y(x)的精度为一阶,即为O(h),为了得到更精确的差分表达式,将(2.19)减(2.20)可得 2h3y(xh)y(xh)2hy(x)y(x)3 (2.25) 从而可以的到 y(xh)y(xh)h2y(x)y()2h6 (2.26a) 或者 y(x)y(xh)y(xh)O(h2)2h (2.26b) 其中,xhxh. 可得一阶导数y(x)的差分近似表达式为 y(x)y(xh)y(xh)2h (2.27) 2O(h)。 y(x)由此可知,(2.16)差商逼近微商的精度为二阶,即为5

类似地,我们还可以给出二阶微商y(x)和高阶微商的差分近似表达式。例如将(2.19)和(2.20)两式相加可得 h2(4)y(xh)y(xh)2y(x)hy(x)y(x)12 2进而有 y(xh)2y(x)y(xh)h2(4)y(x)y()h212 (2.28) 其中xhxh. 因此,二阶导数y(x)的差分近似表达式[8]为 y(x)y(xh)2y(x)y(xh)O(h2)2h (2.29) 实验内容(方法和步骤): 差分法代码如下 clc; clear all h=0.05; %x属于【a,b】 a=-1;b=1; x=a:h:b; 6

n=length(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^2; end plot(x,y,'r','linewidth',2) plot(x(2:n-1),yx(1:n-2),'g','linewidth',2); plot(x(2:n-1),yxx(1:n-2),'b','linewidth',2); 7

legend('原函数','差分一阶导数','差分二阶导数') xlabel('$$x$$','Interpreter','latex','color','r','fontsize',28); ylabel('$$y$$','Interpreter','latex','color','r','fontsize',28); 实验结果与分析: 差分法结果如下: 8

从图上我们可以看到,可以得到函数图像确实十分接近理论上的解答,差分二阶导数比起差分一阶导数来说,更加接近原函数。差分二阶导数在后面几乎能跟原函数重合,是非常好的求边值问题的方法。 我们在整个实验中,感觉最困难的就是对于差分法的理解以及程序的编写上面。我们查询了各种有关于常微分方程边值问题、有限差分法、二阶常微分方程的资料以及论文,差分法实际上就是用离散的、只含有有限个未知量的差分方程去近似代替连续变量的微分方程和定解条件。有一点要注意,我们这个算法只适合用于等间隔差分。 做了这道题之后,感觉我们对于常微分边值问题有了更进一步的理解,尤其是各种思维之间的转换尤其重要,在今后的数学学习中,希望我们能够灵活的运用。 成绩:

批阅教师签名: 9

因篇幅问题不能全部显示,请点此查看更多更全内容