algorithmik kontinuierlicher systeme - cs10.tf.fau.de · nxxxx! ss 2017 interpolation in 1d prof....
TRANSCRIPT
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
Algorithmik kontinuierlicher SystemeRekonstruktion kontinuierlicher Daten – Interpolation 1D
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Rekonstruktion kontinuierlicher Daten aus diskreten Daten
2
Motivation
Kontinuierliche Daten
Diskrete Daten
Verarbeitung im Rechner
Kontinuierliche Daten
Diskrete Daten
Digitalisierung
Rekonstruktion
Dat
en-
vera
rbei
tung
Rekonstruktion
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Lokale Verfahren vs. globale Verfahren • Lokale Verfahren
− nearest neighhbor : unstetig, O(h) − linear: stetig, O(h2) − Catmull-Rom: glatt (diff.-bar, C1), O(h3) − kubische Splines: glatt (diff.-, bar, C2), O(h4)
• Schätzen von Ableitungen : vorwärts, rückwärts, zentral • Rechenaufwand:
− Aufwand für Suche … − der Rest ist O(1)
• Globale Verfahren − Polynominterpolation − B-Spline-Interpolation
3
Zwischenfazit
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Polynome vom Grad n-1 bilden einen n-dimensionalen Vektorraum.
• Polynome werden in der Informatik sehr gerne verwendet, weil deren Auswertung für Computer einfach ist (→ Hornerschema s.u.) - im Gegensatz zu anderen mathematischen Funktionen.
• Polynome werden deshalb häufig zur Approximation anderer (komplizierterer) Funktionen eingesetzt (à Taylorentwicklung)
• Die Taylorbasis (oder Monombasis) oben ist nur eine Möglichkeit den Polynomraum darzustellen - Varianten später.
4
Polynominterpolation
TaylorbasisMonombasis
Pn = span�1, x, x2
, . . . , x
n�1 =
(n�1X
i=0
cixi
)
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
Interpolation: von der zu approximierenden Funktion werden nur Werte an (wenigen) Stützstellen verwendet, die Werte dazwischen werden durch ein „Polynominterpolation“ berechnet.
Werden nur die Punkte selbst verwendet, spricht man von „Lagrange-Interpolation“. Werden zusätzliche auch Informationen über die Richtungen (Ableitung der Funktion) verwendet, dann spricht man von „Hermite-Interpolation“ bzw. von Interpolation mit doppelten Stützstellen.
5
Interpolation mit Polynomen in 1D (2)
Lagrange Interpolation Hermite Interpolation
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Für die (Lagrange-)Polynominterpolanten sind gegeben: − Stützstellen { x1, x2, ... , xn} − Stützwerte { y1, y2, ... , yn}
• Ein Polynom interpoliert diese Werte sofern p(x1) =y1, … , p(xn) = yn
das heißt:
6
Polynominterpolation
∑−
==
1
0)( n
ii
i xcxp
nn
i
inin
n
i
ii
n
i
ii
yxcxp
yxcxp
yxcxp
==
==
==
∑
∑∑
−
=
−
=
−
=
1
0
21
0 22
11
0 11
)(
)(
)(
!
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• p(x) = c0 + c1 x + ... + cn-1 xn-1 eingesetzt in die n Interpolationsbedingungen führt auf ein lineares Gleichungssystem mit n Gleichungen für die n unbekannten Koeffizienten ci.
• A heißt Vandermonde-Matrix, • Vandermonde-Determinate
7
Polynominterpolation: Vandermonde
( ) 0)det(1
≠−= ∏≤<≤ nkj
kj xxA
!ycA
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
−−
−
−
nnnnnn
n
n
y
yy
c
cc
xxx
xxxxxx
"
#$%
"
&&&& #&&&& $%'
"(""''
2
1
1
1
0
12
12
222
11
211
1
11
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Die Matrix A ist die sogenannte Vandermonde-Matrix.
‣ Sie ist quadratisch, voll besetzt, nicht singulär (sofern xi ≠ xj ) aber
‣ schon bei moderatem n (und äquidistanten Stützstellen) sehr schlecht konditioniert
8
n κ(AVandermonde)
3 13.91
4 154.46
5 2592.89
6 57688.70
7 1597316.16
8 52937735
9 2043725290
10 9.00778E10
11 4.46282E12
12 2.45502E14
13 1.48460E16
14 9.79006E17
15 7.02701E19
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Das System A c = y ist eindeutig lösbar, da det(A) ≠ 0:
• Folgerung: Zu n Stützstellen gibt es ein eindeutig bestimmtes Interpolationspolynom vom Grad n-1
• Man löse das Gleichungssystem A c = y mit der Vandermondematrix A z.B. mit LR-Zerlegung (oder Gauss-Elimination)
− Aufwand O(n3)
− Numerisch sehr problematisch (da schlecht konditioniert)
− Gibt’s, denn da nichts besseres?
9
Polynominterpolation: Vandermonde
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
Divide-et-Impera Ansatz Rekursion Wie könnte es gehen?
p(x) interpoliert x1, x2, ... , xk
q(x) interpoliert xk+1, xk+2, ... , x2k
F(p,q) interpoliert x1, x2, ... , xk, xk+1, xk+2, ... , x2k
10
Berechnung des Polynom-Interpolanten in O(n2) Operationen
So geht es leider nicht! (Es wäre zu schön gewesen)
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
Ansatz p1,k-1(x) interpoliert an x1, x2, ... , xk (Polynomgrad k-1)
p2,k-1(x) interpoliert an x2, x3, ... , xk+1 (Polynomgrad k-1)
Brechne daraus p1,k das an x1, x2, ... , xk+1 interpoliert (Polynomgrad k)
11
Herleitung einer Rekursionsformel
x1 x2 x3 x4
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Warum funktioniert das: • Ist x=xi, dann „übernimmt“ das linke Polynom. • Ist x=xi+k, dann „übernimmt“ das rechte Polynom. • Bei den Stützstellen dazwischen „kooperieren“ beide Polynome. • Die Sortierung der Stützstellen ist nicht relevant.
• Die Formel kann man als Rekursion für (reelle/komplexe) Zahlen, also die Werte der Polynome an der Stelle x lesen
• Es ist aber genau so gut eine Formel für Funktionen: • Eine Funktion, die aus zwei Funktionen eine dritte berechnet.
• Terminierung der Rekursion: • Die Interpolation einer einzigen Stützstelle (xi, yi) liefern
trivialerweise die konstanten Polynome pi,0(x) = yi
12
Rekursionsformel von Aitken-Neville
(*)
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
Wenn man einen Datentyp „Polynom“ (class Polynom in Python/C++) hat, kann man diese Formel zur Konstruktion des interpolierenden Polynoms verwenden.
Besonders attraktiv wäre dies natürlich in funktionalen Programmierprachen (wie Lisp, Maple, auch Python,…). Am einfachsten und effizientesten geht es, wenn man eine geeignete Datenstruktur (mathematisch gesehen: Polynombasis) verwendet, nämlich die Polynomdarstellung nach Newton. Dann kommt man auf die Newtonsche Interpolationsformel (siehe heute später in der Vorlesung).
Aber zunächst ist die Rekursionsformel noch unbrauchbar: Der Aufwand explodiert, wenn man die Rekursionsformel naiv verwendet: Bei Polynomgrad n sind O(2n) Aufrufe erforderlich! Das ist viel zu teuer. Nur wenn man nutzt, dass die Rekursion immer wieder die gleichen Polynome berechnet, kann man ein effizienten Algorithmus erhalten. Das führt auf das Aitken-Neville-Dreiecksschema und die Newtoninterpolation: siehe unten.
13
Rekursionsformel von Aitken-Neville (2)
(*)
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Bisher : Darstellung in der ‣ Taylor-Basis bzw. Monom-Basis
{1, x, x2, x3, ...., xn-1} ‣ zu speichern: Die n Koeffizienten ‣ Effiziente Auswertung mit
dem Horner-Schema (s.u.)
• Alternativen: 1. Bernstein-Polynome 2. Lagrange-Polynome 3. Newton-Polynome
• bilden jeweils eine Basis von
14
Alternative Polynombasen
1
1
Pn
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Alternative 1: Basis aus Bernstein-Polynomen
− Basis für Polynome vom Grad n-1
− Sehr beliebt in Graphik beim geometrischen Modellieren à Gegenstand der aktuellen Übungsaufgabe
− Für Polynominterpolation eher nicht geeignet
15
Alternative Polynombasen: Bernstein
( ) iinni xx
in
xB −−− −⎟⎟⎠
⎞⎜⎜⎝
⎛ −= 11 1
1)( Pn�1 = span
�B
n�10 (x), Bn�1
1 (x), . . . Bn�1n�1(x)
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
‣ Alternative 2: Basis aus Lagrange-Polynomen zu gegebenen Stützstellen { x1, x2, ... , xn}
• Eigenschaften der Lagrange-Polynome: − Die Li sind linear unabhängig und bilden eine Basis von − Li(xj)=δik (= Kroneckersymbol) − à das (eindeutige) Interpolationspolynom ist gegeben durch
− Hauptanwendung der Lagrange-Polynome sind theoretische Überlegungen (z.B. zur Entwicklung von speziellen Algorithmen). Für die algorithmische Berechnung des Interpolationspolynoms selbst sind sie eher schlecht geeignet!
)..1()()()()()()()()()(
111
111 nixxxxxxxxxxxxxxxx
xLniiiiii
niii =
−⋅⋅−⋅−⋅⋅−
−⋅⋅−⋅−⋅⋅−=
+−
+−
…………
)()(1
xLyxp in
i i∑ ==
1−nIP
16
Alternative Polynombasen: Lagrange
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
‣ Alternative 2: Basis aus Lagrange-Polynomen zu gegebenen Stützstellen { x1, x2, ... , xn}
17
Alternative Polynombasen: Lagrange
)..1()()()()()()()()()(
111
111 nixxxxxxxxxxxxxxxx
xLniiiiii
niii =
−⋅⋅−⋅−⋅⋅−
−⋅⋅−⋅−⋅⋅−=
+−
+−
…………
;1,5.0
,0
3
2
1
=
=
=
xxx
xxxx
xL
xxxx
xL
xxxx
xL
−=−−
−−=
+−=−−
−−=
+−=−−
−−=
23
22
21
2)5.01)(01()5.0)(0()(
44)15.0)(05.0()1)(0()(
132)10)(5.00()1)(5.0()(
;1,75.0,5.0,25.0
,0
5
4
3
2
1
=
=
=
=
=
xxxxx
1
1
1
1
⎩⎨⎧ =
= sonst
falls01
)(ij
xL ji
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
‣ Alternative 3: Basis aus Newton-Polynomen zu gegebenen Stützstellen { x1, x2, ... , xn}
18
Alternative Polynombasen: Newton
)..1()()()()( 121 nixxxxxxxN ii =−⋅⋅−⋅−= −…
1
1
1
1
;1,5.0,0 321 === xxx ;2,5.1,1,5.0,0 54321 ===== xxxxx
;5.0)5.0)(0()(
,)0()(,1)(
23
2
1
xxxxxN
xxxNxN
−=−−=
=−=
=
);5.1)(1)(5.0)(0()(),1)(5.0)(0()(
,
5
4
−−−−=
−−−=
xxxxxNxxxxN
!
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Alternative 3: Basis aus Newton-Polynomen zu gegebenen Stützstellen { x1, x2, ... , xn}Verwende die Basis { N1(x) , N2(x) , ... , Nn(x) } zur Lösung der Interpolationsaufgabe, Ansatz:p(x) = a0+a1(x-x1)+a2(x-x1)(x-x2)+…. an-1(x-x1)(x-x2)…(x-xn-1)
• Mit dieser Basis läßt sich des Interpolationsproblem effizient und stabil lösen → Algorithmus von Aitken-Neville
• Weiterer Vorteil: In dieser Basis ist das Interpolationspolynom effizient für alle x (mit einem Horner-artigen Schema) auswertbar.
19
Alternative Polynombasen: Newton
)..1()()()()( 121 nixxxxxxxN ii =−⋅⋅−⋅−= −…
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Alternative 3: Basis aus Newton-Polynomen zu gegebenen Stützstellen { x1, x2, ... , xn}p(x) = a0+a1(x-x1)+a2(x-x1)(x-x2)+…. an-1(x-x1)(x-x2)…(x-xn-1)
• Die Interpolationsbedingungen p(xj) = yj führen auf ein Gleichungssystem mit unterer Dreiecksmatrix:
20
Alternative Polynombasen: Newton
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
−−−
−−−
−
− nnnnnnn y
yyy
a
aaa
xNxxxxxx
xxxxxxxx
!!"!!!!"
#
3
2
1
1
2
1
0
211
231313
12
)())((10
))((10010001
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Der Algorithmus von Aitken-Neville
21
Alternative Polynombasen: Newton
= a0
= a1
= a2
= an-1
= a3
iki
kikiki xx
ppp
−
−=
+
−−+ 1,1,1,
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Der Algorithmus von Aitken-Nevillep(x) = a0+a1(x-x1)+a2(x-x1)(x-x2)+…. an-1(x-x1)(x-x2)…(x-xn-1)
• Pseudo-Code zur Berechnung der Koeffizienten ai :
• Aufwand: O(n2)
22
Alternative Polynombasen: Newton
# Initialisierung: for i=1..n pi,0= yi # Spaltenweises Vorgehen: for k=1..n-1 # Durchlaufen der Spalte: for i=1..n-k-1 pi,k = (pi+1 k-1 - pi k-1)/(xi+k-xi) # Rückgabe der Ergebnissee:
ai = p1,i ; (i = 0..n-1)
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Effiziente Auswertung des Newton-Polynoms mit Horner-artigem Schema:
• Klassisches Hornerschema für
‣ PseudoCode :
• Modifiziertes Hornerschema
‣ PseudoCode
23
Hornerschema
01211
110 ))(()( axaxaxaxaxaaxp nnn
n ++++=+++= −−−
− !…!
0112211
111110
))())()((()()()()(
axxaxxaxxaxxxxaxxaaxp
nnnn
nn
+−++−+−=
=−⋅⋅−++−+=
−−−−
−−
……
……
sum = a[n-1] for i=n-2..0 sum = sum*x+a[i]
sum = a[n-1] for i=n-2..0 sum = sum*(x-x[i+1])+a[i]
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Die Bernstein-Polynome vom Grad nbilden ein Basis der Polynome (vom Grad n )
• Die Binomial-Koeffizienten
• Rekursive Definition (Pascalsches Dreieck)
• Binomische Formel
24
Bernstein-Polynome
)!(!!ini
nin
−⋅=⎟⎟
⎠
⎞⎜⎜⎝
⎛
146411331121
111
iinn
i
n bain
ba −
=
⋅⎟⎟⎠
⎞⎜⎜⎝
⎛=+ ∑
0
)(
),...,2,1,0()1()( nittin
tB iinni =−⎟⎟
⎠
⎞⎜⎜⎝
⎛= −
⎟⎟⎠
⎞⎜⎜⎝
⎛
−+⎟⎟⎠
⎞⎜⎜⎝
⎛=⎟⎟
⎠
⎞⎜⎜⎝
⎛ +
11
in
in
in
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Alternative 1: Basis aus Bernstein-Polynomen
‣ Eigenschaften:
25
Alternative Polynombasen: Bernstein
( ) iinni xx
in
xB −−− −⎟⎟⎠
⎞⎜⎜⎝
⎛ −= 11 1
1)(
xxB
xxB
=
−=
)(
1)(11
10
222
21
220
)(
)1(2)(
)1()(
xxB
xxxB
xxB
=
−=
−=
444
343
2242
341
440
)(
)1(4)(
)1(6)(
)1(4)(
)1()(
xxB
xxxB
xxxB
xxxB
xxB
=
−=
−=
−=
−=
∑ ==
<<≥n
ini
n
xB
xxB
0
0
1)(
100)( falls
linear quadratisch quartisch
1
1
1
1
1
1
Pn�1 = span�B
n�10 (x), Bn�1
1 (x), . . . Bn�1n�1(x)
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Bernstein-Polynome vom Grad n=1
26
Bernstein-Polynome
;)(,1)( 11
10 ttBttB =−=
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Bernstein-Polynome vom Grad n=3 (kubische Bernstein-Polynome)
27
Bernstein-Polynome
;)(,)1(3)(,)1(3)(,)1()( 333
232
231
330 ttBtttBtttBttB =−=−=−=
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Bernstein-Polynome vom Grad n=10
28
Bernstein-Polynome
;)(...,,)1(10)(,)1()( 101010
9101
10100 ttBtttBttB =−=−=
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Es gilt
29
Eigenschaften der Bernstein-Polynome
),...,2,1,0()1()( nittin
tB iinni =−⎟⎟
⎠
⎞⎜⎜⎝
⎛= −
∑=
=
≤≤
n
i
ni
ni
ni
ni
tB
tBtBtB
01)(
)(
)(
1)(0 für t ∈ [0,1]
hat eine i-fache Nullstelle in t = 0
hat eine (n-i)-fache Nullstelle in t = 1
für alle t
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• 2D-Kurven
30
Bézier-Kurven - Beispiele
• 3D-Kurve
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Geometrie des Kontrollpolygons spiegelt (grob) die Geometrie der Kurve wider
• Formeigenschaften 1. Interpolation der Endpunkte
2. In den Endpunkten tangential an das Kontrollpolygon
3. Bézier-Kurve liegt in der konvexen Hülle der Kontrollpunkte
4. affine Invarianz
5. Variationsreduzierend
• Konsequenz: Modifikation der Kontrollpunkte führt zu vorhersehbarer (intuitiver) Änderung der Bézier-Kurve.
31
Formeigenschaften von Bézier-Kurven
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Endpunkt-Interpolation
• Tangentenbedingung
32
Formeigenschaften von Bézier-Kurven
, n
n
iii
n
iii BCBC bbbb =⋅==⋅= ∑∑
== 00
0)1()1()0()0(
)()1(')1('
)()0(')0('
)1(0)0(')0(')0('
)(')('
10
010
10
0
−=
=
=
−=⋅=
−=⋅=
>==−=
⋅=
∑
∑
∑
nn
n
iii
n
iii
i
n
iii
nBC
nBC
iBnBnB
tBtC
bbb
bbb
b
folglich , ,
dabei ,
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
‣ Konvexe Hülle: Bézier-Kurve liegt in konvexer Hülle ihrer Kontrollpunkte
• Beispiele
33
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• (Rekursive) Auswertung der Bernstein Polynome: teuer
• oder durch Horner-Bézier: effizient
34
Auswertung von Bézier-Kurven
⎟⎟⎠
⎞⎜⎜⎝
⎛+⎟
⎠
⎞⎜⎝
⎛ −++⎟
⎠
⎞⎜⎝
⎛ −+⎟
⎠
⎞⎜⎝
⎛ −=
⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎠
⎞⎜⎝
⎛−
+⎟⎠
⎞⎜⎝
⎛−
++⎟⎠
⎞⎜⎝
⎛−
+−=
−⎟⎟⎠
⎞⎜⎜⎝
⎛==
−
−
−
−
−
==∑∑
nn
nnn
n
n
n
nn
iinn
ii
ni
n
ii
tt
tt
ttt
tt
tt
ttt
ttin
tBtC
bbbb
bbbb
bb
~1~...1~1~
1~
1~...
1~~)1(
)1()()(
1
1
1
10
1
1
1
10
00
⎩⎨⎧ =
=
+−= −+
sonst falls
001
)(
)()()1()(
0
11
itB
ttBtBttB
i
ri
ri
ri
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Oder durch fortgesetzte lineare Interpolation: der Algorithmus von de Casteljau (stabil)
35
Auswertung von Bézier-Kurven
1-tt
t
t
t
1-t
1-t
1-t
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Oder durch fortgesetzte lineare Interpolation: der Algorithmus von de Casteljau (stabil)
36
Auswertung von Bézier-Kurven
1-tt
t
t
t
1-t
1-t
1-tt
t
t
1-t
1-t
1-tt
1-t
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• der Algorithmus von de Casteljau (geometrisch)
• Algorithmus von de Casteljau für t = 2/3 und n = 3
37
Auswertung von Bézier-Kurven
b33 = C(2/3)
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Algorithmus von de Casteljau: PseudoCode
# Initialisierung for i = 0..n bi0 = bi;
# deCasteljau Pyramide/Dreieck for k = 1..n for i = k..n
bik = (1-t)*bi-1k-1 + t*bik-1
return bnn # Kurvenpunkt C(t)
38
Auswertung von Bézier-Kurven
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
‣ Gegeben n Stützstellen { x1, x2, ... , xn}, die Werte sind Samples einer f : yi = f (xi) . Falls f n-mal differenzierbar ist, gilt für das Interpolationspolynom p (x) :dabei ist ξ ein Wert zwischen min{x, x1, x2, ... , xn} und max{x, x1, x2, ... , xn}
‣ Speziell n=2 : lineare Interpolation folglich
39
Polynominterpolation - Fehlerabschätzung
h x2x1
!)()()()()()(
)(
21 nf
xxxxxxxpxfn
nξ
⋅−⋅⋅−⋅−=− …
|f(x)� p(x)| h2
8 max{|f (2)(⇠)|}
f(x)� p(x) = (x� x1)(x� x2)f
(2)(⇠)
2
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Verlauf der Funktion |w(x)|
• w(x) oszilliert und wächst zu den Rändern hin (und über die Ränder hinaus, wenn man „Extrapolation“ machen möchte) stark an
• Dort muss mit sehr viel größeren Rekonstruktions-fehlern gerechnet werden!
40
Polynominterpolation - Fehlerabschätzung
)()()()( 21 nxxxxxxxw −⋅⋅−⋅−= …
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Ein Beispiel : Runge Funktion
‣ 21 äquidistante Stützstellen im Intervall [-1,1]
‣ Polynominterpolant vom Grad 20
• Selbst bei Verwendung von mehr äquidistanten Stützstellen wird das Ergebnis nicht besser (keine Konvergenz!)
41
Polynominterpolation - Fehlerabschätzung
])1,1[(,2511)( 2 −∈
+= x
xxf
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Ein Beispiel : Runge Funktion
Ausweg in diesem Fall: Verwendung nicht äquidistanter Stützstellen sog. Tschebycheff-Stützstellen
• In der Praxis oft die Lösung:Vermeide Polynominterpolation für größeres n
• Verwende alternative Verfahren: − Catmull-Rom − B-Spline Interpolation
42
Polynominterpolation - Fehlerabschätzung
])1,1[(,2511)( 2 −∈
+= x
xxf
nini
xi ,...2,1,11
cos =⎟⎠
⎞⎜⎝
⎛ ⋅−
−−= π
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D
• Polynome sind zur Interpolation/Rekonstruktion geeignet, aber nur wenn der Polynomgrad nicht zu hoch ist.
• Andernfalls − Wird das Gleichungssystem für die Polynomkoeffizienten
sehr schlecht konditioniert − Der Fehler oszilliert und wird an den Rändern des
Interpolationsintervalls sehr groß − Man kann diese Probleme durch geeignete andere Wahl
der Stützstellen (teilweise) kompensieren. • Lagrange-Polynome für theoretische Untersuchungen
hilfreich aber ungeeignet zur numerischen Behandlung • Andere Polynom-Basen (Bernstein, Lagrange, Newton) • Praktische Berechnung: Algorithmus von Aitken-Neville
− numerisch stabil und Aufwand O(n2) − Effiziente Auswertung mittels Hornerschema
43
Zusammenfassung Polynominterpolation
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher SystemeInterpolation in 1D 44
n κ(MVandermonde) κ(MNewton) κ(MN) / κ(MV)
3 13.91 6.18 0.444
4 154.46 18.69 0.121
5 2592.89 74.17 0.029
6 57688.70 368.83 0.639E-2
7 1597316.16 2206.21 0.138E-2
8 52937735 15415.01 0.291E-3
9 2043725290 123173.74 0.603E-4
10 0.900778E11 1107665.81 0.123E-4
11 0.446282E13 11070260.73 0.123E-4
12 0.245502E15 121720944.9 0.496E-6
13 0.148460E17 1460178399 0.984E-7
14 0.979006E18 0.189775E11 0.194E-7
15 0.702701E20 0.265633E12 0.378E-8
Konditionszahl (bzgl. Euklidischer Norm) für Vandermonde-Matrix und „Newton“- Matrix für n äquidistante Stützstellen: {0,1,2,…,n-1}