Romberg-Integration

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Die Romberg-Integration ist ein Verfahren zur numerischen Bestimmung von Integralen und wurde von Werner Romberg entwickelt. Sie ist eine Verbesserung der (Sehnen)-Trapezregel durch Extrapolation.

Grundgedanke[Bearbeiten]

Die Romberg-Integration basiert auf der Richardson-Extrapolation zum Limes über die Schrittweite einer summierten Quadraturformel, wie beispielsweise der Trapezregel. Die Trapezregel ist hier besonders zu erwähnen, da sie einfach zu berechnen ist und zudem eine Entwicklung in quadratischen Potenzen der Schrittweite besitzt, also eine Extrapolation in Quadraten der Schrittweite möglich ist, die deutlich schneller konvergiert als die einfache Extrapolation zum Limes. Mit Schrittweite h ist hier die Breite der Trapeze bei der Trapezregel gemeint.

Der aufwändige Teil der numerischen Integration sind oft die Funktionsauswertungen. Um deren Anzahl minimal zu halten, ist es somit ratsam, einen Schrittweitenverlauf zu wählen, der die Weiterverwendung von bereits berechneten Funktionswerten erlaubt. Ein Beispiel für eine solche Schrittweite wäre \textstyle{h_n=\frac{b-a}{2^{n-1}}}, das zugleich die Bedingungen für eine konvergente Extrapolation erfüllt. Also

1,\frac{1}{2},\frac{1}{4},\frac{1}{8},\frac{1}{16},\frac{1}{32},\dots

Bei dieser sogenannten Romberg-Folge wächst die Anzahl der benötigten Funktionsauswertungen bei großen n schnell an, was nicht immer erwünscht ist.

Um diesem abzuhelfen, kann auch die Bulirsch-Folge verwendet werden:

1,\frac{1}{2},\frac{1}{3},\frac{1}{4},\frac{1}{6},\frac{1}{8},\dots

Hier werden Glieder mit \frac{2}{3} zwischengeschaltet.

Rechenvorschrift[Bearbeiten]

 I = \int_a^b f(x)\mathrm{d}x  = \lim_{k \to \infty} I_{1,k}

mit

 I_{n,k} = I_{n+1,k-1} + \frac{I_{n+1,k-1} - I_{n,k-1} }{\left(\frac{h_{n}}{h_{n+1}}\right)^{2(k-1)} - 1  }

dabei ist

 I_{1,1} =  \frac{h_1}{2} (f(a)+f(b))     (Trapezregel)
 I_{n,1} =  \frac{h_n}{2} \left( f(a)+ f(b) + 2\sum_{i=1}^{\frac{h_1}{h_n}-1} f \left( a + i\,h_n \right) \, \right)  (aufsummierte Trapezregel mit mehrfachen Intervallen)

und

 k \in [ 1 , n+1] \quad  \in \mathbb{N}
h_1= b-a \,
 h_n die im n-ten Schritt verwendete Schrittweite (siehe oben)

das Fehlerglied hat den Wert:

 E = \frac{I_{1, n + 1} -  I_{1, n}} { I_{1, n} }

Vorgehensweise[Bearbeiten]


\begin{matrix}
I_{1,1} \\
&\searrow \\
I_{2,1} & \rightarrow & I_{1,2} \\
&\searrow & & \searrow \\
I_{3,1} & \rightarrow & I_{2,2} & \rightarrow & I_{1,3} \\
&\searrow & & \searrow & & \searrow \\
I_{4,1} & \rightarrow & I_{3,2} & \rightarrow & I_{2,3} & \rightarrow & I_{1,4} \\
&\searrow & & \searrow & & \searrow & & \searrow \\
I_{5,1} & \rightarrow & I_{4,2} & \rightarrow & I_{3,3} & \rightarrow & I_{2,4} & \rightarrow & I_{1,5} \\
\end{matrix}


  1. Zuerst wird I_{1,1} berechnet.
  2. Beginne eine zyklische Berechnung (Hauptzyklus) mit der Zyklusvariablen n mit n = 1 und berechne I_{n+1,1}. Nutze dabei Werte aus den vorhergehenden Zyklen aus, abhängig von der verwendeten Schrittweiten-Folge.
  3. Extrapoliere in einem Unterzyklus mit
    k = 2 bis n + 1 und s = 2 + n - k
    den Wert I_{s, k} nach obiger Regel
  4. Berechne die Genauigkeit. Ist die gewünschte Genauigkeit noch nicht erreicht, so erhöhe n um 1 und setze den Hauptzyklus mit einem neuen Durchgang fort.


Die Berechnung startet also wie folgt (Romberg-Folge):

  • Berechnen von I_{1,1} nach der Trapezregel
  • Hauptzyklus starten mit n = 1
  • Berechnen von I_{n+1,1} = I_{2,1} nach der Trapezregel (2 Intervalle, 2^{1} = 2). Es muss nur der mittlere Funktionswert neu berechnet werden:

I_{2,1} = h_2 \left( f(a)+f(b) + 2\sum_{i=1}^{2^{2-1}-1} f( a + i\,h_2) \, \right)  \quad       = \frac{b-a}{2 \cdot 2} \left( f(a)+f(b) + 2 f(a+h_2) \right)   \quad      = \frac{I_{1,1}}{2}+h_2\cdot f(a+h_2)

  • Unterzyklus: k geht von 2 bis 2.
    • k = 2 \ ;\ s = 2 + n - k = 1\ ;\quad I_{s,2} = I_{1,2} =  \frac{4^1 \cdot I_{2,1} - I_{1,1} }{4^1 - 1  }
    • \  E = \frac{I_{1, 2} -  I_{1, 1}} { I_{1, 1} }
  • Neuer Durchgang des Hauptzyklus mit n = 2.
  • Berechnen von \ I_{n+1,1} = I_{3,1} nach der Trapezregel (4 Intervalle, 2^2 = 4, zwei neue Funktionswerte).

  I_{3,1}      = \frac{I_{2,1}}{2}+h_3 \sum_{i=1}^{2}f(a+(2i-1)\,h_3)

  • Unterzyklus: k geht von 2 bis 3.
    • \ k = 2 und s = 2 \ ; \quad  I_{s,k} = I_{2,2} = \frac{4^1 \cdot I_{3,1} - I_{2,1} }{4^1 - 1  }
    • \ k = 3 und s = 1 \ ; \quad  I_{s,k} = I_{1,3} = \frac{4^2 \cdot I_{2,2} - I_{1,2} }{4^2 - 1  }
    • \ E = \frac{I_{1, 3} -  I_{1, 2}} { I_{1, 2} }
  • Neuer Durchgang des Hauptzyklus mit n= 3 .
  • Berechnen von I_{n+1,1} = I_{4,1} nach der Trapezregel (8 Intervalle, 2^3 = 8, 4 neue Funktionswerte).
  • Unterzyklus: k geht von 2 bis 4 .
    • \ k = 2 und s = 3 \ ; \quad I_{s,k} = I_{3,2} = \frac{4^1 \cdot I_{4,1} - I_{3,1} }{4^1 - 1  }
    • \ k = 3 und s = 2 \ ; \quad I_{s,k} = \frac{4^2 \cdot I_{3,2} - I_{2,2} } {4^2 - 1  }
    • \ k = 4 und s = 1 \ ; \quad I_{s,k} = \frac{4^3 \cdot I_{2,3} - I_{1,3} }{4^3 - 1  }
    • \ E = \frac{I_{1, 4} -  I_{1, 3}} { I_{1, 3} }
  • Neuer Durchgang des Hauptzyklus mit n = 4
usw.

Anmerkungen[Bearbeiten]

Eine Unterschreitung der hier definierten Fehlerschranke bedeutet nicht immer, dass das Integral korrekt berechnet wurde. Dies gilt besonders für periodische Funktionen und Funktionen mit einem periodischen Anteil. So führt z. B. das bei der Fourieranalyse periodischer Funktionen vorkommende Integral

 \int_{0}^{2 \pi} f(x) \cdot \cos(2^n x) \mathrm{d}x

u. U. zu einem Fehler, wenn man nicht mindestens n+1 Integrationsstufen berechnet. In den ersten n Integrationsstufen fallen alle Stützstellen mit den Nullstellen der Funktion zusammen. Als Integral erhält man daher immer den Wert Null, egal ob es stimmt oder nicht. Ein Computerprogramm sollte also immer eine Mindestanzahl an Integrationsstufen erzwingen.

Fazit[Bearbeiten]

Der große Vorteil der Romberg-Quadratur gegenüber anderen Verfahren besteht in der Möglichkeit, den Fehler im Nachhinein zu kontrollieren und schon erreichte Ergebnisse weiterzuverwenden, wenn die Genauigkeit noch nicht erreicht ist.

Literatur[Bearbeiten]

  • Martin Hermann: Numerische Mathematik 2. überarbeitete und erweiterte Auflage. Oldenbourg Wissenschaftsverlag, München u. a. 2006, ISBN 3-486-57935-5, S. 436 ff.
  • Josef Stoer: Numerische Mathematik 1, 8. neu bearbeitete und erweiterte Auflage. Springer-Lehrbuch, ISBN 3-540-66154-9, S. 161 ff.

Weblinks[Bearbeiten]