第四章 差分方程方法在实际中,许多问题所研究的变量都是离散的形式,所建立的数学模型也是离散的,譬如,像政治、经济和社会等领域中的实际问题。
有些时候,即使所建立的数学模型是连续形式,例如像常见的微分方程模型、积分方程模型等等,但是,往往都需要用计算机求数值解。
这就需要将连续变量在一定条件下进行离散化,从而将连续型模型转化为离散型模型,因此,最后都归结为求解离散形式的差分方程解的问题。
关于差分方程理论和求解方法在数学建模和解决实际问题的过程中起着重要作用。
下面就不同类型的差分方程进行讨论。
所谓的差分方程是指:对于一个数列{}n x ,把数列中的前1+n 项()n i x i ,2,1,0=关联起来所得到的方程。
4.1常系数线性差分方程4.1.1 常系数线性齐次差分方程 常系数线性齐次差分方程的一般形式为02211=+⋯+++---k n k n n n x a x a x a x (4.1)其中k 为差分方程的阶数,()k i a i ,,2,1 =为差分方程的系数,且()n k a k ≤≠0。
对应的代数方程02211=++++--k k k k a a a λλλ (4.2) 称为差分方程的(4.1)的特征方程,其特征方程的根称为特征根。
常系数线性齐次差分方程的解主要是由相应的特征根的不同情况有不同的形式。
下面分别就特征根为单根、重根和复根的情况给出差分方程解的形式。
1. 特征根为单根设差分方程(4.1)有k 个单特征根 k λλλλ,,,,321 ,则差分方程(4.1)的通解为nk k n n n c c c x λλλ+++= 2211,其中k c c c ,,,21 为任意常数,且当给定初始条件()0 i i x λ= ()k i ,,2,1 = (4.3)时,可以唯一确定一个特解。
2. 特征根为重根设差分方程(4.1)有l 个相异的特征根()k l l ≤≤1,,,,321λλλλ 重数分别为l m m m ,,,21 且k m li i =∑=1则差分方程(4.1)的通解为n l i m i li n i m i i n i m i i n n c n c n c x lλλλ112112111121-=-=-=∑∑∑+++=同样的,由给定的初始条件(4.3)可以唯一确定一个特解。
3. 特征根为复根设差分方程(4.1)的特征根为一对共轭复根βαλλi ±=21,和相异的2k -个单根k λλλ,,43 ,则差分方程的通解为nk k n n n n n c c c n c n c x λλλθρθρ+++++= 443321sin cos ,其中22βαρ+=, αβθarctan= . 同样由给定的初始条件(4.3)可以惟一确定一个特解。
另外,对于有多个共轭复根和相异实根,或共轭复根和重根的情况,都可以类似地给出差分方程解的形式。
4.1.2 常系数线性非齐次差分方程 常系数线性非齐次差分方程的一般形式为()n f x a x a x a x k n k n n n =++++--- 2211 (4.4)其中k 为差分方程的阶数,()k i a i ,,2,1 =为差分方程的系数,()n k a k ≤≠0,)(n f 为已知函数。
在差分方程(4.4)中,令0)(=n f , 所得方程02211=++++---k n k n n n x a x a x a x (4.5) 称为非齐次差分方程(4.4)对应的齐次差分方程,即与差分方程(4.1)的形式相同。
求解非齐次差分方程通解的一般方法为首先求对应的齐次差分方程(4.5)的通解*n x ,然后求非齐次差分方程(4.4)的一个特解()0n x ,则()0*n n n x x x +=为非齐次差分方程(4.4)的特解。
关于求*n x 的方法同求差分方程(4.1)的方法相同。
对于求非齐次方程(4.4)的特解()0n x 的方法,可以用观察法确定,也可以根据()f n 的特性用待定系数法确定,具体方法可参照常系数线性非齐次微分方程求特解的方法。
4.2 差分方程的平衡点及其稳定性一般来说,差分方程的求解是困难,实际中往往不需要求出差分方程的一般解,而只需要研究它的平衡点及其稳定性即可。
4.2.1 一阶线性常系数差分方程一阶线性常系数差分方程的一般形式为,⋯==++,2,1,0,1k b ax x k k其中b a ,为常数,它的平衡点由代数方程b ax x =+求解得到,不妨记为*x . 如果*lim x x k k =∞→,则称平衡点*x 是稳定的,否则是不稳定的。
为了便于研究平衡点*x 的稳定性问题,一般将其转化为求方程01=++k k ax x 的平衡点0*=x 的稳定性问题。
事实上,由01=++k k ax x可以解得()0x a x kk -=,于是0*=x 是稳定的平衡点的充要条件是:1 a . 4.2.2一阶线性常系数差分方程组一阶线性常系数齐次差分方程组的一般形式为()() ,2,1,0,1==++k B k Ax k x其中()k x 为n 维向量,A 为n n ⨯阶常数矩阵。
它的平衡点0*=x 是稳定的充要条件是A 的所有特征根都有1<i λ (i=1,2,…,n).对于一阶线性常系数非齐次差分方程组B k Ax k x =++)()1(, ⋯=,2,1,0k的情况同样给出4.2.3 二阶线性常系数差分方程二阶线性常系数齐次差分方程的一般形式为,2,1,0,02112==++++k x a x a x k k k其中21,a a 为常数,其平衡点0*=x 是稳定的充要条件是特征方程0212=++a a λλ,的根21,λλ满足11<λ,12<λ。
对于一般的02112=++++k k k x a x a x 的平衡点的稳定性问题同样给出。
类似地,也可直接推广到n 阶线性差分方程的情况。
4.2.4 一阶非线性差分方程 一阶非线性方程的一般形式为()k k x f x =+1 , ,2,1,0=k ,其中f 为已知函数,其平衡点定义为方程()x f x =的解*x 。
事实上,将()k x f 在*x 处作一阶的泰勒展开有()()()***'1x f x x x f x k k +-≈+,则*x 也是一阶线性方程()()()***'1x f x x x f x k k +-=+的平衡点,故此,平稳衡点*x 稳定的充要条件是|1)(*<'x f 。
4.3 连续模型的差分方法4.3.1 微分的差分方程 已知)(x f 在点k x 处的函数值)(k x f )1,...,1,0+=n k ,且b x x x a n =<<<=+110...,试求函数的导数值(),'k x f ),...2,1(n k =。
根据导数的定义,用差商代替微商,则有下面的差分公式。
向前差:kk k k k x x x f x f x f --≈++11')()()( ),,...,2,1(n k =向后差:11')()()(----≈k k k k k x x x f x f x f),,...,2,1(n k =中心差:111'1)()()(--+-+-≈k k k k k x x x f x f x f),,...,2,1(n k =4.3.2定积分的差分方法已知函数)(x f 在点k x 处的函数值)(k x f ,),,...,2,1(n k =且在],[b a 上可积,试求函数在],[b a 上的积分值⎰badx x f )(。
根据定积分的定义,则有一般的求积公式⎰∑=≈bank k k x f A dx x f 0)()(其中k A 为求积系数,它与k x 的选取方法有关。
取不同的求积系数,可以得不同的求积公式。
对于等距节点kh a x k += ),...,1,0(n k =,其中步长nab h -=为很小的数,则有如下的求积公式。
(1)复化矩阵公式;⎰∑-=⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛++≈ban k h k a f h dx x f 1021)(。
(2)复化梯形矩阵;)]()(2)([2)]()([2)(11101b f x f a f hx f x f h dx x f n k k ban k k k ++=+≈∑⎰∑-=-=+(3)复化辛普森(Simpson)矩阵公式;⎰∑-=++++≈ban k k k k x f x f x f h dx x f 1121)]()(4)([6)()]()(2)(4)([111021b f x f xf a f n k k n k k +++=∑∑-=-=+其中)(21121+++=k k k x x x为子区间],[1+k k x x )1,...,1,0(-=n k 的中点。
(4)复化柯特斯(Cotes)公式;)](7)(12)(32)(12)(32)(7[90)(11104310211041b f x f x f x f x f a f hdx x f n k k n k k n k k n k k ba+++++≈∑∑∑∑⎰-=-=+-=+-=+其中434121,,+++k k k xxx 为子空间)1,...,1,0](,[1-=+n k x x k k 中的四等分点。
4.3.3常微分方程的差分方法 1. 一阶常微分方程的差分方法 设一阶常微分方程的定解问题为⎩⎨⎧==,)(),,(00'y x y y x f y其中函数),(y x f 关于 y 满足李普希兹条件,即保证问题解的存在唯一性。
现在的问题是求方程在一系列节点.......21<<<<n x x x 处的近似数值解,...,...,,21n y y y 不妨假设步长为 n n x x h -=+1 为常数。
在此,我们根据微分的差分方法,即用差商来近似代替微商,再利用“步进式”方法,可以给出求解问题(4-6)的差分方法。
(1)单步欧拉(Euler)公式用差商hx y x y n n )()(1-+近似代替))(,()('n n n x y x f x y =中的导数,则可以得差分公式,....2,1,0),,(1=+=+n y x hf y y n n n n其精度为)(2h O 阶的。
(2)两步欧拉公式 用差商hx y x y n n 2)()(11-+- 近似代替))(,()('n n n x y x f x y =中的导数,则可得差分公式,....2,1,0),,(211=+=-+n y x hf y y n n n n两步法需要用到前两步的方信息,一般不能自行起步,需先用单步方法求出1y ,其精度是)(2h O 阶的。