44
SS 2017 Prof. U. Rüde - Algorithmik kontinuierlicher Systeme Interpolation in 1D Algorithmik kontinuierlicher Systeme Rekonstruktion kontinuierlicher Daten – Interpolation 1D

Algorithmik kontinuierlicher Systeme - cs10.tf.fau.de · Nxxxx! SS 2017 Interpolation in 1D Prof. U. Rüde - Algorithmik kontinuierlicher Systeme • Alternative 3: Basis aus Newton-Polynomen

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

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

⋅−⋅⋅−⋅−=− …

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