301 12 (2) : 1
(1) dx dt = f(x,t) ( (t 0,t 1,...,t N ) ) h k = t k+1 t k. h k k h. x(t k ) x k. : 2
(2) :1. step. 1 : explicit( ) : ξ k+1 = ξ k +h k Ψ(t k,ξ k,h k ) implicit( ) : ξ k+1 = ξ k +h k Ψ(t k,t k+1,ξ k,ξ k+1,h k ) : 3
(3), Euler Ψ Runge-Kutta ( explicit ),.., x(t) dx dt = f(x,t). : 4
Runge-Kutta (1) Runge-Kutta 1., Φ(t k,x k,h k ), x k+1 = x k +h k Φ(t k,x k,h k ). Φ(t k,x k,h k ), Ψ(t,x(t),h k ). Ψ(t,x(t),h k ) Φ(t,x(t),h k ), τ(t,r). : 5
Runge-Kutta (2) C > 0, ρ > 0, r : 0 < r < ρ, t [a,b], τ(t,r) Cr p, p, p., x(t+r) x(t) x(t) x(t r),. : 6
Runge-Kutta (3) (h ), p, L > 0, k, x k ξ k el(b a) L Chp ([ ], pp. 225 226). : 7
Runge-Kutta (4) Runge-Kutta, f(x,t) Ψ p (p 1).. Heun Runge-Kutta. : 8
Runge-Kutta (5) Ψ f s, s (s-stage) Runge-Kutta ([ ]) s Runge-Kutta, p. : 9
Runge-Kutta (6) s p ([ ]), s = p., (, ). ξ k+1 = ξ k +h k Ψ(t k,ξ k,h k ) Ψ p. : 10
Runge-Kutta (7) 2 Runge-Kutta 2 Runge-Kutta, k 1 = f(ξ k,t k ), k 2 = f(ξ k +h k βk 1,t k +αh k ),Ψ(t k,ξ k ) = c 1 k 1 +c 2 k 2. α, β,c 1, c 2 2. : 11
Runge-Kutta (8) 2 explicit Runge-Kutta, α > 0, β = α, c 1 = 1 1, c 2α 2 = 1 2α, 2., 2 2 explicit Runge-Kutta, ([ ], pp. 227 229).. : 12
Runge-Kutta (9) 2 Runge-Kutta α β c 1 c 2 Heun 1 1 1 Euler 1 2 2 1 2 1 2 0 1 : 13
Runge-Kutta (10) Runge-Kutta, f Taylor,.,. Runge-Kutta,., Runge-Kutta,,,. : 14
Runge-Kutta (11) 4 Runge-Kutta 4 Runge-Kutta, k j = f(ξ k +h k l<j β jlk l,t k +α j h k ) ( j = 1,...,4, l<j β jl = α j ),Ψ(t k,ξ k ) = 4 j=1 c 4 jk j ( j=1 c j = 1). (j = 1 l<j ). : 15
Runge-Kutta (12) Runge 1/6 α 1 α 2 α 3 α 4 c 1 c 2 c 3 c 4 0 1 2 1 1 1 2 6 1 3 β 21 = 1 2,β 32 = 1 2,β 43 = 1, RK4, RK41, Runge-Kutta,. 1 3 1 6 : 16
Runge-Kutta (13) Kutta 1/8 α 1 α 2 α 3 α 4 c 1 c 2 c 3 c 4 0 1 3 2 1 1 3 8 3 8 β 21 = 1 3,β 31 = 1 3,β 32 = 1 β 41 = 1,β 42 = 1,β 43 = 1 3 8 1 8 :
Runge-Kutta (14), Runge-Kutta. s Ψ(t k,ξ k ) = c j k j, s j=1 c j = 1 j=1. k j. j = 1,...,s. : 18
Runge-Kutta (15) Explicit( ) : l<j β jl = α j, k j = f(ξ k +h k β jl k l,t k +α j h k ), l<j Implicit( ) : s l=1 β jl = α j, s k j = f(ξ k +h k β jl k l,t k +α j h k ) l=1 : 19
Runge-Kutta (16) Euler 1 Runge-Kutta. s Runge-Kutta, s α 1,...,α s, s c 1,...,c s s 2 (β il )., α j = s l=1 β jl. :
Runge-Kutta (17) Runge-Kutta, Butcher.,. α 1 β 11 β 12 β 1s α 2 β 21 β 22 β 2s.... α s β s1 β s2 β ss c 1 c 2 c s : 21
Runge-Kutta (18) explicit Butcher,. s = p = 2, s = p = 3, s = p = 4, Runge-Kutta ( Butcher ) ([Butcher]). : 22
Runge-Kutta (19) s = p = 2 explicit. s = p = 3, s = p = 4,, ([Butcher] )., Butcher ([ ]). : 23
1 (s = p = 1) [ ] Euler 0 0 1 Euler 1 1 1 2 (s = p = 2) [ ] Heun Euler Crank Nicolson 0 0 0 0 0 0 0 0 0 1 1 0 1 2 1 2 1 2 1 2 0 0 1 1 1 2 1 2 1 2 1 2 : 24
3 (s = p = 3) [ ] Heun Kutta 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 4 4 2 2 2 8 1 1 2 0 3 2 9 0 9 1 0 3 4 4 1 6 2 3 1 6 : 25
4 (s = p = 4) [ ], [Hairer] Vol. 1 Runge 1/6 Kutta 1/8 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 2 2 1 0 1 3 3 2 0 0 1 1 0 0 2 2 3 3 1 0 0 1 0 1 1 1 1 0 1 6 1 3 1 3 1 6 1 8 3 8 3 8 1 8 : 26
Runge-Kutta (23) B = (β jl ) 1 j s,1 l s Butcher, α = (α 1,...,α s ) T, c = (c 1,...,c s ), Butcher (B,α,c). : 27
Runge-Kutta (24) explicit Runge-Kutta, p 5 p p, p 7 p+1 p, p 8 p+2 p ([Hairer et al], Vol. 1). s. : 28
Runge-Kutta (25) 5 6, 6 7, 8 11, 10 17 ([Hairer et al], Vol. 1).,. : 29
(1),., Butcher (B,α,c) p+1,butcher (B,α,c) p,. : 30
(2) (p,p+1), Butcher., s p+1 p ([ ]). : 31
(3) Runge-Kutta Runge-Kutta ([ ]).,. (B,α,c) Runge-Kutta (ξ k ),(B,α,c) Runge- Kutta (ξ k ). : 32
(4), ξ k ξ k, (,, ).. : 33
(5),, ( ). [ ]. Scilab RKF45 Runge-Kutta, 6 5 4. : 34
implicit Runge-Kutta, implicit Runge-Kutta ( ) differential-algebraic equation.,,. implicit Runge-Kutta [Hairer et el.] [Butcher]. : 35
d dt x = Ax, A,. A λ m, λ M. Reλ M / Reλ m... : 36
(1), ξ k+1, ξ k, (ξ k L,...,ξ k ) ( ). Runge Kutta,,, (ξ k L,...,ξ k ). : 37
(2), ξ k+l (ξ k,...,ξ k+l 1 )., h ( [Hairer et al.], Vol. 1 ). : 38
(3) Runge Kutta, f(ξ k,t k ),..., f(ξ k+l,t k+l ) ( : L ) ξ k+l = ξ k +h l=0 β(0) l f(ξ k+l,t k+l ) β (0) l (0 l L). ξ k : 39
(4) ξ k+l ξ k = h ( L ) l=0 β(0) l f(ξ k+l,t k+l ) {ξ k+l } 0 l L, ( ). ( L L ) α l ξ k+l = h β l f(ξ k+l,t k+l ) l=0 l=0 : 40
(5) {α l } 0 l L, {β l } 0 l L,., ξ k+l implicit( ), ξ k+l explicit( ). 1. : 41
(6) ( ), ([ ]),. L l=0 α lξ k+l = hψ ( t k,...,t k+l,ξ k,...,ξ k+l ;h ),,. : 42
(7) L, ξ 0,..., ξ L 1 (1 ). ( ) {α l } 0 l L {β l } 0 l L.,., ([ ]): (1) α 0 +α 1 z + +α L z L 1, 1, (2) L l=0 α l = 0, (3) l l=0 lα l L l=0 β l = 0. : 43
, explicit, implicit,., explicit, implicit. explicit implicit. : 44
Adams (1) dx = f(x,t), x(t dt k+l 1 ) = x k+l 1. x k+l x k+l 1 = t k+l t k+l 1 f(ϕ(τ,t k,x k ),τ)dτ, ϕ(τ,t k,x k ). : 45
Adams (2), ϕ(τ,t k,x k ) τ 1, Lagrange. (t k,x k ),...,(t k+l 1,x k+l 1 ), x k+l x k+l 1 L 1 l=0 β lf(x k+l,t l ),(t k,x k ),...,(t k+l,x k+l ),x k+l x k+l 1 L l=0 β lf(x k+l,t l ). : 46
Adams (3) x j ξ j (k j k +L),., Adams. (ξ k+l,t k+l ) Adams Bashforth, Adams Moulton. : 47
Adams (4) Adams Bashforth explicit, Adams Moulton implicit. {β l } 0 l L, Lagrange. L,,. : 48
Adams (5) t t k+1, L=2 Adams Bashforth. t k f(ξ k,t k ), t k+1 f(ξ k+1,t k +1) Lagrange, f(ξ t k t k,t k ) + t t k f(ξ k+1 t k+1 t k+1,t k+1 ) k tk+2, t k+1 t k = h, = t k t k+1 1 2h (t t k+1) 2 t k+2 = h tk+2 t k+1 2, t t k = 1 t k+1 t k+1 t k 2h (t t k) 2 t k+2 = 3h t k+1 2., L=2 Adams Bashforth, ( ξ k+2 ξ k+1 = h 1 2 f(ξ k,t k )+ 3 ) 2 f(ξ k+1,t k+1 ). t k+1 t t k+1 : 49
BDF (1) BDF Backward Difference Formula. implicit. BDF ([ ]). ξ k+l (ξ k,...,ξ k+l 1 ). : 50
BDF (2) ξ k+l, (t k,ξ k ), (t k+1,ξ k+1 ),..., (t k+l,ξ k+l ) L Lagrange. p(t).,t k+l 1 = t k+l h, t k+l 2 = t k+l 2h,.... : 51
BDF (3) p(t) ξ k+l.,p(t) t = t k+l dx = f(x,t) dt. : 52
BDF (4) d dt p(t) = f(ξ k+l,t) ξ k+l t=tk+l BDF. Lagrange, t = t k+l, ( ). : 53
BDF (5) L BDF L = 1 : ξ k +ξ k+1 = hf(ξ k+1,t k+1 ) 1 L = 2 : ξ 2 k 2ξ k+1 + 3ξ 2 k+2 = hf(ξ k+2,t k+2 ) L = 3 : 1ξ 3 k + 3ξ 2 k+1 3ξ k+2 + 11ξ 6 k+3 = hf(ξ k+3,t k+3 ) BDF L > 6. : 54
Scilab (1) ( ) ( )( d x 1 0 1 = dt 1 0 x 2 x 1 x 2 ), ( ) ( ) x 1 (0) 1 = x 2 (0) 0. x 1 (t) = cost, x 2 (t) = sint., BDF,. : 55
// ( ) function dx=f(t,x) dx=[0-1;1 0]*x; endfunction t0=0; //. t=0:.1:100; x0=[1;0]; : 56
ode. y=ode(x0,t0,t,f); // y=ode("adams",x0,t0,t,f); //Adams y=ode("stiff",x0,t0,t,f); //BDF y=ode("rk",x0,t0,t,f); //Runge-Kutta y=ode("rkf",x0,t0,t,f); //RKF45 Adams BDF : 57
( y(t)(2 1001 ) Frobenius ). 5.33 10 5 0.031 Adams 5.78 10 5 0.111 BDF 7.61 10 4 0.062 Runge-Kutta 9.10 10 9 0.811 RKF45 1.66 10 5 0.062 : 58
Scilab (5) [ ]. ( ) ( )( ) ( ) d dt x 1 x 2 = 2 1 1998 1999 x 1 x 2 + cost 1999cost sint x 1 (0) = 1, x 2 (0) = 2. x 1 (t) = e t, x 2 (t) = e t +cost ( Mathematica )., : 59
// ( ) function dx=f(t,x) dx=[-2 1;1998-1999]*x+.. [-cos(t);1999*cos(t)-sin(t)]; endfunction // :.. t0=0; t=0:.5:100; x0=[1;2]; : 60
. y=ode(x0,t0,t,f); // y=ode("adams",x0,t0,t,f); //Adams y=ode("stiff",x0,t0,t,f); //BDF y=ode("rk",x0,t0,t,f); //Runge-Kutta y=ode("rkf",x0,t0,t,f); //RKF45 : 61
( y(t)(2 1001 ) Frobenius ). 3.3 10 7 0.031 Adams 2.1 10 6 0.484 BDF 4.9 10 7 0.109 Runge-Kutta 7.5 10 1 29.547 RKF45 8.9 10 4 2.028 : 62