Runge-Kutta metodo

Wikipedia(e)tik
Hona jo: nabigazioa, Bilatu

Runge-kutta metodoa ekuazio diferentzialen ebazpenerako zenbakizko metodo mota orokorra da. Metodo multzo hau, hasiera batean, C. Runge eta M. W. Kutta matematikariek 1900 urtearen inguruan garatu zuten.

Deskribapena[aldatu | aldatu iturburu kodea]

Runge-kutta metodoek (RK) ekuazio diferentzial arrunten soluzioen hurbilketarako iteraziozko metodo (esplizitu eta inplizitu) multzoa osatzen dute, zehazki, hasierako balioko problemaren ebazpenerako metodoak.

Izan bedi

y'(t) = f(t, y(t)) \,

Ekuazio diferentzial arrunta,  f:  \Omega  \subset  \mathbb{R} \times \mathbb{R}^n \to \mathbb{R}^n, non   \Omega  \, multzo irekia den, eta fren hasierako balioak

(t_0, y_0) \in \Omega.

betetzen du.


Kasu horretan ("s" etapako) RK metodoak, orokorrean, honako itxura du:

y_{n+1} = y_n + h\,\sum_{i=1}^s b_ik_i,

non h iterazio bakoitzeko urrats-luzera den, edo beste era batera esateko, t_n eta t_{n+1} ondoz ondoko puntuen arteko \Delta t_n gehikuntza. k_i koefizienteak tarteko hurbilketa puntuetan egindako f funtzioaren balioztatzeak dira

k_i = f \left( t_n + h\, c_i\, , y_n + h\,\sum_{j=1}^s a_{ij}k_j \right ) \quad i=1,...,s.

Horrela,  a_{ij}, b_i, c_i koefizienteek aukeratutako metodoa zehazten dute eta erabilitako zenbakizko integrazioaren araberako balioak dira. Runge-kutta eskemak, a_{ij} konstanteen arabera, inplizituak edo esplizituak izan daitezke. a_{ij} balioek osatutako matrizea behe triangeluarra bada, eta diagonal nagusiko balioak zero badira, hau da,  a_{ij}=0 betetzen bada j=i,...,s guztientzat, metodoa esplizitua da.

Adibidea[aldatu | aldatu iturburu kodea]

Bi etapatako Runge-kutta eskema: lehenengo etapa  t = t_n unean eta bestea t = t_n + \Delta t_n unean.

Lehenengo etapan f(t,y(t)) honakoa da:

 f_n=k_1 = f(t_n, y_n) \,

eta t=t_n + \Delta t_n unean  f(t,y(t)) hurbiltzeko Eulerren eskema erabil dezakegu:

 f_{n+1}=k_2=f( t_n + \Delta t_n\, , y_n+\Delta t_n k_1 ) \,

f funtzioaren balioztatze hauek  y_{n+1} = y_n + \int_{t_n}^{t_{n+1}} f(t,y(t))\,dt ekuazioan ordezkatuz honako espresioa lortuko dugu:

y_{n+1}=y_{n} + {{\Delta t_n}\over 2} (k_1 + k_2)

Eskema honen koefizienteak, beraz,  b_1=b_2=1/2;\; a_{21}=1;\; c_2=1. dira.

Aldaerak[aldatu | aldatu iturburu kodea]

Runge-kutta metodo klasikoen edo Runge-Kutta esplizitu gisa ezagutzen diren metodoen aldaerak existitzen dira, esate baterako, prozeduraren bertsio inplizitua edota Runge-Kutta metodo bikoteak (edo Runge-kutta-fehlberg metodoak).

Bikoteen kasuan soluzioaren bi hurbilketa lortzen dira, bakoitza ordena ezberdineko metodoa erabiliz, baina bi metodoek hasierako etapa berdinak erabiltzen dituzte eta orokorrean b_i koefizienteetan bereizten dira (posible da metodo batek besteak baino etapa gehiago edukitzea). Bi hurbilketen arteko diferentziak urrats bakoitzeko errorearen neurria ezagutzeko informazioa eman diezaguke, eta informazio hori erabil daiteke hurrengo urrats-luzera egokia aukeratzeko.

Runge-Kutta metodoak[aldatu | aldatu iturburu kodea]

Runge-kutta metodoek iteraziozko metodoen familia garrantzitsua osatzen dute eta inplizituak edo esplizituak izan daitezke. Ekuazioa diferentzial arrunten soluzioak hurbiltzen dituzte eta 1900 urtearen inguruan Carl David Tolmé Runge eta Martin Wilhelm Kutta matematikari alemanek garatu zituzten teknika hauek.

Lau ordenako Runge-kutta metodoa[aldatu | aldatu iturburu kodea]

Runge-Kutta metodoen arteko bat oso erabilia da, horregatik "Runge-Kutta metodoa" edo "RK4" izenek metodo horri egiten diote erreferentzia.

Hasierako balioaren problema bat defini dezagun:

 y' = f(t, y), \quad y(t_0) = y_0

Orduan problema honentzat RK4 metodoa hurrengo ekuazioak adierazten du:

y_{i+1} = y_i + {1 \over 6} (k_1 + 2k_2 + 2k_3 + k_4)h

Non

k_1 =  f \left( t_i, y_i \right)
k_2 =  f \left( t_i + {1 \over 2}h, y_i + {1 \over 2}k_1 h \right)
 k_3 =  f \left( t_i + {1 \over 2}h, y_i + {1 \over 2}k_2 h \right)
 k_4 =  f \left( t_i + h, y_i + k_3h \right)

Honela, hurrengo y_{n+1} balioa une honetako y_{n} balioak eta h urrats-luzera eta malda estimatuaren arteko biderketak zehazten dute. Malda hainbat malden batezbesteko haztatua da.

k_1 hasierako uneko malda da.

k_2 tartearen erdiko puntuko malda da. Tartearen erdian,  t_n + \frac{h}{2} unean, y balioa lortzeko  k_1 malda erabili da Eulerren metodoaren aplikazioan

k_3 berriz ere tartearen erdiko puntuko malda da, baina oraingoan Eulerren metodoaren aplikazioan k_2 malda erabili da  y kalkulatzeko.

k_4 tartearen bukaerako malda da, eta y balioa lortzeko k_3 malda erabili da.

Lau maldak haztatzean tarteko puntuetako maldei pisu handiagoa ematen zaie:

 \mbox{malda} = \frac{k_1 + 2k_2 + 2k_3 + k_4}{6}.

Runge-kutta metodoaren forma hau lau ordenako metodoa da, horrek esan nahi du urrats bakoitzean egindako errorea O(h^5) neurrikoa dela eta prozesu osoan metatutako errorea O(h^4) ordenakoa dela.

Ikus, gainera[aldatu | aldatu iturburu kodea]

Erreferentziak[aldatu | aldatu iturburu kodea]

Kanpo loturak[aldatu | aldatu iturburu kodea]