预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共81页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第9章常微分方程初值问题数值解法在高等数学中,对于常微分方程的求解,给出了一些典型方程求解析解的基本方法,如可分离变量法、常系数齐次线性方程的解法、常系数非齐次线性方程的解法等。但能求解的常微分方程仍然是有限的,大多数的常微分方程是不可能给出解析解。譬如再如,方程从实际问题当中归纳出来的微分方程,通常主要依靠数值解法来解决。本章主要讨论一阶常微分方程初值问题数值方法的基本思想 对常微分方程初值问题(9.1)式的数值解法,就是要算出精确解y(x)在区间a,b上的一系列离散节点处的函数值 的近似值 。相邻两个节点的间距称为步长,步 长可以相等,也可以不等。本章总是假定h为定数,称为定步长,这时节点可表示为 数值解法需要把连续性的问题加以离散化,从而求出离散节点的数值解。对常微分方程数值解法的基本出发点就是离散化。其数值解法有两个基本特点,它们都采用“步进式”,即求解过程顺着节点排列的次序一步一步地向前推进,描述这类算法,要求给出用已知信息 计算的递推公式。建立这类递推公式的基本方法是在这些节点上用数值积分、数值微分、泰勒展开等离散化方法,对初值问题 中的导数进行不同的离散化处理。对于初值问题 的数值解法,首先要解决的问题就是如何对微分方程进行离散化,建立求数值解的递推公式。递推公式通常有两类,一类是计算yi+1时只用到xi+1,xi和yi,即前一步的值,因此有了初值以后就可以逐步往下计算,此类方法称为单步法;其代表是龙格—库塔法。另一类是计算yi+1时,除用到xi+1,xi和yi以外,还要用到 ,即前面k步的值,此类方法称为多步法;其代表是亚当斯法。§9.2简单的数值方法与基本概念 Euler公式 欧拉(Euler)方法是解初值问题的最简单的数值方法。初值问题 的解y=y(x)代表通过点的一条称之为微分方程的积分曲线。积分曲线上每一点 的切线的斜率等于函数在这点的值。Euler法的求解过程是:从初始点P0(即点(x0,y0))出发, 作积分曲线y=y(x)在P0点上切线(其斜率为 ),与x=x1直线同样,过点P1(x1,y1),作积分曲线y=y(x)的切线 交直线x=x2于P2点,切线的斜率= 直线方程为当时,得 从图形上看,就获得了一条近似于曲线y=y(x) 的折线。通常取(常数),则Euler法的计算格式例9.1用欧拉法解初值问题clear;y=1,x=0,%初始化 forn=1:10 y=1.1*y-0.2*x/y,x=x+0.1, end9.2.2梯形公式 为了提高精度,对方程的两端在区间上 积分得, 改用梯形方法计算其积分项,即(9.5)9.2.3两步欧拉公式 对方程的两端在区间上积分得前面介绍过的数值方法,无论是欧拉方法,还是梯形方法,它们都是单步法,其特点是在计算yi+1时只用到前一步的信息yi;可是公式(7.7)中除了yi外,还用到更前一步的信息yi-1,即调用了前两步的信息,故称其为两步欧拉公式9.2.4.欧拉法的局部截断误差 衡量求解公式好坏的一个主要标准是求解公式的精度,因此引入局部截断误差和阶数的概念。 定义9.1在yi准确的前提下,即时,用数值方法计算yi+1的误差,称为该数值方法计算时yi+1的局部截断误差。 对于欧拉公式,假定,则有 定义9.2数值方法的局部截断误差为,则称这种数值方法的阶数是P。步长(h<1)越小,P越高,则局部截断误差越小,计算精度越高。欧拉公式的局部截断误差为,欧拉方法仅为一阶方法。 两步欧拉公式比欧拉公式精度也是高一个数值方法,设,前两步准确,则两步欧拉公式由9.2.5改进的欧拉公式 显式欧拉公式计算工作量小,但精度低。梯形公式虽提高了精度,但为隐式公式,需用迭代法求解,计算工作量大。综合欧拉公式和梯形公式便可得到改进的欧拉公式。 先用欧拉公式(9.2)求出一个初步的近似值 ,称为预测值,它的精度不高,再用梯形公式(9.5)对它校正一次,即迭代一次,求得yi+1,称为校正值,这种预测-校正方法称为改进的欧拉公式:可以证明,公式(9.10)的精度为二阶。这是一种 一步显式格式,它可以表示为嵌套形式。 9.2.6改进欧拉法算法实现 (1)计算步骤 ①输入,h,N ②使用以下改进欧拉法公式进行计算 ③输出,并使 转到②直至n>N结束。(2)改进欧拉法的流程图(3)程序实现(改进欧拉法计算常微 分方程初值问题)clear x=0,yn=1%初始化 forn=1:10 yp=yn+0.1*(yn-2*x/yn);%预测 x=x+0.1; yc=yn+0.1*(yp-2*x/yp); yn=(yp+yc)/2%校正 end例9.3对初值问题由于,有§9.3龙格-库塔(Runge-Kutta)法 9.3.1龙格-库塔(Runge-Kutta)法的基本思想 Euler