资源描述:
《常微分方程初值问题数值解法(I)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章常微分方程初值问题数值解法§9.1引言包含自变量、未知函数及未知函数的导数或微分的方程称为微分方程。在微分方程中,自变量的个数只有一个,称为常微分方程.。自变量的个数为两个或两个以上的微分方程叫偏微分方程。微分方程中出现的未知函数最高阶导数的阶数称为微分方程的阶数。如果未知函数y及其各阶导数都是一次的,则称它是线性的,否则称为非线性的。在高等数学中,对于常微分方程的求解,给出了一些典型方程求解析解的基本方法,如可分离变量法、常系数齐次线性方程的解法、常系数非齐次线性方程的解法等。但能求解的常微分方程仍然是有限的,大多数
2、的常微分方程是不可能给出解析解。譬如这个一阶微分方程就不能用初等函数及其积分来表达它的解。再如,方程的解,虽然有表可查,但对于表上没有给出的值,仍需插值方法来计算从实际问题当中归纳出来的微分方程,通常主要依靠数值解法来解决。本章主要讨论一阶常微分方程初值问题(9.1)在区间a≤x≤b上的数值解法。可以证明,如果函数在带形区域R=a≤x≤b,-∞<y<∞}内连续,且关于y满足李普希兹(Lipschitz)条件,即存在常数L(它与x,y无关)使对R内任意两个都成立,则方程(9.1)的解在a,b上存在且唯一。数值方法的基本思想
3、对常微分方程初值问题(9.1)式的数值解法,就是要算出精确解y(x)在区间a,b上的一系列离散节点处的函数值的近似值。相邻两个节点的间距称为步长,步长可以相等,也可以不等。本章总是假定h为定数,称为定步长,这时节点可表示为数值解法需要把连续性的问题加以离散化,从而求出离散节点的数值解。对常微分方程数值解法的基本出发点就是离散化。其数值解法有两个基本特点,它们都采用“步进式”,即求解过程顺着节点排列的次序一步一步地向前推进,描述这类算法,要求给出用已知信息计算的递推公式。建立这类递推公式的基本方法是在这些节点上用数值积分、
4、数值微分、泰勒展开等离散化方法,对初值问题中的导数进行不同的离散化处理。对于初值问题的数值解法,首先要解决的问题就是如何对微分方程进行离散化,建立求数值解的递推公式。递推公式通常有两类,一类是计算yi+1时只用到xi+1,xi和yi,即前一步的值,因此有了初值以后就可以逐步往下计算,此类方法称为单步法;其代表是龙格—库塔法。另一类是计算yi+1时,除用到xi+1,xi和yi以外,还要用到,即前面k步的值,此类方法称为多步法;其代表是亚当斯法。§9.2简单的数值方法与基本概念9.2.1Euler公式欧拉(Euler)方法是解初
5、值问题的最简单的数值方法。初值问题的解y=y(x)代表通过点的一条称之为微分方程的积分曲线。积分曲线上每一点的切线的斜率等于函数在这点的值。Euler法的求解过程是:从初始点P0(即点(x0,y0))出发,作积分曲线y=y(x)在P0点上切线(其斜率为),与x=x1直线相交于P1点(即点(x1,y1),得到y1作为y(x1)的近似值,如上图所示。过点(x0,y0),以f(x0,y0)为斜率的切线方程为当时,得这样就获得了P1点的坐标。同样,过点P1(x1,y1),作积分曲线y=y(x)的切线交直线x=x2于P2点,切线的斜率
6、=直线方程为当时,得当时,得由此获得了P2的坐标。重复以上过程,就可获得一系列的点:P1,P1,…,Pn。对已求得点以=为斜率作直线取从图形上看,就获得了一条近似于曲线y=y(x)的折线。这样,从x0逐个算出对应的数值解通常取(常数),则Euler法的计算格式i=0,1,…,n(9.2)还可用数值微分、数值积分法和泰勒展开法推导Euler格式。以数值积分为例进行推导。将方程的两端在区间上积分得,选择不同的计算方法计算上式的积分项,就会得到不同的计算公式。(9.3)用左矩形方法计算积分项代入(9.3)式,并用yi近似代替式中y
7、(xi)即可得到向前欧拉(Euler)公式由于数值积分的矩形方法精度很低,所以欧拉(Euler)公式当然很粗糙。例9.1用欧拉法解初值问题取步长h=0.2,计算过程保留4位小数解:h=0.2,欧拉迭代格式当k=0,x1=0.2时,已知x0=0,y0=1,有y(0.2)y1=0.2×1(4-0×1)=0.8当k=1,x2=0.4时,已知x1=0.2,y1=0.8,有y(0.4)y2=0.2×0.8×(4-0.2×0.8)=0.6144当k=2,x3=0.6时,已知x2=0.4,y2=0.6144,有y(0.6)y3=0.
8、2×0.6144×(4-0.4×0.6144)=0.4613clear;y=1,x=0,%初始化forn=1:10y=1.1*y-0.2*x/y,x=x+0.1,endy=1x=0y=1.1000x=0.1000y=1.1918x=0.2000y=1.2774x=0.3000y=1.358