常微分方程边值问题的数值解法
- 格式:doc
- 大小:1.32 MB
- 文档页数:21
常微分方程的数值解法在自然科学的许多领域中,都会遇到常微分方程的求解问题。
然而,我们知道,只有少数十分简单的微分方程能够用初等方法求得它们的解,多数情形只能利用近似方法求解。
在常微分方程课中已经讲过的级数解法,逐步逼近法等就是近似解法。
这些方法可以给出解的近似表达式,通常称为近似解析方法。
还有一类近似方法称为数值方法,它可以给出解在一些离散点上的近似值。
利用计算机解微分方程主要使用数值方法。
我们考虑一阶常微分方程初值问题⎪⎩⎪⎨⎧==00)(),(yx y y x f dx dy在区间[a, b]上的解,其中f (x, y )为x, y 的已知函数,y 0为给定的初始值,将上述问题的精确解记为y (x )。
数值方法的基本思想是:在解的存在区间上取n + 1个节点b x x x x a n =<<<<= 210这里差i i i x x h -=+1,i = 0,1, …, n 称为由x i 到x i +1的步长。
这些h i 可以不相等,但一般取成相等的,这时na b h -=。
在这些节点上采用离散化方法,(通常用数值积分、微分。
泰勒展开等)将上述初值问题化成关于离散变量的相应问题。
把这个相应问题的解y n 作为y (x n )的近似值。
这样求得的y n 就是上述初值问题在节点x n 上的数值解。
一般说来,不同的离散化导致不同的方法。
§1 欧拉法与改进欧拉法 1.欧拉法1.对常微分方程初始问题(9.2))((9.1) ),(00⎪⎩⎪⎨⎧==y x y y x f dx dy用数值方法求解时,我们总是认为(9.1)、(9.2)的解存在且唯一。
欧拉法是解初值问题的最简单的数值方法。
从(9.2)式由于y (x 0) = y 0已给定,因而可以算出),()('000y x f x y =设x 1 = h 充分小,则近似地有:),()(')()(00001y x f x y hx y x y =≈-(9.3)记 ,n ,,i x y y i i 10 )(== 从而我们可以取),(0001y x hf y y ==作为y (x 1)的近似值。
常微分方程边值问题的解法常微分方程是描述自然科学、工程技术和经济管理等领域中各种变化规律的一个基础理论。
而边值问题是求解一些微分方程的重要问题之一,涉及到数学、物理、化学等多个领域。
在本文中,我们将讨论常微分方程边值问题的解法。
1. 边值问题的定义在微分方程解的过程中,边值问题(Boundary Value Problem, BVP)是指在区间 $[a,b]$ 上求解微分方程的解,同时已知$y(a)=\alpha$,$y(b)=\beta$ 的问题。
边值问题是对初值问题(Initial Value Problem, IVP)的一种自然延伸,在一定范围内对变量的取值进行限制,使得解的可行域更为明确。
举例来说,对于经典的二阶线性微分方程$$ y''+p(x)y'+q(x)y=f(x), \quad a<x<b $$ 如果边界条件是$y(a)=\alpha$,$y(b)=\beta$,则这个微分方程就是一个边值问题。
2. 常用解法对于一般的常微分方程边值问题,没有通用的方法可以求出其解析解,必须采用一些数值计算的方法进行求解。
常用的边值问题的解法大致有以下几种:(1)求解特殊解的方法这种方法常用于求解具有周期性边界条件的问题。
如果问题中的边界条件满足:$y(a)=y(b)=0$,则可以将问题转化为一个周期问题,即 $y(a+k)=y(b+k)$,其中 $k=b-a$。
这时,边值问题就变成了求解这个方程的周期解,例如,可以使用Fourier 级数来求解。
(2)变分法变分法是一种基于求解最小值的方法,可以用来求解一类线性边值问题。
其基本思路是将原问题转化为求一个积分的最小值。
对于一般的边值问题 $y''+f(x)y=g(x)$,可以构造一个变分问题:$$ \delta\int_a^b \left(y'^2-f(x)y^2-2gy\right) \mathrm{d}x=0 $$ 这个问题的解可以通过对变分问题的欧拉方程求解而得到。
第8章常微分方程边值问题的数值解法8.1 引言第7章介绍了求解常微分方程初值问题的常用的数值方法;本章将介绍常微分方程的边值问题的数值方法。
只含边界条件(boundary-value condition)作为定解条件的常微分方程求解问题称为常微分方程的边值问题(boundary-value problem). 为简明起见,我们以二阶边值问题为例介绍常用的数值方法。
一般的二阶常微分方程边值问题(boundary-value problems for second-order ordinary differential equations)为, (8.1.1)其边界条件为下列三种情况之一:(1) 第一类边界条件 (the first-type boundary conditions):(2) 第二类边界条件 (the second-type boundary conditions):(3) 第三类边界条件 (the third-type boundary conditions):定理8.1.1 设(8.1.1)中的函数及其偏导数在上连续. 若(1) 对所有,有;(2) 存在常数,对所有,有,则边值问题(8.1.1)有唯一解。
推论若线性边值问题(8.1.2)满足(1)和上连续;(2) 在上,,则边值问题(8.1.1)有唯一解。
求边值问题的近似解,有三类基本方法:(1) 差分法(difference method),也就是用差商代替微分方程及边界条件中的导数,最终化为代数方程求解;(2) 有限元法(finite element method);(3) 把边值问题转化为初值问题,然后用求初值问题的方法求解。
8.2 差分法8.2.1 一类特殊类型二阶线性常微分方程的边值问题的差分法设二阶线性常微分方程的边值问题为其中在上连续,且用差分法解微分方程边值问题的过程是:(i) 把求解区间分成若干个等距或不等距的小区间,称之为单元;(ii) 构造逼近微分方程边值问题的差分格式. 构造差分格式的方法有差分法, 积分插值法及变分插值法;本节采用差分法构造差分格式;(iii) 讨论差分解存在的唯一性、收敛性及稳定性;最后求解差分方程.现在来建立相应于二阶线性常微分方程的边值问题(8.2.1), (8.2.2)的差分方程.( i ) 把区间等分,即得到区间的一个网格剖分:,其中分点,并称之为网格节点(grid nodes);步长.( ii ) 将二阶常微分方程(8.2.2)在节点处离散化:在内部节点处用数值微分公式(8.2.3)代替方程(8.2.2)中,得, (8.2.4)其中.当充分小时,略去式(8.2.4)中的,便得到方程(8.2.1)的近似方程, (8.2.5)其中,分别是的近似值, 称式(8.2.5)为差分方程(difference equation),而称为差分方程(8.2.5)逼近方程(8.2.2)的截断误差(truncation error). 边界条件(8.7.2)写成(8.2.6)于是方程(8.2.5), (8.2.6)合在一起就是关于个未知量,以及个方程式的线性方程组:(8.2.7)这个方程组就称为逼近边值问题(8.2.1), (8.2.2)的差分方程组(system of difference equations)或差分格式(difference scheme),写成矩阵形式. (8.2.8)用第2章介绍的解三对角方程组的追赶法求解差分方程组(8.2.7)或(8.2.8), 其解称为边值问题(8.2.1), (8.2.2)的差分解(difference solution). 由于(8.2.5)是用二阶中心差商代替方程(8.2.1)中的二阶微商得到的,所以也称式(8.2.7)为中心差分格式(centered-difference scheme).( iii ) 讨论差分方程组(8.2.7)或(8.2.8)的解是否收敛到边值问题(8.2.1), (8.2.2)的解,估计误差.对于差分方程组(8.2.7),我们自然关心它是否有唯一解;此外,当网格无限加密,或当时,差分解是否收敛到微分方程的解. 为此介绍下列极值原理:定理8.2.1 (极值原理) 设是给定的一组不全相等的数,设. (8.2.9)(1) 若, 则中非负的最大值只能是或;(2) 若, 则中非正的最小值只能是或.证只证(1)的情形,而(2)的情形可类似证明.用反证法. 记,假设, 且在中达到. 因为不全相等,所以总可以找到某个,使,而和中至少有一个是小于的. 此时因为,所以, 这与假设矛盾,故只能是或. 证毕!推论差分方程组(8.2.7)或(8.2.8)的解存在且唯一.证明只要证明齐次方程组(8.2.10)只有零解就可以了. 由定理8.7.1知,上述齐次方程组的解的非负的最大值和非正的最小值只能是或. 而,于是证毕!利用定理8.2.1还可以证明差分解的收敛性及误差估计. 这里只给出结果:定理8.2.2 设是差分方程组(8.2.7)的解,而是边值问题(8.2.1), (8.2.2)的解在上的值,其中. 则有(8.2.11)其中.显然当时,. 这表明当时,差分方程组(8.2.7)或(8.2.8)的解收敛到原边值问题(8.7.1), (8.7.2)的解.例8.2.1 取步长,用差分法解边值问题并将结果与精确解进行比较.解因为,, 由式(8.2.7)得差分格式,, 其结果列于表8.2.1.表8.2.1准确值0 1 0 01 0.1 -0. 0332923 -0.03336562 0.2 -0. 0649163 -0.06506043 0.3 -0. 0931369 -0.09334614 0.4 -0. 1160831 -0.11634825 0.5 -0. 1316725 -0.13197966 0.6 -0. 1375288 -0.13785787 0.7 -0. 1308863 -0.13120878 0.8 -0. 1084793 -0.10875539 0.9 -0. 0664114 -0.066586510 1.0 0 0从表8.2.1可以看出, 差分方法的计算结果的精度还是比较高的. 若要得到更精确的数值解,可用缩小步长的方法来实现.8.2.2 一般二阶线性常微分方程边值问题的差分法对一般的二阶微分方程边值问题(8.2.12)假定其解存在唯一.为求解的近似值,类似于前面的做法,( i ) 把区间等分,即得到区间的一个网格剖分:,其中分点,步长.( ii ) 对式(8.2.12)中的二阶导数仍用数值微分公式代替,而对一阶导数,为了保证略去的逼近误差为,则用3点数值微分公式;另外为了保证内插,在2个端点所用的3点数值微分公式与内网格点所用的公式不同,即(8.2.13)略去误差,并用的近似值代替,,便得到差分方程组(8.2.14)其中,是的近似值. 整理得(8.2.15)解差分方程组(8.2.15),便得边值问题(8.2.12)的差分解.特别地, 若,则式(8.2.12)中的边界条件是第一类边值条件:此时方程组(7.7.16)为(8.2.16)方程组(8.2.16)是三对角方程组,用第2章介绍的解三对角方程组的追赶法求解差分方程组(8.2.16),便得边值问题(8.2.12)的差分解.( iii ) 讨论差分方程组(8.2.16)的解是否收敛到微分方程的解,估计误差. 这里就不再详细介绍.例8.2.2 取步长,用差分法求下列边值问题的近似解,并将结果与精确解进行比较.精确解是.解因为,, 由式(8.2.17)得差分格式,, 其结果列于表8.2.2.表8.2.2准确值0 0 -0.3 -0.31 /16 -0.3137967 -0.31374462-0.3154982 -0.3154322 2/163-0.3050494 -0.3049979 3/1644-0.2828621 -0.2828427/1655-0.2497999 -0.2498180/1666-0.2071465 -0.2071930/167-0.1565577 -0.15660567/168 /2 -0.1000000 -0.10000008.3 有限元法有限元法(finite element method)是求解微分方程定解问题的有效方法之一,它特别适用在几何、物理上比较复杂的问题. 有限元法首先成功地应用于结构力学和固体力学,以后又应用于流体力学、物理学和其他工程科学. 为简明起见,本节以线性两点边值问题为例介绍有限元法.考虑线性两点边值问题其中,.此微分方程描述了长度为的可变交叉截面(表示为)的横梁在应力和下的偏差.8.3.1 等价性定理记, 引进积分. (8.3.3)任取,就有一个积分值与之对应,因此是一个泛函(functional),即函数的函数. 因为这里是的二次函数,因此称为二次泛函.对泛函(8.3.3)有如下变分问题(variation problem):求函数,使得对任意, 均有, (8.3.4) 即在处达到极小, 并称为变分问题(8.3.4)的解.可以证明:定理8.3.1(等价性定理)是边值问题(8.3.1), (8.3.2)的解的充分必要条件是使泛函在上达到极小,即是变分问题(8.3.4)在上的解.证 (充分性) 设是变分问题的解;即使泛函在上达到极小,证明必是边值问题(8.3.1), (8.3.2)的解.设是任意一个满足的函数,则函数,其中为参数. 因为使得达到极小,所以,即积分作为的函数,在处取极小值,故. (8.3.5)计算上式,得利用分部积分法计算积分代入式(8.3.6),得因为是任意函数,所以必有. (8.3.8) 否则,若在上某点处有,不妨设,则由函数的连续性知,在包含的某一区间上有.作显然,且,但,这与式(8.3.7)矛盾. 于是式(8.3.8)成立,即变分问题(8.3.4)的解满足微分方程(8.3.1), 且故它是边值问题(8.3.1), (8.3.2)的解.。
常微分方程边值问题解法
常微分方程边值问题解法:
常微分方程边值问题是指在一定区间内,给定一个微分方程的初始条件和边界条件,求解微分方程的解在这个区间内满足这些条件的问题。
常见的边值问题有两种类型:Dirichlet边界条件和Neumann边界条件。
解决常微分方程边值问题的方法有很多种,下面介绍其中两种常用的方法:
1. 有限差分法:
有限差分法是利用差分近似替代微分,将微分方程转化为一组代数方程。
首先将区间离散化,将连续的函数转化为离散的数值,然后利用中心差分、前向差分或后向差分的方法,将微分方程变为代数方程组,最后利用线性代数的方法求解这个方程组。
2. 有限元法:
有限元法是将区间划分为若干个小的子区间,将微分方程转化为一组局部的代数方程组,然后将这些方程组组合成整个问题的全局方程组。
有限元法可以适用于更加复杂的边值问题,但是需要更多的计算量和更高的数学水平。
总之,常微分方程边值问题的解法有很多种,需要根据具体情况选择不同的方法。
常微分方程边值问题的上下解方法常微分方程边值问题的上下解方法本文主要利用上下解方法研究了几类常微分方程的边值问题,得到了许多有意义的结论.第一章简要介绍了常微分边值问题上下解方法的一些发展现状.为方便阅读,在第二章给出了所要用到的定义、定理等基础知识.在第三章中,利用反序上下解方法讨论了二阶两点边值问题解的存在性和唯一性的充分条件.给出了求最小解和最大解的迭代序列,在满足解的唯一性的条件下给出了求解的迭代序列及误差估计式.第四章沿用了与第三章类似地方法讨论了二阶三点边值问题解的存在性和唯一性的充分条件,其中0 η 1,δ 0.第五章,利用上下解方法和Leray-Schauder度理论讨论了二阶两点边值问题三个解的存在性.通过求其Green函数将所要研究的边值问题的解的问题转化为求其相应算子的不动点.最后利用Leray-Schauder度理论证明了该算子的三个不动点的存在性.第六章讨论了二阶多点边值问题三个解的存在性.其中f满足Carathéodory条件,且通过求其Green函数将所要研究的边值问题的解的问题转化为求其相应算子的不动点.若f 满足Carathéodory条件和至多线性增长条件,则利用Lebesgue控制收敛定理证明了此算子的全连续性,最后应用Leray-Schauder度理论证明了算子的三个不动点的存在性.在最后一章应用和第五章类似地方法讨论了三阶三点边值问题的三个解的存在性,其中0 δ1,0 ηb.本文举了一些例子,将所得的研究结果应用于某些具体边值问题,给出了这一类边值问题解的存在性的判断方法,具有较强的实际应用背景. 摘要2-4ABSTRACT4-7第一章绪论7-10第二章预备知识10-142.1 绝对连续函数与微积分基本定理102.2 Leray-Schauder 度的一些性质10-112.3 边值问题中的Green 函数的求法11-14第三章反序上下解条件下的二阶两点边值问题解的存在性与唯一性14-21第四章反序上下解条件下的二阶三点边值问题解的存在性与唯一性21-30第五章二阶两点边值问题三个解的存在性30-41第六章二阶多点边值问题三个解的存在性41-52第七章三阶三点边值问题三个解的存在性52-62参考文献62-65在读期间公开发表的论文和承担科研项目及取得成果65-66致谢66。
第六章常微分方程的数值解法第六章常微分方程的数值解法在自然科学研究和工程技术领域中,常常会遇到常微分方程的求解问题。
传统的数学分析方法仅能给出一些简单的、常系数的、经典的线性方程的解析表达式,不能处理复杂的、变系数的、非线性方程,对于这些方面的问题,只能求诸于近似解法和数值解法。
而且在许多实际问题中,确确实实并不总是需要精确的解析解,往往只需获得近似的解或者解在若干个点上的数值即可。
在高等数学课程中介绍过的级数解法和逐步逼近法,能够给出解的近似表达式,这一类方法称为近似解法。
还有一类方法是通过计算机来求解微分方程的数值解,给出解在一些离散点上的近似值,这一类方法称作为数值方法。
本章主要介绍常微分方程初值问题的数值解法,包括Euler 方法、Runge-Kutta 方法、线性多步法以及微分方程组与高阶微分方程的数值解法。
同时,对于求解常微分方程的边值问题中比较常用的打靶法与有限差分法作了一个简单的介绍。
§1 基本概念1.1 常微分方程初值问题的一般提法常微分方程初值问题的一般提法是求解满足如下条件的函数,,b x a x y ≤≤)(=<<=α)(),(a y bx a y x f dxdy, (1.1) 其中),(y x f 是已知函数,α是给定的数值。
通常假定上面所给出的函数),(y x f 在给定的区域},),{(+∞<≤≤=yb x a y x D 上面满足如下条件:(1) 函数),(y x f 在区域D 上面连续;(2) 函数),(y x f 在区域D 上关于变量y 满足Lipschitz(李普希茨)条件:212121,),(),(y y b x a y y L y x f y x f ?≤≤?≤?,, (1.2)其中常数L 称为Lipschitz(李普希茨)常数。
由常微分方程的基本理论可以知道,假如(1.1)中的),(y x f 满足上面两个条件,则常微分方程初值问题(1.1)对于任意给定的初始值α都存在着唯一的解,,b x a x y ≤≤)(并且该唯一解在区间[a,b]上是连续可微的。
摘要本文主要研究二阶常微分方程边值问题的数值解法。
对线性边值问题,我们总结了两类常用的数值方法,即打靶法和有限差分方法,对每种方法都列出了详细的计算步骤和Matlab程序代码,通过具体的算例对这两类方法的优缺点进行了细致的比较。
关键字:常微分方程边值问题;打靶法;差分法;ABSTRACTThis article mainly discusses the numerical methods for solving Second-Order boundary value problems for Ordinary Differential Equations. On the one hand, we review two types of commonly used numerical methods for linear boundary value problems, i.e. shooting method and finite difference method. For each method, we give both the exact calculating steps , we compare the advantages and disadvantages in detail of these two methods through a specific numerical example.Key words:Boundary-Value Problems for Ordinary Differential Equations;Shooting Method;Finite Difference Method;目录第一章引言................................................................................................................... - 1 -第二章二阶线性常微分方程.................................................................................. - 2 -2.1试射法(“打靶”法) ............................................................................................ - 3 -2.1.1简单的试射法............................................................................................ - 3 -2.1.2 基于叠加原理的试射法........................................................................... - 4 -2.2 有限差分法......................................................................................................... - 10 -2.2.1 有限差分逼近的相关概念...................................................................... - 11 -2.2.2 有限差分方程的建立............................................................................. - 13 -2.2.3 其他边值条件的有限差分方程............................................................. - 14 -2.2.4 有限差分方程的解法............................................................................. - 16 -第三章二阶非线性微分方程........................................................ 错误!未定义书签。
第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 αβ''-=<<⎧⎨==⎩其中(),()q x f x 在[,]a b 上连续,且()0q x ≥.用差分法解微分方程边值问题的过程是:(i) 把求解区间[,]a b 分成若干个等距或不等距的小区间,称之为单元;(ii) 构造逼近微分方程边值问题的差分格式. 构造差分格式的方法有差分法, 积分插值法及变分插值法;本节采用差分法构造差分格式;(iii) 讨论差分解存在的唯一性、收敛性及稳定性;最后求解差分方程. 现在来建立相应于二阶线性常微分方程的边值问题(8.2.1), 的差分方程. ( i ) 把区间[,]I a b =N 等分,即得到区间[,]I a b =的一个网格剖分:011N N a x x x x b -=<<<<=,其中分点(0,1,,)i x a ih i N =+=,并称之为网格节点(grid nodes);步长b a Nh -=. ( ii ) 将二阶常微分方程(8.2.2)在节点i x 处离散化:在内部节点(1,2,,1)i x i N =-处用数值微分公式2(4)1112()2()()()(),12i i i i i i i i y x y x y x h y x y x x h ξξ+---+''=-<< (8.2.3) 代替方程(8.2.2)中()i y x '',得112()2()()()()()()i i i i i i i y x y x y x q x y x f x R x h +--+-=+,(8.2.4) 其中2(4)()()12i i h R x y ξ=. 当h 充分小时,略去式(8.2.4)中的()i R x ,便得到方程的近似方程1122i i i i i i y y y q y f h +--+-=,(8.2.5) 其中(),()i i i i q q x f f x ==, 11,,i i i y y y +-分别是11(),(),()i i i y x y x y x +-的近似值, 称式(8.2.5)为差分方程(difference equation),而()i R x 称为差分方程逼近方程的截断误差(truncation error). 边界条件写成0,.N y y αβ==(8.2.6)于是方程(8.2.5), 合在一起就是关于1N +个未知量01,,,N y y y ,以及1N +个方程式的线性方程组:2211212211222111(2),(2),1,2,,1,(2).i i i i i N N N N q h y y h f y q h y y h f i N y q h y h f αβ-+----⎧-++=-⎪-++==-⎨⎪-+=-⎩(8.2.7)这个方程组就称为逼近边值问题(8.2.1), 的差分方程组(system of difference equations)或差分格式(difference scheme),写成矩阵形式2211122222223332222222111(2)11(2)11(2)11(2)11(2)N N N N N N y q h h f y q h h f y q h h f y q h h f y q h h f αβ------⎡⎤⎡⎤-+-⎡⎤⎢⎥⎢⎥⎢⎥-+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-+=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-+⎢⎥⎢⎥⎢⎥-+-⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦. (8.2.8)用第2章介绍的解三对角方程组的追赶法求解差分方程组(8.2.7)或 其解01,,,N y y y 称为边值问题 的差分解(difference solution). 由于是用二阶中心差商代替方程中的二阶微商得到的,所以也称式为中心差分格式(centered-difference scheme).( iii ) 讨论差分方程组(8.2.7)或的解是否收敛到边值问题 的解,估计误差. 对于差分方程组(8.2.7),我们自然关心它是否有唯一解;此外,当网格无限加密,或当0h →时,差分解i y 是否收敛到微分方程的解()i y x . 为此介绍下列极值原理:定理8.2.1 (极值原理) 设01,,,N y y y 是给定的一组不全相等的数,设1122(),0,1,2,,i i i i i i i y y y l y q y q i N h +--+=-≥=.(8.2.9)(1) 若()0,1,2,,i l y i N ≥=, 则{}0Ni i y =中非负的最大值只能是0y 或N y ; (2) 若()0,1,2,,i l y i N ≤=, 则{}0Ni i y =中非正的最小值只能是0y 或N y .证 只证(1) ()0i l y ≥的情形,而(2) ()0i l y ≤的情形可类似证明. 用反证法. 记{}0max i i NM y ≤≤=,假设0M ≥, 且在121,,,N y y y -中达到. 因为i y 不全相等,所以总可以找到某个00(11)i i N ≤≤-,使0i y M =,而01i y -和01i y +中至少有一个是小于M 的. 此时0000000011222()2.i i i i i i i i y y y l y q y h M M M q M q M h +--+=--+<-=-因为00,0i q M ≥≥,所以0()0i l y <, 这与假设矛盾,故M 只能是0y 或N y . 证毕!推论 差分方程组(8.2.7)或的解存在且唯一. 证明 只要证明齐次方程组11202()0,0,1,2,,1,0,0i i i i i i i N y y y l y q y q i N h y y +--+⎧=-=≥=-⎪⎨⎪==⎩ (8.2.10)只有零解就可以了. 由定理8.7.1知,上述齐次方程组的解01,,,N y y y 的非负的最大值和非正的最小值只能是0y 或N y . 而00,0N y y ==,于是0,1,2,,.i y i N == 证毕!利用定理8.2.1还可以证明差分解的收敛性及误差估计. 这里只给出结果: 定理8.2.2 设i y 是差分方程组的解,而()i y x 是边值问题 的解()y x 在i x 上的值,其中0,1,,i N =. 则有224()(),96i i i M h y x y b a ε=-≤-(8.2.11)其中(4)4max ()a x bM yx ≤≤=.显然当0h →时,()0i i i y x y ε=-→. 这表明当0h →时,差分方程组(8.2.7)或的解收敛到原边值问题 的解.例8.2.1 取步长0.1h =,用差分法解边值问题43,01,(0)(1)0,y y x x y y ''-=≤≤⎧⎨==⎩并将结果与精确解()()2222()3434x xy x e e ee x --=---进行比较.解 因为110N h ==,()4,()3q x f x x ==, 由式(8.2.7)得差分格式221222112289(240.1)30.10.1,(240.1)30.1,2,3,,8,(240.1)30.10.9,i i i i y y y y y x i y y -+⎧-+⨯+=⨯⨯⎪-+⨯+=⨯=⎨⎪-+⨯=⨯⨯⎩0100y y ==, 00.1,1,2,,9i x ih i i =+==, 其结果列于表8.2.1.从表8.2.1可以看出, 差分方法的计算结果的精度还是比较高的. 若要得到更精确的数值解,可用缩小步长h 的方法来实现.8.2.2 一般二阶线性常微分方程边值问题的差分法对一般的二阶微分方程边值问题1212()()()()()(),,()(),()(),y x p x y x q x y x f x a x b y a y a y b y b αααβββ'''++=<<⎧⎪'+=⎨⎪'+=⎩ (8.2.12) 假定其解存在唯一.为求解的近似值,类似于前面的做法,( i ) 把区间[,]I a b =N 等分,即得到区间[,]I a b =的一个网格剖分:011N N a x x x x b -=<<<<=,其中分点(0,1,,)i x a ih i N =+=,步长b a Nh -=. ( ii ) 对式(8.2.12)中的二阶导数仍用数值微分公式2(4)1112()2()()()(),12i i i i i i i iy x y x y x h y x y x x h ξξ+---+''=-<<代替,而对一阶导数,为了保证略去的逼近误差为2()O h ,则用3点数值微分公式;另外为了保证内插,在2个端点所用的3点数值微分公式与内网格点所用的公式不同,即21112012000022212()()()(),,1,2,,1,263()4()()()(),,23()4()3()()(),.23i i i i i i i N N N N N N N N y x y x h y x y x x i N h y x y x y x h y x y x x h y x y x y x h y x y x x h ξξξξξξ+-----⎧-''''=-<<=-⎪⎪-+-⎪''''=+<<⎨⎪⎪-+''''=+<<⎪⎩(8.2.13) 略去误差,并用()i y x 的近似值i y 代替()i y x ,(),(),()i i i i i i p p x q q x f f x ===,便得到差分方程组1111221001221211(2)(),1,2,,1,2(34),2(43),2i i i i i i i i i N N N N p y y y y y q y f i N h hy y y y h y y y y h αααβββ-++---⎧-++-+==-⎪⎪⎪+-+-=⎨⎪⎪+-+=⎪⎩(8.2.14)其中(),(),(),1,2,,1i i i i i i q q x p p x f f x i N ====-, i y 是()i y x 的近似值. 整理得12021222211222121(23)42,(2)2(2)(2)2,1,2,,1,4(32)2.i i i i i i i N N N h y y y h hp y h q y hp y h f i N y y h y h αααααβββββ-+---+-=⎧⎪---++==-⎨⎪-++=⎩ (8.2.15)解差分方程组(8.2.15),便得边值问题的差分解01,,,N y y y .特别地, 若12121,0,1,0ααββ====,则式(8.2.12)中的边界条件是第一类边值条件:(),();y a y b αβ==此时方程组为221112112211221211112(2)(2)2(2),(2)2(2)(2)2,2,3,,2,(2)2(2)2(2).i i i i i i i N N N N N N h q y hp y h f hp hp y h q y hp y h f i N hp y h q y h f hp αβ-+------⎧--++=--⎪---++==-⎨⎪---=-+⎩(8.2.16)方程组(8.2.16)是三对角方程组,用第2章介绍的解三对角方程组的追赶法求解差分方程组,便得边值问题的差分解01,,,N y y y .( iii ) 讨论差分方程组(8.2.16)的解是否收敛到微分方程的解,估计误差. 这里就不再详细介绍.例8.2.2取步长/16h π=,用差分法求下列边值问题的近似解,并将结果与精确解进行比较.精确解是1()(sin 3cos )10y x x x =-+. 解 因为(20)8N h π=-=,()1,()2,()cos p x q x f x x =-=-=, 由式(8.2.17)得差分格式()()()()()()()()()()()()()2122211222122216(2)216(1)216cos 16216(1)(0.3),216(1)2216(2)216(1)216cos 16,2,3,,6,216(1)2216(2)216cos 7i i i N N y yy y y i i y y πππππππππππππ-+--⎡⎤--⨯-++⨯-⎡⎤⎣⎦⎣⎦=--⨯-⨯-⎡⎤⎣⎦⎡⎤-⨯---⨯-++⨯-⎡⎤⎡⎤⎣⎦⎣⎦⎣⎦==⎡⎤-⨯---⨯-⎡⎤⎣⎦⎣⎦=()()16216(1)(0.1),ππ⎧⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪-+⨯-⨯-⎡⎤⎣⎦⎩080.3,0.1y y =-=-, 00.1,1,2,,9i x ih i i =+==, 其结果列于表8.2.2.有限元法有限元法(finite element method)是求解微分方程定解问题的有效方法之一,它特别适用在几何、物理上比较复杂的问题. 有限元法首先成功地应用于结构力学和固体力学,以后又应用于流体力学、物理学和其他工程科学. 为简明起见,本节以线性两点边值问题为例介绍有限元法.考虑线性两点边值问题()(8.3.1)(8.3.2)()()()()(),,(),(),Ly p x y x q x y x f x a x b y a y b αβ⎧''⎪=-+=≤≤⎨==⎪⎩其中1()0,()0,C [,]p x q x p a b >≥∈, ,C[,]q f a b ∈.此微分方程描述了长度为b a -的可变交叉截面(表示为()q x )的横梁在应力()p x 和()f x 下的偏差()y x .8.3.1 等价性定理记{}221C [,]()C [,],(),()a b y y y x a b y a y b αβ==∈==, 引进积分()22()()[()]()()2()()d baI y p x y x q x y x f x y x x '=+-⎰. (8.3.3)任取21()C [,]y y x a b =∈,就有一个积分值()I y 与之对应,因此()I y 是一个泛函(functional),即函数的函数. 因为这里是,y y '的二次函数,因此称()I y 为二次泛函.对泛函(8.3.3)有如下变分问题(variation problem):求函数21C [,]y a b ∈,使得对任意21C [,]y a b ∈, 均有()()I y I y ≥, (8.3.4)即()I y 在y 处达到极小, 并称y 为变分问题(8.3.4)的解.可以证明:定理8.3.1(等价性定理) y 是边值问题 的解的充分必要条件是y 使泛函()I y 在21C [,]a b 上达到极小,即y 是变分问题在21C [,]a b 上的解.证 (充分性) 设21C [,]y a b ∈是变分问题()I y 的解;即y 使泛函()I y 在21C [,]a b 上达到极小,证明y 必是边值问题(8.3.1), 的解.设()x η是2C [,]a b 任意一个满足()()0a b ηη==的函数,则函数21()()()C [,]y x y x x a b αη=+∈,其中α为参数. 因为y 使得()I y 达到极小,所以()()I y I y αη+≥,即积分()22()()[()()]()[()()]2()[()()]baI y p x y x x q x y x x f x y x x dxαηαηαηαη''+=+++-+⎰作为α的函数,在0α=处取极小值()I y ,故d()0d I y ααηα=+=. (8.3.5) 计算上式,得()()()()()022(8.d()d d ()[()()]()[()()]2()[()()]d d 2()[()()]()2()[()()]()2()()d 2()()()()()()()()d .bab abaI y p x y x x q x y x x f x y x x x p x y x x x q x y x x x f x x x p x y x x q x y x x f x x x ααααηααηαηαηααηηαηηηηηη===+''=+++-+'''=+++-''=+-⎰⎰⎰3.6)利用分部积分法计算积分[][]()()()d ()()d ()()()()()()()d ()()()d ,bbaab ba abap x y x x x p x y x x p x y x x x p x y x x x p x y x x ηηηηη'''='''=-''=-⎰⎰⎰⎰代入式(8.3.6),得()0(8.3.7)d()2()()()()()()d 0.d b a I y p x y x q x y x f x x x ααηηα'=⎡⎤⎣⎦'+=-+-=⎰因为()x η是任意函数,所以必有()()()()()()0p x y x q x y x f x ''-+-≡. (8.3.8)否则,若在[,]a b 上某点0x 处有()00000()()()()()0p x y x q x y x f x ''-+-≠,不妨设()00000()()()()()0p x y x q x y x f x ''-+->,则由函数的连续性知,在包含0x 的某一区间00[,]a b 上有()()()()()()0p x y x q x y x f x ''-+->.作002200000,[,]\[,],()()(),.x a b a b x x a x b a x b η∈⎧⎪=⎨--≤≤⎪⎩ 显然2()C [,]x a b η∈,且()()0a b ηη==,但()()()()()()()d ba p x y x q x y x f x x x η⎡⎤''-+-⎢⎥⎣⎦⎰()00()()()()()()d 0b a p x y x q x y x f x x x η⎡⎤''=-+->⎢⎥⎣⎦⎰,这与式(8.3.7)矛盾. 于是式成立,即变分问题的解y 满足微分方程 且(),()y a y b αβ==故它是边值问题 的解.(必要性) 设()y y x =是边值问题(8.3.1), 的解,证明y 是变分问题的解;即:y 使泛函()I y 在21C [,]a b 上达到极小.因为()y y x =满足方程(8.3.1),所以()()()()()()0p x y x q x y x f x ''-+≡.设任意21()C [,]y y x a b =∈,则函数()()()x y x y x η=-满足条件()()0a b ηη==,且2()C [,]x a b η∈. 于是()()[]()222222()()()()()[()()]()[()()]2()[()()]d ()[()]()[()]2()()d 2()()()()()()()()d ()[()]()[()]d baba baaI y I y I y I y p x y x x q x y x x f x y x x x p x y x q x y x f x y x xp x y x x q x y x x f x x x p x x q x x xηηηηηηηηη-=+-''=+++-+'-+-''=+-++⎰⎰⎰()()()22222()()()()()()d ()[()]()[()]d ()[()]()[()]d .bb ba a bap x y x q x y x f x x x p x x q x x xp x x q x x x ηηηηη⎡⎤'''=--+++⎢⎥⎣⎦'=+⎰⎰⎰⎰因为()0,()0p x q x >≥,所以当()0x η≠时,()22()[()]()[()]d 0bap x x q x x x ηη'+>⎰, 即()()0I y I y ->.只有当()0x η≡时,()()0I y I y -=. 这说明y 使泛函()I y 在21C [,]a b 上达到极小. 证毕!定理8.3.2 边值问题 存在唯一解.证明 用反证法. 若12(),()y x y x 都是边值问题(8.3.1), 的解,且不相等,则由定理知,它们都使泛函()I y 在21C [,]a b 上达到极小,因而12()()I y I y > 且 21()()I y I y >,矛盾!因此边值问题(8.3.1), 的解是唯一的.由边值问题解的唯一性,不难推出边值问题(8.3.1), 解的存在性(留给读者自行推导).8.3.2 有限元法等价性定理说明,边值问题(8.3.1), 的解可化为变分问题的求解问题. 有限元法就是求变分问题近似解的一种有效方法. 下面给出其解题过程:第1步 对求解区间进行网格剖分01,i n a x x x x b =<<<<<=区间1[,]i i i I x x -=称为单元,长度1(1,2,,)i i i h x x i n -=-=称为步长,1max i i nh h ≤≤=. 若(1,2,,)i h h i n ==,则称上述网格剖分为均匀剖分.给定剖分后,泛函(8.3.3)可以写成()22()()[()]()()2()()d baI y p x y x q x y x f x y x x '=+-⎰()12211()[()]()()2()()d ii nnx i x i i p x y x q x y x f x y x xS -=='=+-∑∑⎰记. (8.3.9)第2步 构造试探函数空间。