Metoda Romberga – jedna z metod całkowania numerycznego , opierająca się na metodzie ekstrapolacji Richardsona , pozwalająca przybliżać wartość całki:
∫
a
b
f
(
x
)
d
x
{\displaystyle \int \limits _{a}^{b}f(x)dx}
nieznanej (jawnie) funkcji
f
.
{\displaystyle f.}
Funkcja ta jest zazwyczaj znana tylko na dyskretnym zbiorze argumentów (np. jako wynik pomiarów stanu urządzenia (wartość funkcji) dla różnych stanów (argument funkcji)).
Niech dany będzie zbiór
a
=
x
0
,
x
1
,
…
,
x
2
i
=
b
{\displaystyle a=x_{0},x_{1},\dots ,x_{2^{i}}=b}
dzielących przedział
(
a
,
b
)
{\displaystyle (a,b)}
na
2
i
{\displaystyle 2^{i}}
równych części taki, że znane są wartości funkcji
f
(
x
i
)
=
y
i
{\displaystyle f(x_{i})=y_{i}}
Niech
h
i
=
b
−
a
2
i
,
{\displaystyle h_{i}={\frac {b-a}{2^{i}}},}
oznacza długość kroku.
Metodę Romberga można opisać rekurencyjnie :
{
R
0
,
i
:
R
2
i
=
h
i
⋅
∑
k
=
0
2
i
−
1
(
f
(
x
k
)
+
f
(
x
k
+
1
)
2
)
R
m
,
i
:
4
m
⋅
R
m
−
1
,
i
+
1
−
R
m
−
1
,
i
4
m
−
1
.
{\displaystyle {\begin{cases}R_{0,i}&:R_{2^{i}}=h_{i}\cdot \sum _{k=0}^{2^{i}-1}\left({\frac {f(x_{k})+f(x_{k+1})}{2}}\right)\\[1ex]\ R_{m,i}&:{\frac {4^{m}\cdot R_{m-1,i+1}-R_{m-1,i}}{4^{m}-1}}\end{cases}}.}
R
0
,
i
{\displaystyle R_{0,i}}
jest wzorem trapezów , po obliczeniu pierwszej kolumny tzw. tablicy Romberga , kolejne kolumny obliczane są rekurencyjnie, otrzymując coraz lepsze przybliżenie funkcji:
R
0
,
0
{\displaystyle R_{0,0}}
R
0
,
1
{\displaystyle R_{0,1}}
R
1
,
0
{\displaystyle R_{1,0}}
R
0
,
2
{\displaystyle R_{0,2}}
R
1
,
1
{\displaystyle R_{1,1}}
R
2
,
0
{\displaystyle R_{2,0}}
R
0
,
3
{\displaystyle R_{0,3}}
R
1
,
2
{\displaystyle R_{1,2}}
R
2
,
1
{\displaystyle R_{2,1}}
R
3
,
0
{\displaystyle R_{3,0}}
…
{\displaystyle \dots }
Wizualizacja elementu numer 1 tabeli algorytmu Romberga, który powstał z dwóch wyliczeń całek metodą trapezową – dla 1 i 2 przedziałów
Załóżmy, że dane są wyniki pomiarów pewnej funkcji w punktach
x
0
,
x
1
,
x
2
,
x
3
,
x
4
{\displaystyle x_{0},x_{1},x_{2},x_{3},x_{4}}
i
{\displaystyle i}
0
1
2
3
4
x
i
{\displaystyle x_{i}}
0
0,25
0,5
0,75
1
y
i
{\displaystyle y_{i}}
1
2
2
0
1
Dla tego przypadku:
i
=
2
,
{\displaystyle i=2,}
a
=
0
,
{\displaystyle a=0,}
b
=
1
,
{\displaystyle b=1,}
h
0
=
1
−
0
1
=
1
,
{\displaystyle h_{0}={\frac {1-0}{1}}=1,}
h
1
=
1
−
0
2
=
0
,
5
,
{\displaystyle h_{1}={\frac {1-0}{2}}=0{,}5,}
h
2
=
1
−
0
2
2
=
0
,
25.
{\displaystyle h_{2}={\frac {1-0}{2^{2}}}=0{,}25.}
Ponieważ
i
=
2
{\displaystyle i=2}
poszukiwana będzie tablica Romberga typu:
R
0
,
0
,
{\displaystyle R_{0,0},}
R
0
,
1
{\displaystyle R_{0,1}}
R
1
,
0
,
{\displaystyle R_{1,0},}
R
0
,
2
{\displaystyle R_{0,2}}
R
1
,
1
{\displaystyle R_{1,1}}
R
2
,
0
.
{\displaystyle R_{2,0}.}
Obliczenie pierwszej kolumny tablicy Romberga:
R
0
,
0
=
h
0
⋅
∑
k
=
0
0
f
(
x
k
)
+
f
(
x
k
+
1
)
2
=
1
+
1
2
=
1
,
{\displaystyle R_{0,0}=h_{0}\cdot \sum _{k=0}^{0}{\frac {f(x_{k})+f(x_{k+1})}{2}}={\frac {1+1}{2}}=1,}
R
0
,
1
=
h
1
⋅
∑
k
=
0
1
f
(
x
k
)
+
f
(
x
k
+
1
)
2
=
0
,
5
⋅
(
1
+
2
2
+
2
+
1
2
)
=
1
,
5
,
{\displaystyle R_{0,1}=h_{1}\cdot \sum _{k=0}^{1}{\frac {f(x_{k})+f(x_{k+1})}{2}}=0{,}5\cdot \left({\frac {1+2}{2}}+{\frac {2+1}{2}}\right)=1{,}5,}
R
0
,
2
=
h
2
⋅
∑
k
=
0
3
f
(
x
k
)
+
f
(
x
k
+
1
)
2
=
0
,
25
⋅
(
1
+
2
2
+
2
+
2
2
+
2
+
0
2
+
0
+
1
2
)
=
1
,
25.
{\displaystyle R_{0,2}=h_{2}\cdot \sum _{k=0}^{3}{\frac {f(x_{k})+f(x_{k+1})}{2}}=0,25\cdot \left({\frac {1+2}{2}}+{\frac {2+2}{2}}+{\frac {2+0}{2}}\ +{\frac {0+1}{2}}\right)=1{,}25.}
Oraz kolejnych wyrazów korzystając z poprzednich wyników:
R
1
,
0
=
4
1
⋅
R
0
,
1
−
R
0
,
0
4
1
−
1
=
5
3
=
1,666
667
,
{\displaystyle R_{1,0}={\frac {4^{1}\cdot R_{0,1}-R_{0,0}}{4^{1}-1}}={\frac {5}{3}}=1{,}666667,}
R
1
,
1
=
4
1
⋅
R
0
,
2
−
R
0
,
1
4
1
−
1
=
7
6
=
1,166
667
,
{\displaystyle R_{1,1}={\frac {4^{1}\cdot R_{0,2}-R_{0,1}}{4^{1}-1}}={\frac {7}{6}}=1{,}166667,}
R
2
,
0
=
4
2
⋅
R
1
,
1
−
R
1
,
0
4
2
−
1
=
17
15
=
1,133
333.
{\displaystyle R_{2,0}={\frac {4^{2}\cdot R_{1,1}-R_{1,0}}{4^{2}-1}}={\frac {17}{15}}=1{,}133333.}
Oznaczając
h
n
=
1
2
n
(
b
−
a
)
,
{\displaystyle h_{n}={\tfrac {1}{2^{n}}}(b-a),}
błąd, tj. przekłamanie wyniku otrzymanego metodą Romberga względem wyniku prawdziwego w notacji dużego O wynosi (Mysovskikh 2002)[1]
O
(
h
n
2
m
+
2
)
{\displaystyle O\left(h_{n}^{2m+2}\right)}
dla wyrazu R(n,m).