初值问题的数值解法
- 格式:pdf
- 大小:158.76 KB
- 文档页数:9
第九章常微分方程初值问题的数值解法§1 相关知识§2 几种简单的数值方法§3 Runge–Kutta方法§4 单步法的进一步讨论§5 线性多步法西北工业大学理学院欧阳洁1上述定理称为一阶常微分方程初值问题解的适定性(存在性、惟一性与稳定性)定理。
对所讨论的一阶常微分方程初值问题,本章假设该问题是适定的,即解析解y(x)在区间[a,b]上是存在、惟一,且具有充分的光滑度。
因此f(x,y(x))也充分光滑。
西北工业大学理学院欧阳洁3西北工业大学理学院欧阳洁5常微分方程初值问题的数值解法分为:①单(一)步法:计算时,只用到和,即前一步的值。
1+n y n y n n x x ,1+显式单步法的一般形式为②多步法:计算时,除用到和以外,还用到和,即用到前k 步的值。
p n x −)1;1,2,1(>−=−k k p y p n L 1+n y n y n n x x ,1+对单步法与多步法,有显式与隐式方法之分。
显式、隐式多步法的一般形式类似。
隐式单步法的一般形式为),,(1h y x h y y n n n n ϕ+=+),,,,(111h y x y x h y y n n n n n n ++++=ϕ数值解法建立的过程:通过一定的离散化方法,将连续性问题的求解转化为有限个离散节点上解析解近似值的求解。
常用的离散化方法:Taylor 展开法;差商直接代替微商;数值积分法。
西北工业大学理学院欧阳洁16设一般的单步法为:显式公式隐式公式定义为某一数值方法在处的整体截断误差。
111()n n n e y x y +++=−1n x +五单步法的局部截断误差和阶整体截断误差不仅与这一步的计算有关,还依赖于前面各步的计算。
1+n x 011,,,,x x x x n n L −下面着重分析计算中某一步的误差(局部截断误差),后面将对显式单步法,给出整体截断误差与局部截断误差之间的关系。
初值问题与解方法初值问题是数学中的一个重要概念,它涉及到微分方程的解的初始条件。
解决初值问题的方法有多种,本文将介绍几种常用的解法,并讨论它们的适用性和优缺点。
一、欧拉法(Euler's method)欧拉法是一种较为简单的数值解法,通过逐步逼近微分方程的解。
它的基本思想是将时间和空间分割成小的步长,并用线性逼近的方式求解微分方程。
欧拉法的计算公式为:y_{n+1} = y_n + h * f(t_n, y_n)其中,y_{n+1} 是下一个时间步长上的解,y_n 是当前时间步长上的解,h 是步长(时间或空间),f(t_n, y_n) 是微分方程的右端函数。
欧拉法的优点是简单易懂、计算量小。
然而,它的精度较低,对于具有较大步长或非线性的微分方程,可能会产生较大的误差。
二、改进的欧拉法(Improved Euler's method)改进的欧拉法是对欧拉法的一种改进方法,通过增加一个中间点的计算来提高精度。
改进的欧拉法的计算公式为:y_{n+1} = y_n + (h/2) * (f(t_n, y_n) + f(t_{n+1}, y_n + h * f(t_n, y_n)))改进的欧拉法通过使用两个不同的斜率来进行计算,提高了解的逼近精度。
相比于欧拉法,改进的欧拉法的精度更高,误差较小。
三、龙格-库塔方法(Runge-Kutta methods)龙格-库塔方法是一类常用的数值解法,包括一阶、二阶、四阶等不同精度的方法。
其中,最常用的是四阶龙格-库塔方法。
四阶龙格-库塔方法的计算公式为:k_1 = h * f(t_n, y_n)k_2 = h * f(t_n + h/2, y_n + k_1/2)k_3 = h * f(t_n + h/2, y_n + k_2/2)k_4 = h * f(t_n + h, y_n + k_3)y_{n+1} = y_n + (k_1 + 2k_2 + 2k_3 + k_4)/6四阶龙格-库塔方法通过使用多个斜率进行逼近,进而提高了解的精度。
常微分方程初值问题数值解法初值问题:即满足初值条件的常微分方程的解y′=f(x,y),x∈[x0,b]y(x0)=y0.定理1(利普希茨条件)若存在正数L,使得对任意,y1,y2,有|f(x,y1)−f(x,y2)|≤L|(y1−y2)|定理2(解存在性)①若函数f在方区域x∈[a,b],y∈R连续,②函数f关于y 满足利普希茨条件,则对任意x∈[a,b],常微分方程存在唯一的连续可微数值解.两类问题:①单步法---计算下一个点的值yn+1只需要用到前面一个点的值yn②多步法---计算下一个点的值yn+1需要用到前面l个点的值yl1、欧拉法---下一个点的计算值等于前一个点的计算值加上步长乘以前一个点的函数值•具体过程一些批注:显式欧拉方程指下一步要计算的值,不在迭代方程中;隐式欧拉方程指下一步要计算的值,在迭代方程中。
怎么计算隐式欧拉方程----要借助显示欧拉迭代计算---一般用迭代法-----迭代---将微分方程在区间[xn,xn+1]进行积分,然后函数f进行近似,即可得到迭代方程-----迭代方程收敛性?由函数关于y满足利普希茨条件,可以推出迭代公式收敛。
•局部截断误差:假设前n步误差为0,我们计算第n+1步的误差,将次误差称为局部截断误差,且局部误差为O(hp+1)•p阶精度:由理论证明:若局部误差阶的时间复杂度为O(hp+1),则整体误差阶为O(hp)我们称公式精度为p。
•显示欧拉法与隐式欧拉法•梯形方法----将显式欧拉迭代方程与隐式欧拉迭代方程做一下加权平均,构造的计算公式.•改进的欧拉方法---思想:因为梯形公式是隐式公式,将显式欧拉公式对下一步的计算值进行预估,用梯形公式对下一步的计算值进行校正.2、龙格-库塔方法思想:根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以前一个点的斜率;而这个斜率用该区间上的多个点的斜率的算数平均来逼近。
注意:怎么计算任意斜率Ki?第i个点的斜率Ki有微分方程可以算出f′=f(xn,yn)所以要算的f(xn,yn)值,由欧拉法即可算出, yn+1=yn+hf′•2阶-龙格-库塔方法----类似改进的欧拉法根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以斜率;而这个斜率用区间上的端点和中点的斜率的算数平均来逼近。
第六章 常微分方程初值问题的数值解法_习题课1 .欧拉法的局部截断误差的阶为 。
改进欧拉法的局部截断误差的阶为 。
三阶龙格-库塔法的局部截断误差的阶为 。
四阶龙格-库塔法的局部截断误差的阶为 。
2. 欧拉法的绝对稳定实区域为 。
二阶龙格-库塔法的绝对稳定实区域为 。
三阶龙格-库塔法的绝对稳定实区域为 。
四阶龙格-库塔法的绝对稳定实区域为 。
3.求解初值问题欧拉法的局部截断误差是( );⎩⎨⎧=='00y x y y x f y )(),(改进欧拉法的局部截断误差是( );四阶龙格-库塔法的局部截断误差是( ). (A)O (h 2) (B)O (h 3) (C)O (h 4) (D)O (h 5)4. 改进欧拉法的平均形式公式是( ).(A)⎪⎪⎪⎩⎪⎪⎪⎨⎧+21=+=+=1+)(),(),(c p k p k k c k k k p y y y y x hf y y y x hf y y (B)⎪⎪⎪⎩⎪⎪⎪⎨⎧+21=+=+=1+1+1+)(),(),(c p k p k k c k k k p y y y y x hf y y y x hf y y(C)⎪⎪⎪⎩⎪⎪⎪⎨⎧+2=+=+=1+1+)(),(),(c p k p k k c k k k p y y h y y x hf y y y x hf y y (D)⎪⎪⎪⎩⎪⎪⎪⎨⎧+21=+=+=1+1+)(),(),(c p k p k k c k k k p y y y y x hf y y y x hf y y 答案:(D)5. 解微分方程初值问题的方法,( )的局部截断误差为O (h 3). (A) 欧拉法 (B)改进欧拉法 (C)三阶龙格-库塔法 (D) 四阶龙格-库塔法 答案:(B)解答:改进欧拉法的局部截断误差是二阶精度,O(h3)。
6. 对Euler 公式推导局部截断误差及其主项,并指出该方法是几阶方法。
解:其局部截断为))(,()()(11n n n n n x y x hf x y x y T --=++ 对在处作Talor 展开,有)(1+n x y n x )()(2)()()(321h O x y h x y h x y x y n n n n +''+'+=+而且,因此其局部截断为 ))(,()(n n n x y x f x y =' ))(,()()(11n n n n n x y x hf x y x y T --=++)()(2)()(32h O x y h x y h x y n n n +''+'+=)()(n n x y h x y '--)()(232h O x y h n +''=)(2h O =所以,显式Euler 方法是1阶方法,其截断误差的主项是)(22n x y h ''。
7.对隐式Euler 公式推导局部截断误差及其主项,并指出该方法是几阶方法。
解:其局部截断为))(,()()(1111++++--=n n n n n x y x hf x y x y T 对在处作Talor 展开,有)(1+n x y n x )()(2)()()(321h O x y h x y h x y x y n n n n +''+'+=+而且,也在处作Talor 展开,有 ))(,()(111+++='n n n x y x f x y n x )()()()(21h O x y h x y x y n n n +''+'='+所以,因此其局部截断为))(,()()(1111++++--=n n n n n x y x hf x y x y T)()(2)()(32h O x y h x y h x y n n n +''+'+=)()()()(32h O x y h x y h x y n n n +''-'-- )()(232h O x y h n +''-=)(2h O =所以,隐式Euler 方法也是1阶方法,其截断误差的主项是)(22n x y h ''-。
8.对梯形公式推导局部截断误差及其主项,并指出该方法是几阶方法. 解:其局部截断为))](,())(,([2)()(1111+++++--=n n n n n n n x y x f x y x f hx y x y T对在处作Talor 展开,有)(1+n x y n x )()(6)(2)()()(4321h O x y h x y h x y h x y x y n n n n n +'''+''+'+=+而且,))(,()(n n n x y x f x y ='))(,()(111+++='n n n x y x f x y ,对)(1+'n x y 也在处作Talor 展开,有n x )()(2)()()(321h O x y h x y h x y x y n n n n +'''+''+'='+所以,因此其局部截断为))](,())(,([2)()(1111+++++--=n n n n n n n x y x f x y x f hx y x y T)()(6)(2)()(432h O x y h x y h x y h x y n n n n +'''+''+'+=)()(12)(2)(2)(2)(432h O x y h x y h x y h x y h x y n n n n n +'''-''-'-'--)()(1243h O x y h n +'''-=)(3h O =所以,梯形公式是2阶方法,其截断误差的主项是)(123n x y h '''-=。
9.用欧拉法解初值问题,取步长h =0.2.计算过程保留4位小数.⎩⎨⎧1=060≤≤0--='2)().(y x xy y y 解: h =0.2, f (x )=-y -xy 2.首先建立欧拉迭代公式)2,1,0)(4(2.0),(21=-=--=+=+k y x y y hx hy y y x hf y y k k k kk k k k k k k 当k =0,x 1=0.2时,已知x 0=0,y 0=1,有y (0.2)≈y 1=0.2×1(4-0×1)=0.800 0当k =1,x 2=0.4时,已知x 1=0.2, y 1=0.8,有 y (0.4)≈y 2=0.2×0.8×(4-0.2×0.8)=0.614 4 当k =2,x 3=0.6时,已知x 2=0.4,y 2=0.614 4,有 y (0.6)≈y 3=0.2×0.614 4×(4-0.4×0.4613)=0.800 010.用欧拉预报-校正公式求解初值问题,取步长h =0.2,计算y (0.2),y (0.4)的近似值,计算过程保留5位小数.l ⎩⎨⎧1=10=++'2)(sin y x y y y 解 步长h =0.2, 此时f (x ,y )=-y -y 2sin x . 欧拉预报-校正公式为:⎪⎩⎪⎨⎧++=+=++++)],(),([2),(1111k k k k k k k k k k y x f y x f hy y y x hf y y 校正值预报值 有迭代公式:⎪⎪⎪⎩⎪⎪⎪⎨⎧+--=--+--+=-=--+=++++++++)sin (1.0)sin 1.09.0()]sin ()sin [(2)sin 2.08.0()sin (121112112121k k k k k k k k k k k k k k k k k k k k k k x y y x y y x y y x y y h y y x y y x y y h y y 校正值预报值当k =0,x 0=1, y 0=1时,x 1=1.2,有631710=11⨯02-80⨯1=20-80=0001.)sin .()sin ..(x y y y715490=21631710+63171010-1⨯1⨯10-90⨯1=≈2121.).sin ..(.)sin ..().(y y 当k =1,x 1=1.2, y 1=0.71549时,x 2=1.4,有476970=21715490⨯02-80⨯715490=20-80=1112.).sin ..(.)sin ..(x y y y).sin ..(.).sin ...(.).(41476970+47697010-21⨯715490⨯10-90⨯715490=≈4122y y =0.5260811.用改进的欧拉法平均公式,取步长h =0.1,求解初值问题⎩⎨⎧=≤≤+='1)0()2.00(y x y x y 计算过程保留4位小数. 解 首先建立迭代格式:⎪⎪⎪⎩⎪⎪⎪⎨⎧+++++=+=++++=+=++=+=++++k k k c p k kk k p k k c k k k k k p y h h hx x h h y y y x h hx h h y y x hf y y h y hx y x hf y y )21(])1([21][21)1(),()1(),(2112121 当k =0时,x 0=0,y 0=1,x 1=0.1,有11.11)21.01.01(]1.01.00)1.01(1.0[2121=⨯+++⨯+⨯+⨯=y当k =1时,x 1=0.1, y 1=1.11, x 2=0.2,有1242.111.121.01.01(]2.01.01.0)1.01(1.0[2122=⨯+++⨯+⨯+⨯=y12.(1)取步长h=0.2,用改进Euler 法求解常微分方程初值问题22,(0)y x y y '=++=0在x=0.6上的解。
(2)对改进Eluer 格式进行误差分析。
解:(1)改进Euler 公式⎪⎩⎪⎨⎧++=+=++++))~,(),((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 分别将x=0.2, 0.4,0.6,代入上式中计算即可!(2)改进欧拉格式11121[]2(,)(,i i i i i i h 2)y y k k k f x y k f x h y hk +⎧=++⎪⎪=⎨⎪=++⎪⎩2341()()()()()()()2!3!i i i i i i h h y x y x h y x hy x y x y x O h +''''''∴=+=++++1211222211(,)()(,)(,)(,)(,1[(,)2(,)(,)]()2!i i i i i i i x i i y i i xxi i xy i i yy i i k f x y y x k f x h y hk f x y hf x y hk f x y h f x y h k f x y h k f x y O h '==''=++=++''''''++++3)又1()(,)(,)()(,)(,)i x i i y i i i x i i y i i y x f x y f x y y x f x y f x y k '''''''=+=+代入11[2i i h 2]y y k k +=++,整理后 31()()(i i )y x y x O h +-=13. (1)取步长为0.1,试用欧拉公式求解常微分方程初值问题⎩⎨⎧=-+='1)0(1y y x y 在x =0.4处的近似值(计算过程保留3位小数);(2) 试用泰勒展式估计改进欧拉公式的局部截断误差。