Runge-Kutta meetodid on arvutusmatemaatikas algoritmide pere harilike diferentsiaalvõrrandite (ja harilike diferentsiaalvõrrandite süsteemide ) ilmutatud või ilmutamata ligikaudse lahendi numbriliseks leidmiseks algtingimustega ülesande korral. Nad põhinevad iteratsioonil .
Meetodi algse kuju töötas välja saksa matemaatik Carl Runge 1895 ning seda üldistas Martin Wilhelm Kutta 1901 .
Pikemalt artiklis Klassikaline Runge-Kutta meetid
4. järku klassikaline Runge-Kutta meetod on nii laialt levinud, et seda nimetatakse sageli lihtsalt Runge-Kutta meetodiks.
Olgu meil Cauchy ülesanne
y
′
=
f
(
x
,
y
)
,
y
(
x
0
)
=
y
0
{\displaystyle {\textbf {y}}'={\textbf {f}}(x,{\textbf {y}}),{\textbf {y}}(x_{0})={\textbf {y}}_{0}}
. Siis funktsiooni väärtus järgmises punktis arvutatakse järgmise valemi järgi:
y
n
+
1
=
y
n
+
h
6
(
k
1
+
2
k
2
+
2
k
3
+
k
4
)
{\displaystyle {\textbf {y}}_{n+1}={\textbf {y}}_{n}+{h \over 6}({\textbf {k}}_{1}+2{\textbf {k}}_{2}+2{\textbf {k}}_{3}+{\textbf {k}}_{4})}
kus
k
1
=
f
(
x
n
,
y
n
)
,
{\displaystyle {\textbf {k}}_{1}={\textbf {f}}\left(x_{n},{\textbf {y}}_{n}\right),}
k
2
=
f
(
x
n
+
h
2
,
y
n
+
h
2
k
1
)
,
{\displaystyle {\textbf {k}}_{2}={\textbf {f}}\left(x_{n}+{h \over 2},{\textbf {y}}_{n}+{h \over 2}{\textbf {k}}_{1}\right),}
k
3
=
f
(
x
n
+
h
2
,
y
n
+
h
2
k
2
)
,
{\displaystyle {\textbf {k}}_{3}={\textbf {f}}\left(x_{n}+{h \over 2},{\textbf {y}}_{n}+{h \over 2}{\textbf {k}}_{2}\right),}
k
4
=
f
(
x
n
+
h
,
y
n
+
h
k
3
)
,
{\displaystyle {\textbf {k}}_{4}={\textbf {f}}\left(x_{n}+h,{\textbf {y}}_{n}+h{\textbf {k}}_{3}\right),}
h
{\displaystyle {\textbf {}}h}
— võrgu sammu suurus
x
{\displaystyle {\textbf {}}x}
järgi.
See meetod on 4. järku, st viga igal sammul on
O
(
h
5
)
{\displaystyle O(h^{5})}
ja summaarne viga integreerimise lõppintervallil on
O
(
h
4
)
{\displaystyle O(h^{4})}
.
Otseste Runge-Kutta meetodite pere on 4. järku Runge-Kutta meetodi üldistus. See on antud valemitega
y
n
+
1
=
y
n
+
h
∑
i
=
1
s
b
i
k
i
,
{\displaystyle {\textbf {y}}_{n+1}={\textbf {y}}_{n}+h\sum _{i=1}^{s}b_{i}{\textbf {k}}_{i},}
kus
k
1
=
f
(
x
n
,
y
n
)
,
{\displaystyle {\textbf {k}}_{1}=f(x_{n},{\textbf {y}}_{n}),\,}
k
2
=
f
(
x
n
+
c
2
h
,
y
n
+
a
21
h
k
1
)
,
{\displaystyle {\textbf {k}}_{2}=f(x_{n}+c_{2}h,{\textbf {y}}_{n}+a_{21}h{\textbf {k}}_{1}),\,}
k
3
=
f
(
x
n
+
c
3
h
,
y
n
+
a
31
h
k
1
+
a
32
h
k
2
)
,
{\displaystyle {\textbf {k}}_{3}=f(x_{n}+c_{3}h,{\textbf {y}}_{n}+a_{31}h{\textbf {k}}_{1}+a_{32}h{\textbf {k}}_{2}),\,}
⋮
{\displaystyle \vdots }
k
s
=
f
(
x
n
+
c
s
h
,
y
n
+
a
s
1
h
k
1
+
a
s
2
h
k
2
+
⋯
+
a
s
,
s
−
1
h
k
s
−
1
)
.
{\displaystyle {\textbf {k}}_{s}=f(x_{n}+c_{s}h,{\textbf {y}}_{n}+a_{s1}h{\textbf {k}}_{1}+a_{s2}h{\textbf {k}}_{2}+\cdots +a_{s,s-1}h{\textbf {k}}_{s-1}).}
Konkreetse meetodi määravad arv
s
{\displaystyle s}
ning koefitsiendid
b
i
,
a
i
j
{\displaystyle b_{i},a_{ij}}
ja
c
i
{\displaystyle c_{i}}
. Need koefitsiendid paigutatakse sageli tabelisse
0
c
2
{\displaystyle c_{2}}
a
21
{\displaystyle a_{21}}
c
3
{\displaystyle c_{3}}
a
31
{\displaystyle a_{31}}
a
32
{\displaystyle a_{32}}
⋮
{\displaystyle \vdots }
⋮
{\displaystyle \vdots }
⋱
{\displaystyle \ddots }
c
s
{\displaystyle c_{s}}
a
s
1
{\displaystyle a_{s1}}
a
s
2
{\displaystyle a_{s2}}
⋯
{\displaystyle \cdots }
a
s
,
s
−
1
{\displaystyle a_{s,s-1}}
b
1
{\displaystyle b_{1}}
b
2
{\displaystyle b_{2}}
⋯
{\displaystyle \cdots }
b
s
−
1
{\displaystyle b_{s-1}}
b
s
{\displaystyle b_{s}}
Runge-Kutta meetodi koefitsiendid peavad rahuldama tingimusi
∑
j
=
1
i
−
1
a
i
j
=
c
i
{\displaystyle \sum _{j=1}^{i-1}a_{ij}=c_{i}}
(
i
=
2
,
…
,
s
{\displaystyle i=2,\ldots ,s}
). Kui me tahame, et meetod oleks
p
{\displaystyle p}
-järku, siis tuleb tagada ka tingimus
y
¯
(
h
+
x
0
)
−
y
(
h
+
x
0
)
=
O
(
h
p
+
1
)
{\displaystyle {\bar {\textbf {y}}}(h+x_{0})-{\textbf {y}}(h+x_{0})=O(h^{p+1})}
, kus
y
¯
(
h
+
x
0
)
{\displaystyle {\bar {\textbf {y}}}(h+x_{0})}
on Runge-Kutta meetodil saadud lähendus. Pärast mitmekordset diferentseerimist muutub see tingimus polünomiaalvõrrandite süsteemiks, mille lahendid on meetodi koefitsiendid.