7常微分方程数值解法
- 格式:doc
- 大小:717.00 KB
- 文档页数:15
常微分方程的数值解法及其应用研究引言:常微分方程是数学中的重要分支,广泛应用于自然科学、工程技术和社会经济等领域。
常微分方程的解析解往往难以获得,因此数值解法的研究成为解决实际问题的有效手段。
本文将介绍常微分方程的数值解法以及其在各个领域的应用。
一、常微分方程的数值解法1. 欧拉方法欧拉方法是最基本的数值解法之一,通过将微分方程中的函数进行逐步的线性近似,得到方程的递推关系,并根据该关系逼近解析解。
欧拉方法具有简单、易于实现的优点,但在稳定性和精度方面存在一定的局限性。
2. 改进的欧拉方法改进的欧拉方法通过使用中点梯形公式,对欧拉方法的误差进行修正,提高了数值解的准确性。
改进的欧拉方法在简单性和准确性方面取得了一定的平衡。
3. 4阶龙格-库塔法4阶龙格-库塔法是一类常用的数值解法,通过计算多个近似解,并按照一定的权重进行加权平均,得到更高精度的数值解。
4阶龙格-库塔法具有高精度和较好的稳定性,被广泛应用于各个领域。
4. 多步法多步法是一类基于历史步长的数值解法,利用之前计算的步长来估计下一个步长的近似值。
常见的多步法包括亚当斯方法和预报校正方法等。
多步法在一定程度上提高了数值解的稳定性和准确性。
5. 常微分方程的辛方法辛方法是一类特殊的数值解法,能够保持微分方程的守恒性质。
辛方法在长时间积分和保持能量守恒方面具有优势,被广泛应用于天体力学和分子动力学等领域。
二、常微分方程数值解法的应用1. 物理科学中的应用常微分方程的数值解法在物理学中有广泛的应用,如天体力学中的行星轨道计算、量子力学中的薛定谔方程求解等。
数值解法处理了复杂的物理现象,为物理学研究提供了可行的途径。
2. 工程技术中的应用常微分方程的数值解法在工程技术中被广泛应用,如电路分析、结构力学、流体力学等。
通过数值解法,可以模拟和分析复杂的工程问题,提供设计和优化方案。
3. 经济学中的应用经济学中的许多问题可以转化为常微分方程的形式,如经济增长模型、市场供需关系等。
第七章 常微分方程数值解法常微分方程中只有一些典型方程能求出初等解(用初等函数表示的解),大部分的方程是求不出初等解的。
另外,有些初值问题虽然有初等解,但由于形式太复杂不便于应用。
因此,有必要探讨常微分方程初值问题的数值解法。
本章主要介绍一阶常微分方程初值问题的欧拉法、龙格-库塔法、阿达姆斯方法,在此基础上推出一阶微分方程组与高阶方程初值问题的 数值解法;此外,还将简要介绍求解二阶常微分方程值问题的差分方法、试射法。
第一节 欧拉法求解常微分方程初值问题⎪⎩⎪⎨⎧==00)(),(y x y y x f dxdy(1)的数值解,就是寻求准确解)(x y 在一系列离散节点 <<<<<n x x x x 210 上的近似值 ,,,,,210n y y y y{}n y 称为问题的数值解,数值解所满足的离散方程统称为差分格式,1--=i i ix x h 称为步长,实用中常取定步长。
显然,只有当初值问题(1)的解存在且唯一时,使用数值解法才有意义,这一前提条件由下 面定理保证。
定理 设函数()y x f ,在区域+∞≤≤-∞≤≤y b x a D ,:上连续,且在区域D 内满足李普希兹(Lipschitz)条件,即存在正数L ,使得对于R 内任意两点()1,y x 与()2,y x ,恒有()()2121,,y y L y x f y x f -≤-则初值问题(1)的解()x y 存在并且唯一。
一、欧拉法(欧拉折线法)若将函数)xy 在点nx处的导数()n x y '用两点式代替, 即()hx y x y x y n n n )()(1-≈'+,再用n y 近似地代替()n x y ,则初值问题(1)变为⎩⎨⎧==++=+ ,2,1,0),()(001n x y y y x hf y y n n n n(2)(2)式就是著名的欧拉(Euler)公式。
以上方法称 为欧 拉法或欧拉折线法。
浙江大学城市学院实验报告课程名称数值计算方法实验项目名称常微分方程初值问题的数值解法 实验成绩指导老师签名日期2015/12/16 一.实验目的和要求1. 用Matlab 软件掌握求微分方程数值解的欧拉方法和龙格-库塔方法; 2. 通过实例学习用微分方程模型解决简化的实际问题;二.实验内容和原理编程题2-1要求写出Matlab 源程序m 文件,并有适当的注释语句;分析应用题2-2,2-3,2-4,2-5要求将问题的分析过程、Matlab 源程序和运行结果和结果的解释、算法的分析写在实验报告上; 2-1 编程编写用向前欧拉公式和改进欧拉公式求微分方程数值解的Matlab 程序,问题如下:在区间[],a b 内(1)N +个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释语句; Euler 法y=eulera,b,n,y0,f,f1,b1改进Euler 法y=eulerproa,b,n,y0,f,f1,b1 2-2 分析应用题假设等分区间数100n =,用欧拉法和改进欧拉法在区间[0,10]t ∈内求解初值问题()()20(0)10y t y t y '=-⎧⎨=⎩并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度; 2-3 分析应用题用以下三种不同的方法求下述微分方程的数值解,取10h = 画出解的图形,与精确值比较并进行分析; 1欧拉法; 2改进欧拉法; 3龙格-库塔方法;2-4 分析应用题考虑一个涉及到社会上与众不同的人的繁衍问题模型;假设在时刻t 单位为年,社会上有人口()x t 人,又假设所有与众不同的人与别的与众不同的人结婚后所生后代也是与众不同的人;而固定比例为r 的所有其他的后代也是与众不同的人;如果对所有人来说出生率假定为常数b ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微分方程表示为:其中变量()()()i p t x t x t =表示在时刻t 社会上与众不同的人的比例,()i x t 表示在时刻t 人口中与众不同的人的数量;1假定(0)0.01,0.02p b ==和0.1r =,当步长为1h =年时,求从0t =到50t =解()p t 的近似值,并作出近似解的曲线图形;2精确求出微分方程的解()p t ,并将你当50t =时在分题b 中得到的结果与此时的精确值进行比较; MATLAB 相关函数求微分方程的解析解及其数值的代入dsolve‘egn1’,‘egn2’,‘x ’ subsexpr,{x,y,…},{x1,y1,…}其中‘egn i ’表示第i 个方程,‘x ’表示微分方程中的自变量,默认时自变量为t ; subs 命令中的expr 、x 、y 为符合型表达式,x 、y 分别用数值x1、x2代入; >>symsxyz>>subs'x+y+z',{x,y,z},{1,2,3} ans= 6>>symsx>>subs'x^2',x,2 ans= 4>>s=dsolve‘12Dy y ∧=+’,‘(0)1y =’,‘x ’ ans= >>symsx >>subss,x,2 ans=右端函数(,)f x y 的自动生成f=inline ‘expr ’,’var1’,‘var2’,……其中’expr ’表示函数的表达式,’var1’,‘var2’表示函数表达式中的变量,运行该函数,生成一个新的函数表达式为fvar1,var2,……; >>f=inline'x+3y','x','y' f=Inlinefunction: fx,y=x+3y >>f2,3 ans= 114,5阶龙格-库塔方法求解微分方程数值解t,x=ode45f,ts,x0,options其中f 是由待解方程写成的m 文件名;x0为函数的初值;t,x 分别为输出的自变量和函数值列向量,t的步长是程序根据误差限自动选定的;若ts=t0,t1,t2,…,tf,则输出在自变量指定值,等步长时用ts=t0:k:tf,输出在等分点;options 用于设定误差限可以缺省,缺省时设定为相对误差310-,绝对误差610-,程序为:options=odeset ‘reltol ’,rt,’abstol ’,at,这里rt,at 分别为设定的相对误差和绝对误差;常用选项见下表;选项名 功能 可选值 省缺值 AbsTol 设定绝对误差正数 RelTol 设定相对误差 正数InitialStep 设定初始步长 正数 自动 MaxStep设定步长上界正数MaxOrder 设定ode15s 的最高阶数 1,2,3,4,5 5 Stats 显示计算成本统计 on,off off BDF 设定ode15s 是否用反向差分on,offoff例:在命令窗口执行>>odefun =inline ‘2*y t y -’,‘t ’,‘y ’;>>[],45(,[0,4],1)t y ode odefun =;ans=>>t y ‘o-’,%解函数图形表示>>45(,[0,4],1)ode odefun %不用输出变量,则直接输出图形 >>[],45(,0:4,1)t y ode odefun =;[],t yans=三.操作方法与实验步骤包括实验数据记录和处理2-1编程编写用向前欧拉公式和改进欧拉公式求微分方程数值解的Matlab 程序,问题如下:在区间[],a b 内(1)N +个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释语句; Euler 法y=eulera,b,n,y0,f,f1,b1改进Euler 法y=eulerproa,b,n,y0,f,f1,b1Euler 法y=eulera,b,n,y0,f,f1,b1 y=zeros1,n+1; y1=y0; h=b-a/n; x=a:h:b; fori=1:n; yi+1=yi+hfxi,yi; end plotx,y holdon%求微分方程的精确解 x1=linspacea,b,100; '精确解为' s=dsolvef1,b1,'x' symsxy1=zeros1,100; for i=1:100y1i=subss,x,x1i; endplotx1,y1,'r'title'红色代表精确解'改进Euler 法y=eulerproa,b,n,y0,f,f1,b1 %求微分方程的数值解 y=zeros1,n+1; y1=y0; h=b-a/n; x=a:h:b; fori=1:n; T1=fxi,yi; T2=fxi+1,yi+hT1; yi+1=yi+h/2T1+T2; end plotx,y holdon%求微分方程的精确解 x1=linspacea,b,100; '精确解为' s=dsolvef1,b1,'x' symsxy1=zeros1,100; fori=1:100 y1i=subss,x,x1i; endplotx1,y1,'r'title'红色代表精确解' 2-2分析应用题假设等分区间数100n =,用欧拉法和改进欧拉法在区间[0,10]t ∈内求解初值问题()()20(0)10y t y t y '=-⎧⎨=⎩并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度;1向前欧拉法>>euler0,10,100,10,inline'y-20','x','y','Dy=y-20','y0=10' ans= 精确解为 s= 20-10expx ans= +005Columns1through8(2)改进欧拉法>>eulerpro0,10,100,10,inline'y-20','x','y','Dy=y-20','y0=10' ans= 精确解为 s= 20-10expx ans= +005Columns1through8改进欧拉法的精度比向前欧拉法更高; 2-3分析应用题用以下三种不同的方法求下述微分方程的数值解,取10h = 画出解的图形,与精确值比较并进行分析; 1欧拉法; 2改进欧拉法;2-4分析应用题考虑一个涉及到社会上与众不同的人的繁衍问题模型;假设在时刻t 单位为年,社会上有人口()x t 人,又假设所有与众不同的人与别的与众不同的人结婚后所生后代也是与众不同的人;而固定比例为r 的所有其他的后代也是与众不同的人;如果对所有人来说出生率假定为常数b ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微分方程表示为:其中变量()()()i p t x t x t =表示在时刻t 社会上与众不同的人的比例,()i x t 表示在时刻t 人口中与众不同的人的数量;1假定(0)0.01,0.02p b ==和0.1r =,当步长为1h =年时,求从0t =到50t =解()p t 的近似值,并作出近似解的曲线图形;2精确求出微分方程的解()p t ,并将你当50t =时在分题b 中得到的结果与此时的精确值进行比较;1>>euler0,50,50,,inline'','t','p','Dp=','p0= 1' ans= 精确解为 s=1-99/100expx/500 ans=Columns1through82>>dsolve'Dp=','p0=','t' ans=1-99/100expt/500 >>1-99/100exp ans=与欧拉法求得的精确值差0,0001四.实验结果与分析。
常微分方程的数值解法常微分方程是研究变量的变化率与其当前状态之间的关系的数学分支。
它在物理、工程、经济等领域有着广泛的应用。
解常微分方程的精确解往往十分困难甚至不可得,因此数值解法在实际问题中起到了重要的作用。
本文将介绍常见的常微分方程的数值解法,并比较其优缺点。
1. 欧拉方法欧拉方法是最简单的数值解法之一。
它基于近似替代的思想,将微分方程中的导数用差商近似表示。
具体步骤如下:(1)确定初始条件,即问题的初值。
(2)选择相应的步长h。
(3)根据微分方程的定义使用近似来计算下一个点的值。
欧拉方法的计算简单,但是由于误差累积,精度较低。
2. 改进欧拉方法为了提高欧拉方法的精度,改进欧拉方法应运而生。
改进欧拉方法通过使用两个点的斜率的平均值来计算下一个点的值。
具体步骤如下:(1)确定初始条件,即问题的初值。
(2)选择相应的步长h。
(3)根据微分方程的定义使用近似来计算下一个点的值。
改进欧拉方法相较于欧拉方法而言,精度更高。
3. 龙格-库塔法龙格-库塔法(Runge-Kutta)是常微分方程数值解法中最常用的方法之一。
它通过迭代逼近精确解,并在每一步中计算出多个斜率的加权平均值。
具体步骤如下:(1)确定初始条件,即问题的初值。
(2)选择相应的步长h。
(3)计算各阶导数的导数值。
(4)根据权重系数计算下一个点的值。
与欧拉方法和改进欧拉方法相比,龙格-库塔法的精度更高,但计算量也更大。
4. 亚当斯法亚当斯法(Adams)是一种多步法,它利用之前的解来近似下一个点的值。
具体步骤如下:(1)确定初始条件,即问题的初值。
(2)选择相应的步长h。
(3)通过隐式或显式的方式计算下一个点的值。
亚当斯法可以提高精度,并且比龙格-库塔法更加高效。
5. 多步法和多级法除了亚当斯法,还有其他的多步法和多级法可以用于解常微分方程。
多步法通过利用多个点的值来逼近解,从而提高精度。
而多级法则将步长进行分割,分别计算每个子问题的解,再进行组合得到整体解。
第七章 常微分方程初值问题的数值解法--------学习小结一、本章学习体会通过本章的学习,我了解了常微分方程初值问题的计算方法,对于解决那些很难求解出解析表达式的,甚至有解析表达式但是解不出具体的值的常微分方程非常有用。
在这一章里求解常微分方程的基本思想是将初值问题进行离散化,然后进行迭代求解。
在这里将初值问题离散化的方法有三种,分别是差商代替导数的方法、Taylor 级数法和数值积分法。
常微分方程初值问题的数值解法的分类有显示方法和隐式方法,或者可以分为单步法和多步法。
在这里单步法是指计算第n+1个y 的值时,只用到前一步的值,而多步法则是指计算第n+1个y 的值时,用到了前几步的值。
通过对本章的学习,已经能熟练掌握如何用Taylor 级数法去求解单步法中各方法的公式和截断误差,但是对线性多步法的求解理解不怎么透切,特别是计算过程较复杂的推理。
在本章的学习过程中还遇到不少问题,比如本章知识点多,公式多,在做题时容易混淆,其次对几种R-K 公式的理解不够透彻,处理一个实际问题时,不知道选取哪一种公式,通过课本里面几种方法的计算比较得知其误差并不一样,,这个还需要自己在往后的实际应用中多多实践留意并总结。
二、本章知识梳理常微分方程初值问题的数值解法一般概念步长h ,取节点0,(0,1,...,)n t t nh n M =+=,且M t T ≤,则初值问题000'(,),()y f t y t t Ty t y =≤≤⎧⎨=⎩的数值解法的一般形式是1(,,,...,,)0,(0,1,...,)n n n n k F t y y y h n M k ++==-@显示单步法7.2.1 显示单步法的一般形式1(,,),(0,1,...,1)n n n n y y h t y h n M ϕ+=+=-定理7.2.1 设增量函数(,,)n n t y h ϕ在区域00{(,,)|,||,0}D t y h t t T y h h =≤≤<∞≤≤内对变量y 满足Lipschitz 条件,即存在常数K ,使对D 内任何两点1(,,)t u h 和2(,,)t u h ,不等式1212|(,,)(,,)|||t u h t u h K u u ϕϕ-≤-成立,那么,若单步法的局部截断误差1n R +与1(1)p h p +≥同阶,即11()p n R O h ++=,则单步法的整体截断误差1n ε+与p h 同阶,即1()p n O h ε+=。
第7章 常微分方程数值解法7.0 基本概念1. 一阶常微分方程的初值问题⎩⎨⎧=∈='0)(),()),(,()(y a y b a x x y x f x y (7.0-1)注:若f 在D = {a ≤ x ≤ b , |y |<+∞}内连续,且满足Lip 条件:∃L ≥0,使|f (x – y 1) – f (x ,y 2)| ≤ L |y 1 – y 2| (7.0-2)则(7.0-1)的连续可微解y (x )在[a ,b ]上唯一存在。
2. 初值问题的数值解称(7.0-1)的解y (x )在节点x i 处的近似值y i ≈ y (x i ) a < x 1 <x 2 < ... < x n = b .为其数值解,方法称为数值方法。
注:① 考虑等距节点: x i = a + ih ,h = (b – a )/n .② 从初始条件y (a ) = y 0出发,依次逐个计算y 1,y 2,…,y n 的值,称为步进法。
两种:单步法、多步法。
③ 二阶常微分方程y ''(x ) = f (x ,y (x ),y '(x ))可设为一阶常微分方程组的初值问题: 引进新的未知函数z(x) = y'(x),则⎩⎨⎧==))(),(,()(')()('x z x y x f x z x z x y 其初始条件为:⎩⎨⎧==00')()(y a z y a y 称为一阶微分方程组的初值问题,方法类似。
④ 边界问题,常用差分方法解。
7.1 初值问题数值解法的构造及其精度7.1.1 构造方法对于(7.0-1)可借助Taylor 展开(导数法)、差商法、积分法实现离散化来构造求积公式:1. 设y ∈ C [a ,b ]将y (x i +1) = y (x i +h )在x i 处展开)(2)()()(21ξy h x y h x y x y i i i ''+'+=+)(2))(,()(2ξy h x y x hf x y i i i ''++= ξ ∈[x i ,x i +1] ⇒ y (x i +1) ≈ y i +hf (x i ,y i ) 其中y i ≈ y (x i ).称y i +1 = y i + hf (x i ,y i ). i = 0,1,2,...,n – 1 (7.1-1)为Euler 求解公式,(Euler 法)2. 用差商来表示:)).(,()()(1i i i i x y x y hx y x y '≈-+ 得差分方程:),(1i i i i y x f hy y =-+ ⇒ y i +1 = y i + hf (x i ,y i ). 即为Euler 公式。
若记))(,()()()(1111++++='≈-i i i i i x y x f x y hx y x y ⇒ y i +1 = y i + hf (x i +1,y i +1). (7.1-2)称为向后Euler 法。
注:① Euler 法为显式,向后Euler 法为隐式——须解出y i +1.② 可用迭代法y i +1 (k +1) = y i + hf (x i +1,y i +1(k )) k = 0,1,2,… 解得y i +1其中y i +1(0) = y i + hf (x i ,y i ).3. 对(7.0-1)两边取积分得⎰++=+1))(,()()(1i i x x i i dx x y x f x y x y (7.1-3) 取不同的数值积分可得不同的求解公式,为: ① 用矩形公式:))(,())(,())(,(111++≈≈⎰+i i x x i i x y x hf x y x hf dx x y x f i i⇒ y (x i +1) ≈ y (x i ) + hf (x i ,y (x i )) ⇒ Euler 公式y (x i +1) ≈ y (x i ) + hf (x i +1,y (x i +1)) ⇒ 向后Euler 公式② 用梯形公式:))(,(12))](,())(,([2))(,(1211ξξy f h x y x f x y x f h dx x y x f i i x x i i i i ''-+=⎰+++ ⇒ ))](,())(,([2)()(111+++++≈i i i i i i x y x f x y x f h x y x y ⇒ )],(),([2111+++++≈i i i i i i y x f y x f h y y (7.1-4) 称(7.1-4)为梯形公式−−隐式公式。
显化:预估值:⎪⎩⎪⎨⎧++=+=++++)],(),([2),(1111i i i i i i i i i i y x f y x f h y y y x hf y y 校正值:.4. 几何意义Euler 法−−折线法改进Euler 法−−平均斜率折线法例1:例2: P473, P4747.1.2 截断误差与代数精度定义7.1-1 ① 称 εi = y (x i ) – y i 为数值解y i 的(整体)截断误差。
② 若y k = y (x k ),k = 0,1,2,…,i – 1. 由求解公式得数值解)(~i i x y y ≈,则称i i i y x y e ~)(-=为y i 的局部截断误差。
注:局部截断误差是指单步计算产生的误差,而(整体)截断误差则考虑到每步误差对下一步的影响。
定义7.1-2 若求解公式的(整体)截断误差为O (h p )则称该方法是p 阶方法,或是p 阶精度。
<p 阶公式>定理7.1-1 设数值解公式:y i +1 = y i + h ϕ(x i ,y i ,h )中的函数ϕ(x ,y ,h )关于y 满足Lipschitz 条件:|~||),~,(),,(|y y L h y x h y x -≤-ϕϕ,且其局部截断误差为h p +1阶,则其(整体)截断误差为h p 阶,即该数值解公式为p 阶方式。
注:① 局部截断误差较易估计 定理7.1-1表明:若e i = O(h p +1) 则εi = O(h p ).② Euler 局部截断误差为)()(2221h O y h e i =''=+ξ 所以一阶精度。
向后Euler 法也是一阶精度。
③ 梯形公式为二阶精度。
例1:用Euler 方法求解初值问题:⎩⎨⎧-=<<++=1)1(5.11),()1()()('2y x x y x x y x y 取步长h = 0.1,并与准确解xx y 1)(-=比较 解:因为x i = 1 + 0.1i ,而f (x ,y ) = y + (1+x )y 2,故f (x i ,y i ) = y i + (2 + 0.1i )y i 2于是Euler 计算公式为y i +1 = y i + 0.1[y i + (2 + 0.1i )y i 2],i = 0,1,2,3,4计算结果见P473表7.1-1注:Euler 方法精度较低例2:用改进Euler 方法求解初值问题:⎪⎩⎪⎨⎧=<<-=5.0)1(5.11)),()((1)('2y x x y x y x x y取步长h = 0.1,并与准确解xx x y +=1)(比较 解:x i = 1 + 0.1i , iy y y y x y x f i i i i i i i 1.01)1()(1),(2--=-= 于是改进Euler 法的计算公式为⎪⎪⎩⎪⎪⎨⎧⎪⎪⎭⎫ ⎝⎛+--+--+=--+=++++)1(1.01)1(1.01)1(21.01.01)1(1.01111i y y i y y y y i y y y y i i i i i i i i i i i = 0,1,2,3,4计算结果见P474表7.1-2注:改进Euler 方法精度比Euler 方法精度高7.2 Runge −Kutta 方法7.2.1 构造高阶单步法的直接方法由Taylor 公式:)()!1()(!...)("!2)(')()()()1(1)(21ξ+++++++++=+=p p i p p i i i i i y p h x y p h x y h x hy x y h x y x y 当h 充分小时,略去Taylor 公式余项,并以y i 、y i +1分别代替y (x i )、y (x i +1),得到差分方程: ),(!...),('!2),()1(21i i p p i i i i i i y x f p h y x f h y x hf y y -+++++= (7.2-1) 其局部截断误差为:)()!1(~)()1(111ξ+++++=-p p i i y p h y x y 即(7.2-1)为p 阶方式,上述方式称为Taylor 方式。
注:利用Taylor 公式构造,不实用,高阶导数f (i )不易计算。
7.2.2 Runge −Kutta 方法1. 基本思想因为 ⎰++=+1))(,()()(1i i x x i i dx x y x f x y x y= y (x i ) + hf (ξ,y (ξ))= y (x i ) + hK ξ其中K ξ = f (ξ,y (ξ))称为y (x )在[x i ,x i +1]上的平均斜率。
若取 K 1 = f (x i ,y (x i )) ——Euler 公式取 K 2 = f (x i +1,y (x i +1)) —— 向后Euler 公式 一阶精度 取 )(2121K K + —— 梯形公式 二阶精度 猜想:若能多预测几个点的斜率,再取其加权平均作为K ξ,可望得到较高精度的数值解,从而避免求f 的高阶导数。
2. R −K 公式⎪⎪⎪⎩⎪⎪⎪⎨⎧≤≤++==+=∑∑-==+111112),,(),(j s s js i j i j i i p j jj i i p j K b h y h a x f K y x f K K c h y y (7.2-4) 其中K j 为y = y (x )在x i + a j h (0 ≤ a j ≤ 1)处的斜率预测值。
a j ,b js ,c j 为特定常数。
3. 常数的确定确定的原则是使精度尽可能高。
以二阶为例:⎪⎩⎪⎨⎧++==++=+),(),()(12122122111hK b y h a x f K y x f K K c K c h y y i i i i i i (7.2-5) (希望y (x i +1) – y i +1 = O(h p )的阶数p 尽可能高)一方面:)()("!21)(')()(321h O x y h x hy x y x y i i i i +++=+ 另一方面:将K 2在(x i ,y i )处展开。