Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen Rekonstruktion kontinuierlicher Daten Interpolation multivariater Daten Ulrich Rüde Lehrstuhl für Systemsimulation Sommersemester 2007 U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 1
Kritik Lautstärke im H8 Folien früher bereitstellen Kurzprüfungen haben nur bedingt den gewünschten Effekt U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 2
Zum Thema: Rekonstruktion kontinuierlicher Daten Nachtrag: Beispiel zur Newton schen Interpolationsformel U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 3
Ansatz Herleitung einer Rekursionsformel p 1,k-1 (x) interpoliert an x 1, x 2,..., x k (Polynomgrad k-1) p 2,k-1 (x) interpoliert an x 2, x 3,..., x k+1 (Polynomgrad k-1) Brechne daraus p 1,k das an x 1, x 2,..., x k+1 interpoliert (Polynomgrad k) x 1 x 2 x 3 x 4 U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 4
Zur Erinnerung: Rekursionsformel von Aitken-Neville Warum funktioniert das: Ist x=x i, dann übernimmt das linke Polynom. Ist x=x i+k, dann übernimmt das rechte Polynom. Bei den Stützstellen dazwischen kooperieren beide Polynome. Die Sortierung der Stützstellen ist nicht relevant. Terminierung der Rekursion: Die Interpolation einer einzigen Stützstelle (x i, y i ) liefern trivialerweise die konstanten Polynome p i,0 (x) = y i Anwendung zur Berechnung des Koeffizienten zur höchsten Potenz des Polynoms führt auf die Formel für die Newton schen dividierten Differenzen: (*) U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 5
Newton-Polynome und Newton-Algorithmus Verwende nun die Basis { q 0, q 1,..., q n-1 } zur Lösung der Interpolationsaufgabe. Vorteil: In dieser Basis ist das Interpolationspolynom effizient für alle x (mit einem Horner-artigen Schema) auswertbar. U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 6
Newton-Polynome und Newton-Algorithmus Die a i,k sind so berühmt, dass sie einen extra Namen erhalten haben. Sie heissen (Newton sche) Dividierte Differenzen. Es gibt viele andere Bezeichnungen/Notationen dafür, eine übliche ist: Wenn man also als Datenstruktur für die Polynome eine Darstellung mit Koeffizienten in der Newtonbasis verwendet, kann man das Interpolationspolynom (d.h. die entsprechenden Koeffizienten) mit dem gleichen Rekursionsschema berechnen. Man braucht pro Polynom im Dreiecksschema nur eine Zahl a i,k neu ausrechnen. Diese Zahl ist genau der Koeffizient zur höchsten x-potenz im Polynom. Die Rekursionsformel dafür ist, siehe (*): Bzw (**) U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 7
Der Algorithmus von Aitken-Neville = a 0 = a 1 = a2 = a 3 = a n-1 U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 8
Beispiel: Polynominterpolation 4 Stützpunkte (-2, 0) (-1, 3) ( 1,-3) ( 2, 0) Führt auf ein kubisches Polynom p(x,y) = (x-2) (x-0) (x+2) U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 9
Polynominterpolation U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 10
Zum Thema: Rekonstruktion kontinuierlicher Daten Interpolation multivariater Daten U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 11
Multivariate Funktionen Funktionen mehrer Veränderlicher f : R n R bivariate: f(x,y) trivariate: f(x,y,z) Gegeben diskrete samples einer unbekannten Funktion Stützstellen ( x i, y i ) Stützwerte f i (= f(x i, y i ) ) Gesucht Näherungswerte von f an den zwischen Stellen. Ansatz: Konstruiere eine interpolierende Funktion g : g( x i, y i ) = f i U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 12
Lokale Verfahren Berücksichtige nur die Daten in der Umgebung des jeweiligen Punktes (1D-Beispiel: lineare Interpolation) Bilinear in 2D falls Umgebung rechteckig Linear in 2D falls Umgebung ein Dreieck Triangulierung von Punkten U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 13
Der einfachste Fall für die Rekonstruktion einer Fläche: Bilineare Interpolation Überstrichene Fläche bei der Bewegung von P 1 und P 2 auf geradem Weg nach P 3 bzw. P 4, unter Mitführung der jeweiligen Verbindungsstrecke. U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 14
Bilineare Interpolation 4 Stützstellen entsprechen 4 Basisfunktionen B = { 1, x, y, xy } Interpolant ist linear entlang der Kanten, quadratisch entlang der Diagonalen. Kann implementiert werden als zuerst lineare Interpolation in x, dann lineare Interpolation in y zuerst lineare Interpolation in y, dann lineare Interpolation in x oder direkt (siehe unten) Überstrichene Fläche der Verbindungsstrecke U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 15
Bilineare Interpolation y 1 t y 0 x 0 s x 1 f 01 f *1 f 11 f 00 f *0 f 10 f *1 f ** f *0 U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 16
Bilineare Interpolation U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 17
Bilineare Interpolation Andere Reihenfolge - erst zweimal in y-richtung, dann einmal in x-richtung - liefert das gleiche Ergebnis Die bilineare Interpolierende ist keine ebene Fläche Ausnahme: Die vier 3D-Punkte (x i, y j, f ij ) liegen in einer Ebene Im Allgemeinen entsteht dabei keine lineare Funktion über der Ebene, sondern Polynom vom Grad zwei (enthält Term der Form s t ). U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 18
Vier Stützstellen Zusamengefasst: Bilineare Interpolation Dazugehörige Stützwerte Der Interpolant ist U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 19
Verallgemeinerung zu Polynomen höherer Ordnung: Interpolation in 2D Ansatz als multivariate Funktion Verwendung multivariater Basisfunktionen Beispiel: bivariate Polynome p(x,y) Dimension = n 2 : p(x,y) kann n 2 Interpolationsbedingungen einhalten. Aufstellen eines Gleichungssystems mit n 2 Unbekannten Koeffizientenmatrix der Dimension n 2 n 2. Lösung kostet O(n 6 ) Operationen. Man überlege sich analog, wie die Interpolation mit Polynomen über einem Dreieck aussehen könnte. Es ist i.a. nicht sichergestellt, dass eine Lösung existiert. U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 20
Bivariate Polynome: Tensorprodukt Liegen die Stützstellen auf einem Tensorprodukt -Gitter y 4 y 3 kann die Interpolation zuerst in x- Richtung und dann in y-richtung (oder umgekehrt) jeweils als eindimensionale Interpolation ausgeführt werden, und dabei die bekannten Algorithmen zum Einsatz kommen. (Lösbarkeit ist gesichert) y 2 y 1 x 1 x 2 x 3 x 4 x 5 Beachte, dass das resultierende bivariate Polynom in x-richtung ein Polynom vom Grad n und in y-richtung ein Polynom vom Grad m ist. In Richtung = x + y ist es ein Polynom vom Grad m+n. U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 21
Lineare Interpolation im Dreieck Die drei Punkte (x 1, y 1, u 1 ), (x 2, y 2, u 2 ), (x 3, y 3, u 3 ) eines (nichtdegenerierten) Dreiecks im Raum definieren gerade eine Ebene. Lineare Interpolation zum Punkt (x,y) durch Umrechnen auf baryzentrische Koordinaten (t 1, t 2, t 3 ) Andere Namen: homogene Koordinaten, Verhältniskoordinaten Die t i sind die Gewichte der Eckpunkte des Dreiecks, so dass der gewichtete Schwerpunkt (x,y) ist. Interpolationsformel U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 22
Illustration: lineare Interpolation im Dreieck U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 23
Lineare Interpolation: Baryzentrische Koordinaten: Gegeben drei Punkte R, S, T in der Ebene, die nicht auf einer Geraden liegen. Jeder Punkt P der Ebenen läßt sich eindeutig wie folgt darstellen: T P = R + S + T 1 = + + wobei, und heißen baryzentrische Koordinaten von P bezüglich (R,S,T) R P S U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 24
Lineare Interpolation: Berechnung der baryzentrische Koordinaten: mittels Cramerscher Regel Das ist in der Computergraphik Standard, ist aber wegen der Stabilitätsmängel der Cramer schen Regel nicht die beste Lösung U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 25
Berechnen der baryzentrischen Koordinaten im Dreieck Lösen des 3x3 Gleichungssystems: bzw. kann (und sollte) ganz normal mit Gauss-Elimination + Pivot-Suche geschehen. Das ist insbesondere der richtige Weg für die Berechnung der baryzentrischen Koordinaten in 3D (oder noch höher-dimensional). U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 26
Lineare Interpolation Baryzentrische Koordinaten Einfache Beispiele P 1 : (1,0,0) (Eckpunkt) P 2 : (1/3, 1/3, 1/3) (Schwerpunkt) P 3 : (0,1/2,1/2) (Kantenmitte) P 4 : (1, 1, -1) P 5 : (-1,-1,1) R P 2 T P 5 P 3 S P 1 P 4 U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 27
Lineare Interpolation Baryzentrische Koordinaten Geometrische Interpretation Erinnerung: det (C-A,B-A) = area (Parallelogramm) = 2 area( (A,B,C)) A C T B = area( (P,S,T)) / area( (R,S,T)) P ebenso = area( (R,P,T)) / area( (R,S,T)) = area( (R,S,P)) / area( (R,S,T)) R S U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 28
Lineare Interpolation Baryzentrische Koordinaten Geometrische Interpretation Teilungsverhältnisse R T P S R T P S U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 29
Lineare Interpolation:Baryzentrische Koord. Vorzeichen der baryzentrischen Koordinaten 0 < 0 > 0 = 0 > 0 < 0 < 0 > 0 < 0 > 0 R T > 0 > 0 > 0 > 0 > 0 < 0 0 > 0 > 0 S = 0 = 0 0 > 0 < 0 U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 30
Lineare Interpolation: Sind nun in den Eckpunkten des Dreiecks (skalare oder vektorielle) Daten gegeben: f R, f S und f T f T f R T f S Den Wert des linearen Interpolanten an einer Stelle P 2 (R,S,T) erhält man wie folgt: R f P P S f P = f R + f S + f T wobei,, baryz. Koordinaten von P Analogie zur linearen Interpolation in 1D U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 31
Lokale Interpolation im n-dim Raum multi-linear (trilinear in 3D) falls lokale Umgebung ein (Hyper-)Würfel 3D: 4-mal in x-richtung (1- ) + 2-mal in y-richtung (1- ) + 1-mal in z-richtung (1- ) + linear falls lokale Umgebung ein Simplex (ein Tetraeder in 3D) = konvexe Hülle von n+1 Punkten in allgemeiner Lage Baryzentrische Koordinaten eines Punktes P (im 3D-Fall): P = R + S + T + U mit + + + = 1 Alles Weitere wie in 2D (aber Achtung, dass die baryzentrischen Koordinaten stabil berechnet werden - Computergraphikbücher sind da manchaml etwas uninformiert ) U. Rüde, G. Greiner: Algorithmik III - SS 2007 - VL 14 - Folie 32