Metoda Romberga

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 }

Przykład wykorzystania metody Romberga

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.}

Błąd metody Romberga

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).

Przypisy

  1. I.P. Mysovskikh: Encyclopaedia of Mathematics. Springer-Verlag, 2002. ISBN 1-4020-0609-8.