数学毕业论文

求解微分方程的线性多步法

时间:2021-02-06 19:30:49 数学毕业论文 我要投稿

求解微分方程的线性多步法

  求解微分方程的线性多步法

  摘 要: 微分方程初值问题的求解一直是人们所关注的热点问题,本文针对微分方程初值问题的线性多步法,利用它们的局部截断误差的主项系数的某种组合对它们进行修正,提出了预测―校正算法,并给出了几种常用的预测―校正算法。

  关键词: 微分方程 初值问题 线性多步法

  1.微分方程初值问题的基本解法

  =f(t,u)u(t)=u(1)

  其中f为t和u的已知函数,u为给定的初值。我们假设函数f(t,u)在区域:t≤t≤T,|u|<∞内连续,并且u满足Lipschitz条件,即存在常数L,对所有t∈[t,T]和u,u,有|f(t,u)-f(t,u)|≤L|u-u|。在上述基本假设下,初值问题(1)在区间[t,T]上有唯一解,并且u(t)为连续可微的。

  将区间[0,T]作N等分,小区间的长度h=T/N称为步长,点列t=nh(n=0,1,…,N)称为节点,t=0。由已知初值u(t)=u,可算出u(t)在t=t的导数值u′(t)=f(t,u(t))=f(t,u)。利用Taylor展式得u=u+hf(t,u),u就是u(t)的近似值。利用u又可算出u,如此下去可算出u在所有结点上的值,一般递推公式为u=u+hf(t,u),n=0,1,…,N-1。

  由文献[1]知,求解该类方程分为单步法和多步法。只要利用h,t和u即可算出u的算法称为单步方法,单步法包括Euler法、梯形法、Runge-kutta法,其一般形式为u=u+hφ(t,u;h),函数φ称为增量函数,它依赖于所给的微分方程。用单步法求出{φ},m=1,2,…,N只需要一个初值u。

  需要用到h,t,t,…,t和h,u,u,…,u才能求出u(k>1)的算法称为多步方法,线性多步法包括数值积分法和待定系数法,其一般形式为αu=hβf,这里α,β(j=0,1,K,k)是常数,它需要有k个初值u,u,…,u才能得到整个序列{u},m=1,2,…,N。

  2.线性多步法的改进

  常微分方程初值问题只给我们提供了一个初值,但线性k步方法需要k个初始值u,u,…,u,所以这其余的k-1个初始值就要通过其他方法来先期得到。最容易想到的是采用简单的单步方法,如Euler方法,或改进的Euler法,但它们的收敛阶较低。为保证整个计算的精度,我们应使初始值的计算精度至少与所用的线性多步方法同阶。

  因此,若使用的线性多步方法为q阶[2],[3]的,可以用q阶Taylor展开方法或Runge-kutta方法来求u,u,…,u,然后进入正式的求解过程。用Taylor展开确定初始值的同时还能得到关于选择h的信息。如要求计算误差不超过ε,则应使

  h|u(t)|≤εh|u(t)|>ε

  同时成立。当微商次数增大时,计算量也将急速增大,因此利用低阶微商构造高精度的'方法对实际计算是很有意义的,对u(t)=u(t)+?蘩u′(t)dt利用u′(t)在点t,t处的函数值及其各阶导数值构造Hernite型插值多项式,再代积分,舍去误差项即可得到带导数值的计算公式。

  对隐式的计算格式一般采用迭代解法,将隐式线性多步方法改写成

  u-hβf(t,u)=-(αu-hβf)(2)

  由于F是已知的,于是(2)式可用迭代法求解。

  迭代法都需要有u,即u的迭代初值。选取一个好的u无疑是十分重要的,很自然的想法是用显格式算出u――这称为预测,再用隐格式进行迭代求u――这称为校正,因此整个过程称为预测―校正算法[4],简称PC算法。显然,预测的P式与校正的C式的阶一般应取成相同的。

  预测―校正算法求u的过程一般如下:

  P∶u=αu-hβf,

  E∶f=f(t,u)C∶u=-αu+h(∑βf+βfs=1,2,…,n,

  u=u,f=f(t,u)。

  由于使用了同阶的预测公式求得初始近似u,因此一般说来校正次数不会太多,大约两三次就够了。若校正步数太多则往往提示步长过大,应适当减小步长后再进行计算。实际计算中经常利用算式与算式同阶的特点,对(3)式再作一些修正。用线性组合的方法消去每个格式中的截断误差主项。仅花费很小的代价就使方法的精度再提高一阶,从而不需要再通过迭代来改善计算的近似值。

  设预测算式和校正算式的局部截断误差分别为

  Δ[u(t),h]=chu(t)+o(h)(3)

  Δ[u(t),h]=chu(t)+o(h)(4)

  整理后分别得到:

  u(t)-[u+(u-u)]=o(h)(5)

  u(t)-[u+(u-u)]=o(h)(6)

  这两个式子告诉我们,在求(u和u)后,再利用它们的局部截断误差[5],[6]的主项系数的某种组合对它们进行修正,可使得修正后的局部截断误差比原来高一阶,即达到o(h)。这里和被称为修正系数。

  直接按照(5)式对u进行修正是不行的,因为此时的u还没有算出。但是,在计算u的近似值时,u已经算出来了,因此u和u也都已经有了,这时可以用u-u去代替(5)中的u-u。

  综上所述,我们可以将带修正的预测―校正算法的一般形式表示如下:

  P∶u=-α+hβfM∶+(u-u)E∶=f(t,)C∶u=-α+hβ+hβfM∶u=u+(u-u)E∶f=f(t,u)(7)

  在多步方法中,改善步长将带来一个新问题,就是结点变了。在预期结点处已经算出的近似值,对于计算当前结点来说,很多都用不上了,而在以新步长为单位的结点处,往往并没有计算过相应的近似函数值。在使用的方法中,一般采用插值的方法去补上所需的这些点上的近似值再进行计算。

  下面给出几种常用的带修正的预测―校正算法。

  (1)Milne预校算法。Hamming针对Milne算法绝对不稳定,提出了如下修正:

  P∶ρ(λ)=λ-1,σ(λ)=(2λ-λ-λ);

  C∶ρ(λ)=λ-1,σ(λ)=(λ+4λ+1)。

  P和C均为四阶方法,M和M中的修正系数分别为和-。

  (2)Hamming预校算法。该预校算法的P式和C式分别为:P∶与Milne预校算法相同。C∶ρ(λ)=λ-λ+,σ(λ)=(λ+2λ+λ)。

  P和C也均为四阶方法,M和M中的修正系数分别为和-。

  (3)Adams四阶预校算法。此算法中的P算式和C算式分别为:P∶Adams四步四阶外插公式。P∶Adams三步四阶内插公式。

  M和M中的修正系数分别为和-。理论研究表明,这个算法的稳定性比前两个算法好,是常用的预校算法。

  3.结语

  针对微分方程初值问题的线性多步法,我们利用局部截断误差的主项系数的某种组合对其进行修正,使修正后的局部截断误差比原来高一阶,即达到o(h),并给出了带修正的预测―校正算法的一般形式,见文中(7)式。

  参考文献:

  [1]李立康,於崇华,朱政华编著.微分方程数值解法[M].复旦大学出版社,2005.

  [2]胡健伟.微分方程数值方法[M].科学出版社,1999.

  [3]李荣华.微分方程数值解法(第三版)[M].高等教育出版社,1996.

  [4]Dennis G.Zill编著.微分方程与边界值问题[M].机械工业出版社,2003.

  [5]黄振侃.编著.数值计算――微分方程数值解[M].北京工业大学出版社,2006.

  [6][美]兹尔著.陈启宏等译.微分方程与边界值问题[M].华章数学译丛.机械工业出版社,2005.

【求解微分方程的线性多步法】相关文章:

浅议非线性编辑技术07-11

工商管理中的线性规划02-09

浅析中国画的白描线性02-13

分析工商管理中的线性规划07-13

社保多缴费真的能多领钱吗11-04

经济节目非线性制作与包装论文11-08

精选小升初简历写作六步法09-18

量子进化算法用于求解约束多目标优化问题的探析05-10

如何学习陈式太极拳的九大步法03-14

100多页简历02-10