¾Æ·¡ÀÇ ÇÁ·Î±×·¥ RK4¸¦ ÀÌ¿ëÇÏ¿© Euler method, Taylor method, RK2 method¸¦ ¿Ï¼ºÇÏ°í ±×¸²À¸·Î Ç¥ÇöÇÏ¿© Á¦ÃâÇϼ¼¿ä.
h = 0.2, 0.1, 0.05 Á¦Ãâ : ÇÁ·Î±×·¥, °á°ú ±×·¡ÇÁ, ¹æ¹ý¿¡ µû¸¥ ºÐ¼® (¾Æ·¡Çѱ۷ΠÀÛ¼ºÇÏ¿© Ãâ·ÂÇÏ¿© Á¦Ãâ) ±âÇÑ : 12¿ù 5ÀÏ 11:50 Çаú Á¶±³¿¡°Ô Á¦Ãâ)
% ivp_ex1.m % Example for Initial Value Problem % y'(t) = f(t,y(t)) = (1/4)*y(t)*(1-y(t)/20), t in (0,20), y(0) = 1 % Exact sol. y(t) = 20 / ( 1+19*exp(-t/4) ) % Euler method : E(t) % y1 = y0 + h*f(t0,y0) = y0 + v1, v1 = f(t0,y0) % Tayler method : T(t) % v1 = f(t0,y0), v2 = f_t(t0,y0), v3 = f_y(t0,y0) % y1 = y0 + h*v1 + (h^2/2)*( v2 + v3*v1 ) % RK2 method : U(t) % v1 = f(t0,y0), v2 = f(t0+h,y0+h*v1) % y1 = y0 + (h/2)*( v1+v2 ) % RK4 method : V(t) % v1 = f(t0,y0), v2 = f(t0+h/2,y0+h*v1/2) % v3 = f(t0+h/2,y0+h*v2/2), v4 = f(t0+h,y0+h*v3) % y1 = y0 + (h/6)*( v1+2*v2+2*v3+v4 ) f = @(t,y) (1/4)*y.*(1-y/20); sol = @(t) 20./( 1+19*exp(-t/4) ); % Exact sol Y0 = 1; % initial condition
h = input(' grid size h = '); t = 0:h:20; N = length(t); Y = sol(t'); % Exact sol. % RK4 method V = zeros(N,1); V(1) = Y0; for k=1:N-1 v1 = f(t(k),V(k)); v2 = f(t(k)+h/2,V(k)+h*v1/2); v3 = f(t(k)+h/2,V(k)+h*v2/2); v4 = f(t(k)+h,V(k)+h*v3); V(k+1) = V(k) + (h/6)*( v1+2*v2+2*v3+v4 ); end subplot(121); plot(t,Y,'b-',t,V,'m-'); title('Solution') subplot(122); plot(t,Y-V,'m.-'); title('Error')
|
|
LAST UPDATE: 2014.12.04 - 19:15 |
|