§9-3龙格一库塔法 、高阶泰勒法 假设初值问题 dtf(t, y) a<tsb 的解y(t)及f(t,y)足够光滑 将y(t1)在t处作m阶价泰勒展开得 y(t)=y(1)+y(次 (t1) n+ h h (5) 2! n n 其中,t1<5<t1
§9-3 龙格—库塔法 一、高阶泰勒法 (t) ( , ) . (1) ( ) ( , ) 的解y 及f t y 足够光滑 y a f t y a t b dt dy = = 假设初值问题 , . ( 1)! ( ) ! ( ) 2! ( ) ( ) ( ) ( ) ( ) , 1 1 ( ) ( 1) 2 1 1 + + + + + + + + + = + + i i i i n n i n n i i i i i i t t h n y h n y t h y t y t y t y t h y t t n 其中 将 在 处作 阶泰勒展开 得
再将y(t1)=f(12y(1)得 y(t+1)=y(t1)+f(t2y(t1)h+ h 2 f(n1(t,2y(t1) h"+ (t12y(t) h n+ 当h充分小时 (n-1) y1+f(12y)h+ h2+ h 21 称上式为η阶泰勒法
+ + = + + = + + + + = + + = − + + − + i i n n i i i i i i i i n n i i n n i i i i i i i i i h n f t y h f t y y y f t y h y h h n f t y t h n f t y t h f t y t y t y t f t y t h y t f t y t ! ( , ) 2! ( , ) ( , ) ( 1)! ( , ( )) ! ( , ( )) 2! ( , ( )) ( ) ( ) ( , ( )) ( ) ( , ( )), ( 1) 2 1 0 1 ( 1) ( ) 2 1 当 充分小时 再将 得 称上式为n阶泰勒法
二、二阶龙格一库塔法 给定初值问题 f(t2y)a≤t≤b v(a=a 确定常数c12C2及的的值,使以下数值解法 y1=y1+h(c1k1+C2k2) k1=f(t12y,) k 2=f(t+Bh, y,+Bhk,) 的局部截断误差v(ta)-y()=O(h)
二、二阶龙格—库塔法 ( ) ( ) ( ). (3) ( , ) ( , ) ( ) , , (2) ( ) ( , ) 3 1 2 1 1 1 1 1 2 2 0 1 2 y t y t O h k f t h y hk k f t y y y h c k c k y c c y a f t y a t b dt dy i i i i i i i i − = = + + = = + + = = = + + 的局部截断误差 确定常数 及 的值 使以下数值解法 给定初值问题
首先将y(1)在t处展成幂级数 h (t1)=y(t)+hy(t1)+y"(t1)+O(h) 将 (D)=f(t,y() y(0=f(,y(t))+f(t,y(o)f(t, y(o) 代入上式得 y(t1)=y(1)++2(1+∥)+O(h3)(3) 其中f,f,f分别表示相应函数在点(t,y()处的函数值 由式(3),得 viI=yi +h[c f(ti,yi)+c,f(t,+ Bh, y+ Bhf(ti, yi))
, , ( , ( )) . ( ) ( ) (3) 2 ( ) ( ) , ( ) ( , ( )) ( , ( )) ( , ( )) ( ) ( , ( )) ( ) ( ) 2 ( ) ( ) ( ) ( ) 3 2 1 3 2 1 1 其中 分别表示相应函数在点 处的函数值 代入上式 得 将 首先将 在 处展成幂级数 t y i i i i t y t y i i i i i i f f f t y t f f f O h h y t y t hf y t f t y t f t y t f t y t y t f t y t y t O h h y t y t hy t y t t = + + + + = + = = + + + + + + [ ( , ) ( , ( , ))] (3), i 1 i 1 i i 2 i i i i y = y + h c f t y + c f t + h y + hf t y + 由式 得
利用二元函数的泰勒展开式,将函数f(t1+B,y1+所Bhk)在 点(t1,y2)处展开成 f(1+m,y+所M)=f(1,y)+B(y)+B(,y)(4,y)+O(h2) 代入上式得 Vi=y,+(cf+c,f)+c,Bh(+f)+O(h) 在局部截断误差的前提假设y=y(1)下,得 y(t1)-yn=-h(G+c2-1)f+h(-c2B)f+∥,)+O(h) 要使局部截断误差y(t-)-y1=O(h3),当且仅当 c1+2-1-2c2B=0 即常数c12C2,满足条件 C1+C2=1c2B 方程组有三个未知数,但只有两个方程,因此可得到 局部截断误差为O(h3)的计算公式
( ) ( ) ( ) , ( , ) ( , ) ( , ) ( , ) ( , ) ( ) ( , ) ( , ) 2 1 1 2 2 2 1 1 y y h c f c f c h f f f O h f t h y hk f t y hf t y hf t y f t y O h t y f t h y hk i i t y i i i i i i i i y i i i i i i = + + + + + + + = + + + + + + 代入上式 得 点 处展开成 利用二元函数的泰勒展开式,将函数 在 ( ) . 2 1 1 , , 0 2 1 1 0, ( ) ( ), )( ) ( ) 2 1 ( ) ( 1) ( ( ) , 3 1 2 2 1 2 1 2 2 3 1 1 3 2 2 1 1 1 2 局部截断误差为 的计算公式 方程组有三个未知数,但只有两个方程,因此可得到 即常数 满足条件 要使局部截断误差 当且仅当 在局部截断误差的前提假设 下 得 O h c c c c c c c c y t y O h y t y h c c f h c f f f O h y y t i i i i t y i i + = = + − = − = − = − = − + − + − + + = + + + +
如果取c1=C2=,B=1,递推公式为 C k1=f(12y) k2=f(t, +h,y,+ hk,) (8) y+1=y1+(k1+k2) 2 取c1 B=,递推公式为 k1=f(t2,y) k2=f(1+h,y2+hk1) (9) 4 y1=y2+h(k1+k2)
(9) ) 3 2 3 1 ( ) 4 3 , 4 3 ( ( , ) , 4 3 , 3 2 , 3 1 (8) ( ) 2 ( , ) ( , ) , 1, 2 1 1 1 2 2 1 1 0 1 2 1 1 2 2 1 1 0 1 2 = + + = + + = = = = = = + + = + + = = = = = + + y y h k k k f t h y hk k f t y y c c k k h y y k f t h y hk k f t y y c c i i i i i i i i i i i i 取 递推公式为 如果取 递推公式为
如果取c1=0,c2=1,B=,递推公式为 y=2 k1=f(t1,y) (10) k2=f(1+h,y+hk1) y+1=y2+hk2 公式(8)、(9)、(10)三式是三种常见的二阶龙格一库塔公式 局部截断误差为O(h)
(10) ) ) 2 1 , 2 1 ( ( , ) , 2 1 0, 1, 1 2 2 1 1 0 1 2 = + = + + = = = = = y + y hk k f t h y hk k f t y y c c i i i i i i 如果取 递推公式为 公式(8)、(9)、(10)三式是三种常见的二阶龙格—库塔公式 ( ). 3 局部截断误差为O h
三、三、四阶龙格一库塔法 三阶龙格—库塔法 -C k1=f(t12y1) h h k2=f(t1+,y+。k1) k3=f(1+h,y2+h(2k2-k1 y+1=y+(k1+4k2+k3)
( 4 ) 6 1 1 2 3 k k k h y y i+ = i + + + ( , ) 1 i i k = f t y ) 2 , 2 ( 2 1 k h y h k f t = i + i + ( , (2 )) 3 2 1 k f t h y h k k = i + i + − y0 = 三、三、四阶龙格—库塔法 三阶龙格—库塔法
四阶龙格一库塔法 k1=f(t12y) h k2=∫(t1+,y2+k) 2 k3=f(1+,y+ h-2h2 k 4=f(t+h,yi+hk) h y+1=y1+(k1+2k2+2k3+k4)
四阶龙格—库塔法 ( 2 2 ) 6 1 1 2 3 4 k k k k h y y i+ = i + + + + ( , ) 1 i i k = f t y ) 2 , 2 ( 2 1 k h y h k f t = i + i + y0 = ) 2 , 2 ( 3 2 k h y h k f t = i + i + ( , ) 4 hk3 k f t h y = i + i +
作业 教材P198习题3
作业 教材P198 习题 3