8.4 线性多步法
- 格式:pdf
- 大小:333.50 KB
- 文档页数:32
线性多步法matlab程序,数学实验“线性多步法(数值积分法,Taylor展开法)”实验报。
数学实验“线性多步法(数值积分法,Taylor展开法)”实验报告(内含matlab程序).西京学院数学软件实验任务书课程名称数学软件实验班级数0901学号0912020107姓名李亚强实验课题线性多步法(数值积分法,Taylor展开法)实验⽬的熟悉线性多步法(数值积分法,Taylor展开法)实验要求运⽤Matlab/C/C++/Java/Maple/Mathematica等其中⼀种语⾔完成实验内容线性多步法(数值积分法,Taylor展开法)成绩教师实验⼆⼗五实验报告实验名称:线性多步法(数值积分法,Taylor展开法)。
实验⽬的:进⼀步熟悉线性多步法(数值积分法,Taylor展开法)。
实验要求:运⽤Matlab/C/C++/Java/Maple/Mathematica等其中⼀种语⾔完成程序设计。
实验原理:数值积分法:常微分⽅程初值问题(1)数值解法中,某⼀步的公式不仅与前⼀步解的值有关,⽽且与前若⼲步解的值有关,利⽤前⾯多步的信息预测下⼀步的值,这就是多步法的基本思想,可以期望获得较⾼的精度。
将(1)中的⽅程在区间上积分,可以得到:⽤等距节点的插值多项式来替代被积函数,再对插值多项式积分,这样就得到⼀系列求积公式。
⽤梯形⽅法计算积分项代⼊(1)中得:设由个数据点 构造插值多项式,这⾥,运⽤插值公式有:得到下列计算公式:(2)其中,由此可得(2)中的系数。
公式(2)是⼀个r+1步的显式公式,称为Adams显式公式。
Taylor展开法:基于数值积分可以构造出⼀系列求解常微分⽅程的计算公式,下⾯介绍基于 Taylor 展开的待定系数法,它可灵活地构造出线性多步法。
对固定的系数,可以选取待定系数使线性多步法的阶尽可能⾼。
还可以根据需要,确定显式还是隐式。
设构造如下具有 p 阶精度的线性多步公式:(4)它们的局部截断误差为:即: (5)对(5)式的右端各项在点处作Taylor展开有:代⼊(5)中得:使的系数为零,得到关于和的线性⽅程组:⽽且得到线性多步法的局部截断误差:实验内容:%数值积分法function [k,X,Y,wucha,P]= Adams4x(funfcn,x0,b,y0,h)x=x0; y=y0;p=128; n=fix((b-x0)/h);if n<5return;endX=zeros(p,1);Y=zeros(p,length(y)); f=zeros(p,1);k=1; X(k)=x; Y(k,:)=y';for k=2:4c1=1/6;c2=2/6;c3=2/6;c4=1/6;a2=1/2; a3=1/2;a4=1;b21=1/2;b31=0;b32=1/2; b41=0;b42=0;b43=1;x1=x+a2*h; x2=x+a3*h;x3=x+a4*h; k1=feval(funfcn,x,y);y1=y+b21*h*k1; x=x+h;k2=feval(funfcn,x1,y1);y2=y+b31*h*k1+b32*h*k2;k3=feval(funfcn,x2,y2);y3=y+b41*h*k1+b42*h*k2+b43*h*k3;k4=feval(funfcn,x3,y3);y=y+h*(c1*k1+c2*k2+c3*k3+c4*k4); X(k)=x; Y(k,:)=y; endX;Y;f(1:4)=feval(funfcn,X(1:4),Y(1:4));for k=4:nf(k)=feval(funfcn,X(k),Y(k));X(k+1)=X(1)+h*k;Y(k+1)=Y(k)+(h/24)*((f(k-3:k))'*[-9 37 -59 55]');f(k+1)= feval(funfcn,X(k+1),Y(k+1));f(k)=f(k+1); k=k+1; endfor k=2:n+1wucha(k)=norm(Y(k)-Y(k-1)); k=k+1; endX=X(1:n+1); Y=Y(1:n+1,:); n=1:n+1, wucha=wucha(1:n,:); P=[n',X,Y,wucha']; - 0 -。
1.1 求下列各数的具有四位有效数字的近似值, 并指出其绝对误差限和相对误差限)1.0ln(,121,1011,1014321====x x x x1.2 下列各数都是对准确值进行四舍五入得到的近似值, 指出它们的绝对误差限、相对误差限和有效数字的位数。
3*5*4*3*2*1100.5,5000,50.31,3015.0,0315.0⨯=====x x x x x1.3 为了使31的近似值的相对误差不超过0.1%, 问应取几位有效数字?1.4 怎样计算下列各题才能使得结果比较精确?(1) x x sin )sin(-+ε,其中ε充分小 (2) ⎰++121N Nx dx,其中N 是充分大的正数(3)xxsin cos 1-,其中x 充分小(4) o 1cos 1- (5) 1001.0-e(6) )11010ln(84--1.5 求方程01562=+-x x 的两个根, 使至少具有四位有效数字。
2.1 证明方程043=-+x x 在区间[1,2]内有且仅有一个根。
如果用二分法求它具有五位有效数字的根,试问需对分多少次?(不必求根)2.2 用二分法求方程0134=+-x x 在[0.3, 0.4]内的一个根, 精度要求21021-⨯=ε。
2.3 找出下列方程的有根区间,选择适当的初始点用二分法求方程的根,精度要求210-=ε。
(1) 02=--x x ;(2) 06cos 2=-++-x e x x ; (3) 01tan =--x x ; (4) 0sin 2=--x e x 。
2.4 考虑方程032=-x e x ,将其改写为3xex ±=,取00=x ,用两种迭代公式迭代,分别收敛到1.0和-0.5附近的两个根(取精度要求310-=ε)。
2.5 为求方程0123=--x x 在5.1=x 附近的一个根,建立下列形式的迭代公式:(1) 2121111kk x x xx +=⇒+=+,;(2) 3212311k k x x x x +=⇒+=+,;(3) 111112-=⇒-=+k k x x x x ,。
第七章 常微分方程数值解法常微分方程中只有一些典型方程能求出初等解(用初等函数表示的解),大部分的方程是求不出初等解的。
另外,有些初值问题虽然有初等解,但由于形式太复杂不便于应用。
因此,有必要探讨常微分方程初值问题的数值解法。
本章主要介绍一阶常微分方程初值问题的欧拉法、龙格-库塔法、阿达姆斯方法,在此基础上推出一阶微分方程组与高阶方程初值问题的 数值解法;此外,还将简要介绍求解二阶常微分方程值问题的差分方法、试射法。
第一节 欧拉法求解常微分方程初值问题⎪⎩⎪⎨⎧==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)公式。
以上方法称 为欧 拉法或欧拉折线法。
河北联合大学第9章常微分方程初值问题数值解法§9.3 龙格-库塔法 §9.4 线性多步法1. 什么是p 阶Runge-Kutta 法?写出经典的四阶Runge-Kutta 法。
答:考虑增加计算),(y x f 的次数,就有可能构造出精度较高的近似公式。
构造如下形式的计算公式:),,3,2( ),( ),(11111p i K b h y h a x f K y x f K K c h y y i j j ij n i n i n n p i i i n n (1)其中i ij i c b a ,,都是参数,确定它们的原则是使近似公式在),(n n y x 处的Taylor 展开式与)(x y 在n x 处的Taylor 展开式的前面的项尽可能多地重合。
将式(1)称为p 阶显式Runge-Kutta 方法,简称R-K 方法。
取4 p ,通过更复杂的计算,式(1)成为),( )2,2( )2,2( ),( )22(6342312143211hk y h x f K K h y h x f K K h y h x f K y x f K K K K K h y y n n n n n n n n n n 上式称为经典形式的四阶R-K 公式,是常用的四阶R-K 公式。
局部截断误差为5()O h 。
2. 如何导出线性多步法的公式?它与单步法有何区别?答:(1)利用Taylor 展开构造线性多步方法线性多步法(Linear-Multistep Method)的一般形式为ri i n i r i i n i n f h y y 101 (2)其中i i ,均为常数,),(k k k y x f f ),,,1(r n n n k 。
若01 ,公式(2)为显式法;01 ,公式为隐式法。
利用Taylor 展开导出线性多步公式的基本方法是:将线性多步公式(2)在n x 处进行Taylor 展开,然后与1() n y x 在n x 处的Taylor 展开式相比较,要求它们前面的项重合,由此确定参数i i ,。
第8章常微分方程的数值解法8.4单步法的收敛性与稳定性8.4.1相容性与收敛性上面所介绍的方法都是用离散化的方法,将微分方程初值问题化为差分方程初值问题求解的.这些转化是否合理?即当h →∞时,差分方程是否能无限逼近微分方程,差分方程的解n y 是否能无限逼近微分方程初值问题的准确解()n y x ,这就是相容性与收敛性问题.用单步法(8.3.14)求解初值问题(8.1.1),即用差分方程初值问题100(,,)()n n n n y y h x y h y x y ϕ+=+⎧⎨=⎩(8.4.1)的解作为问题(8.1.1)的近似解,如果近似是合理的,则应有()()(,(),)0 (0)y x h y x x y x h h hϕ+--→→(8.4.2)其中()y x 为问题(8.1.1)的精确解.因为0()()lim ()(,)h y x h y x y x f x y h→+-'==故由(8.4.2)得lim (,,)(,)h x y h f x y ϕ→=如果增量函数(,(),)x y x h ϕ关于h 连续,则有(,,0)(,)x y f x y ϕ=(8.4.3)定义8.3如果单步法的增量函数(,,)x y h ϕ满足条件(8.4.3),则称单步法(8.3.14)与初值问题(8.1.1)相容.通常称(8.4.3)为单步法的相容条件.满足相容条件(8.4.3)是可以用单步法求解初值问题(8.1.1)的必要条件.容易验证欧拉法和改进欧拉法均满足相容性条件.一般地,如果单步法有p 阶精度(1p ≥),则其局部截断误差为[]1()()(,(),)()p y x h y x h x y x h O h ϕ++-+=上式两端同除以h ,得()()(,,)()p y x h y x x y h O h hϕ+--=令0h →,如果(,(),)x y x h ϕ连续,则有()(,,0)0y x x y ϕ'-=所以1p ≥的单步法均与问题(8.1.1)相容.由此即得各阶龙格-库塔法与初值问题(8.1.1)相容.定义8.4一种数值方法称为是收敛的,如果对于任意初值0y 及任意固定的(,]x a b ∈,都有lim () ()n h y y x x a nh →==+其中()y x 为初值问题(8.1.1)的精确解.如果我们取消局部化假定,使用某单步法公式,从0x 出发,一步一步地推算到1n x +处的近似值1n y +.若不计各步的舍入误差,而每一步都有局部截断误差,这些局部截断误差的积累就是整体截断误差.定义8.5称111()n n n e y x y +++=-为某数值方法的整体截断误差.其中()y x 为初值问题(8.1.1)的精确解,1n y +为不计舍入误差时用某数值方法从0x 开始,逐步得到的在1n x +处的近似值(不考虑舍入误差的情况下,局部截断误差的积累).定理8.1设单步法(8.3.14)具有p 阶精度,其增量函数(,,)x y h ϕ关于y 满足利普希茨条件,问题(8.1.1)的初值是精确的,即00()y x y =,则单步法的整体截断误差为111()()p n n n e y x y O h +++=-=证明由已知,(,,)x y h ϕ关于y 满足利普希茨条件,故存在0L >,使得对任意的12,y y 及[,]x a b ∈,00h h <≤,都有1212(,,)(,,)x y h x y h L y y ϕϕ-≤-记1()(,(),)n n n n y y x h x y x h ϕ+=+,因为单步法具有p 阶精度,故存在0M >,使得1111()p n n n R y x y Mh ++++=-≤从而有111111111()()()(,(),)(,,)()(,(),)(,,)n n n n n n n p n n n n n n p n n n n n n e y x y y x y y y Mh y x h x y x h y h x y h Mh y x y h x y x h x y h ϕϕϕϕ+++++++++=-≤-+-≤++--≤+-+-1(1)p nMh hL e +≤++反复递推得11111101110(1)(1)1(1)(1)(1)(1)1(1)p p n n n p n n p n e Mh hL Mh hL e hL hL Mh hL e hL Mh hL e hL+++-+++++⎡⎤≤++++⎣⎦⎡⎤≤+++++++⎣⎦+-≤++因为00()y x y =,即00e =,又(1)n h b a +≤-,于是ln(1)1()(1)(1)b a b a hL n L b a h h hL hL e e --++-+≤+=≤所以()11()p L b a p n M e h e O h L -+⎡⎤≤-=⎣⎦推论设单步法具有p (1p ≥)阶精度,增量函数(,,)x y h ϕ在区域G :, , 0a x b y h h ≤≤-∞<<+∞≤≤上连续,且关于y 满足利普希茨条件,则单步法是收敛的.当(,)f x y 在区域:,D a x b y ≤≤-∞<<+∞上连续,且关于y 满足利普希茨条件时,改进欧拉法,各阶龙格-库塔法的增量函数(,,)x y h ϕ在区域G 上连续,且关于y 满足利普希茨条件,因而它们都是收敛的.关于单步法收敛的一般结果是:定理8.2设增量函数(,,)x y h ϕ在区域G 上连续,且关于y 满足利普希茨条件,则单步法收敛的充分必要条件是相容性条件(8.4.3).8.4.2稳定性稳定性与收敛性是两个不同的概念,收敛性是在假定每一步计算都准确的前提下,讨论当步长0h →时,方法的整体截断误差是否趋于零的问题.而稳定性则是讨论舍入误差的积累能否对计算结果有严重影响的问题.定义8.6若一种数值方法在节点值n y 上有一个大小为δ的扰动,于以后各节点()m y m n >上产生的偏差均不超过δ,则称该方法是稳定的.我们以欧拉法为例进行讨论.假设由于舍入误差,实际得到的不是n y 而是n n n y y δ=+,其中n δ是误差.由此再计算一步,得到1(,)n n n n y y hf x y +=+把它与不考虑舍入误差的欧拉公式相减,并记111n n n y y δ+++=-,就有[]1(,)(,)1(,)n n n n n n y n nh f x y f x y hf x δδηδ+⎡⎤=+-=+⎣⎦其中y f f y∂=∂.如果满足条件1(,)1y n hf x η+≤,(8.4.4)则从n y 到1n y +的计算,误差是不增的,可以认为计算是稳定的.如果条件(8.4.4)不满足,则每步误差将增大.当0y f >时,显然条件(8.4.4)不可能满足,我们认为问题本身具有先天的不稳定性.当0y f <时,为了满足稳定性要求(8.4.4),有时h 要很小.一般的,稳定性与方法有关,也与步长h 的大小有关,当然也与方程中的(,)f x y 有关.为简单起见,通常只考虑数值方法用于求解模型方程的稳定性,模型方程为y y λ'=(8.4.5)其中λ为复数.一般的方程可以通过局部线性化转化为模型方程,例如在(,)x y 的邻域(,)(,)(,)()(,)()x y y f x y f x y f x y x x f x y y y '==+-+-+略去高阶项,再作变量替换就得到u u λ'=的形式.对于模型方程(8.4.5),若Re 0λ>,类似以上分析,可以认为方程是不稳定的.所以我们只考虑Re 0λ<的情形,这时不同的数值方法可能是数值稳定的或者是数值不稳定的.当一个单步法用于试验方程y y λ'=,从n y 计算一步得到1()n n y E h y λ+=(8.4.6)其中()E h λ依赖于所选的方法.因为通过点(,)n n x y 试验方程的解曲线(它满足,()n n y y y x y λ'==)为[]exp ()n n y y x x λ=-,而一个p 阶单步法的局部截断误差在()n n y x y =时有1111()()p n n n T y x y O h ++++=-=,所以有1exp()()()p n n y h E h y O h λλ+-=(8.4.7)这样可以看出()E h λ是h e λ的一个近似值.由(8.4.6)可以看到,若n y 计算中有误差ε,则计算1n y +时将产生误差()E h λε,所以有下面定义.定义8.7如果(8.4.6)式中,()1E h λ<,则称单步法(8.3.14)是绝对稳定的.在复平面上复变量h λ满足()1E h λ<的区域,称为方法(8.3.14)的绝对稳定区域,它与实轴的交称为绝对稳定区间.在上述定义中,规定严格不等式成立,是为了和线性多步法的绝对稳定性定义一致.事实上,()1E h λ=时也可以认为误差不增长.(1)欧拉法的稳定性欧拉法用于模型方程(8.4.5),得1(1)n n y h y λ+=+,所以有()1E h h λλ=+.所以绝对稳定条件是11h λ+<,它的绝对稳定区域是h λ复平面上以(1,0)-为中心的单位圆,见图8.3.而λ为实数时,绝对稳定区间是(2,0)-.Im()h λRe()h λ2-1-O 图8.3欧拉法的绝对稳定区域(2)梯形公式的稳定性对模型方程,梯形公式的具体表达式为11()2n n n n h y y y y λλ++=++,即11212n nh y y h λλ++=-,所以梯形公式的绝对稳定区域为12112h h λλ+<-.化简得Re()0h λ<,因此梯形公式的绝对稳定区域为h λ平面的左半平面,见图8.4.特别地,当λ为负实数时,对任意的0h >,梯形公式都是稳定的.Im()h λRe()h λO 图8.4梯形公式的绝对稳定区域(3)龙格-库塔法的稳定性与前面的讨论相仿,将龙格-库塔法用于模型方程(8.4.5),可得二、三、四阶龙格-库塔法的绝对稳定区域分别为211()12h h λλ++<23111()()126h h h λλλ+++<2341111()()()12624h h h h λλλλ++++<当λ为实数时,二、三、四阶显式龙格-库塔法的绝对稳定区域分别为20h λ-<<、2.510h λ-<<、 2.780h λ-<<.例8.5设有初值问题21010101(0)0xy y x x y ⎧'=-≤≤⎪+⎨⎪=⎩用四阶经典龙格-库塔公式求解时,从绝对稳定性考虑,对步长h 有何限制?解对于所给的微分方程有2100,(010)1f x x y xλ∂==-<≤≤∂+在区间[0,10]上,有201010max ||max51t x x λ<<==+由于四阶经典龙格-库塔公式的绝对稳定区间为 2.7850h λ-<<,则步长h 应满足00.557h <<.。