¸ÞÀϺ¸³»±â

À̸§°Ë»ö

::: SHIN, Byeong-Chun's Board


97 310 Åë°èÄ«¿îÅÍ º¸±â   ȸ¿ø °¡ÀÔ È¸¿ø ·Î±×ÀÎ °ü¸®ÀÚ Á¢¼Ó --+
Name   ½Åº´Ãá
Subject   ÃʱâÄ¡ ¹®Á¦ °úÁ¦
¾Æ·¡ÀÇ ÇÁ·Î±×·¥ 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')

°Ô½Ã¹°À» À̸ÞÀÏ·Î º¸³»±â ÇÁ¸°Æ®Ãâ·ÂÀ» À§ÇÑ È­¸éº¸±â
DATE: 2014.11.28 - 11:29
LAST UPDATE: 2014.12.04 - 19:15


 ÀÌÀü±Û ÃʱâÄ¡ ¹®Á¦ °úÁ¦ 2
 ´ÙÀ½±Û ÃʱâÄ¡¹®Á¦ ¹× À¯ÇÑÂ÷ºÐ¹ý(1D)
±Û³²±â±â»èÁ¦Çϱâ¼öÁ¤Çϱâ´äº¯´Þ±âÀüü ¸ñ·Ï º¸±â