Inhalt, Interpolationsverfahren, Kubische Spline-Kurven: [ Motivation | Definition eines Kubischen Spline-Kurvensegments | Erweiterung auf zwei Kurvensegmente | Verallgemeinerung für beliebig viele Kurvensegmente | Beurteilung Kubischer Spline-Kurven ]

Verallgemeinerung für beliebig viele Kurvensegmente

In den beiden vorangegangenen Abschnitten wurde das Verfahren der Interpolation von zwei bzw. drei Stützpunkten mit ein bzw. zwei Kubischen Spline-Kurvensegmenten beschrieben. Nun folgt das allgemeine Verfahren für $n$ Stützpunkte (Ortsvektoren der zu interpolierenden Stützpunkte) und entsprechend $(n-1)$ Spline-Kurvensegmente:
\begin{displaymath}
K_{i} (t) = A_{i} + B_{i} \cdot t + C_{i} \cdot t^{2} + D_{i}
\cdot t^{3}
\end{displaymath} (2.16)

Der Index $i$ bei den Koeffizienten $A_{i}$, $B_{i}$, $C_{i}$ und $D_{i}$ markiert, dass diese Koeffizienten zum $i$-ten Kurvensegment gehören ( $i \in {1, 2,..., n-1}$).
$\displaystyle K_{i} (t)$ $\textstyle =$ $\displaystyle P_{i} + P_{i}' \cdot t +$  
    $\displaystyle {}
\left(\frac{3 \cdot (P_{i+1}-P_{i})}{t_{i+1}^{2}} - \frac{2 \cdot
P_{i}'}{t_{i+1}} - \frac{P_{i+1}'}{t_{i+1}}\right) \cdot t^{2} +$  
    $\displaystyle {} \left(\frac{2 \cdot
(P_{i}-P_{i+1})}{t_{i+1}^{3}} + \frac{P_{i}'}{t_{i+1}^{2}} +
\frac{P_{i+1}'}{t_{i+1}^{2}}\right) \cdot t^{3}$ (2.17)

Der Parameter $t$: $(t_{1}=0) \leq t \leq t_{i+1}$ Wie im vorherigen Abschnitt müssen wieder die "inneren" Ableitungen bestimmt werden. Dazu wird die Gleichung (2.14) in die allgemeine Form gebracht und so umgeformt, dass die Unbekannten $P_{k}'$ auf der linken Seite und die Randbedingungen $P_{k}$ auf der rechten Seite stehen:
    $\displaystyle t_{k+2} \cdot P_{k}' + 2 \cdot (t_{k+2} + t_{k+1}) \cdot
P_{k+1} + t_{k+1} \cdot P_{k+2} =$  
    $\displaystyle {}
\frac{3}{t_{k+1} \cdot t_{k+2}} \cdot \Bigl(t_{k+1}^2 \cdot
(P_{k+2} - P_{k+1}) + t_{k+2}^2 \cdot (P_{k+1} - P_{k})\Bigr)$ (2.18)

mit: $1 \leq k \leq (n-2)$ Es gibt also $(n-2)$ Gleichungen zur Lösung der $(n-2)$ unbekannte Zwischentangentenvektoren (Ableitungen). In Matrixschreibweise:

\begin{displaymath}[T][P'] = [P]
\end{displaymath}


    $\displaystyle \left[\begin{array}{ccccccccc}
t_{3}&2(t_{2}+t_{3})&t_{2}&0&\ldot...
...t_{n-2}&0\\  0&0&0&0&\ldots&0&t_{n}&2(t_{n-1}+t_{n})&t_{n-1}
\end{array}\right]$  
    $\displaystyle {} \left[\begin{array}{c}
P_{1}'\\  P_{2}'\\  \vdots\\  P_{n-1}'\...
...\cdot (P_{n} - P_{n-1}) + t_{n}^2
\cdot (P_{n-1} - P_{n-2})]
\end{array}\right]$ (2.19)

Da der erste und letzte Tangentenvektor ( $P_{1}', \thinspace
P_{n}'$) als Randbedingungen vorgegeben sind, kann die Matrix umgeformt werden zu:
    $\displaystyle \left[\begin{array}{ccccccc}
2(t_{2}+t_{3})&t_{2}&0&\ldots&0&0&0\...
...ray}{c}
P_{2}'\\  P_{3}'\\  \vdots\\  P_{n-2}'\\  P_{n-1}' \end{array}\right] =$  
    $\displaystyle {}
\left[\begin{array}{c} \frac{3}{t_{2} \cdot
t_{3}} \cdot [t_{2...
...+ t_{n}^2 \cdot (P_{n-1} - P_{n-2})] - [t_{n-1}\cdot
P_{n}']
\end{array}\right]$ (2.20)

Die Zwischentangentenvektoren können nun aus dem Gleichungssystem ermittelt werden. Diese Matrix ist stets lösbar, da sie "tridiagonal" und positiv definit ist. Außerdem hat die Matrix $[T]$ aus (2.20) $(n-2) \times (n-2)$ Elemente, während die Matrix $[T]$ aus (2.19) keine quadratische Koeffizientenmatrix war. Ein Algorithmus zur Lösung dieses Gleichungssystem ist im Buch von H. Späth zu finden [5]. Dieser Algorithmus nutzt die Bandstruktur der Koeffizientenmatrix [$T$] aus. Wurden also aus dieser Matrix durch geeignete Algorithmen die Zwischentangenten $P_{i}'$ bestimmt, ergeben sich daraus die Koeffizienten $A_{i}, B_{i}, C_{i}$ und $D_{i}$, da alle $P_{i}'$ bekannt sind (siehe Gleichung (2.17)).

Abbildung 2.2: Kubische Splinekurven: Auswirkung des Parameters $t_{3}$ (zwischen $P_{2}$ und $P_{3}$) auf den Kurvenverlauf: a) 0,3 b) 1,4 c) 2,4 d) 4,8
\includegraphics [width=3.20in,height=2.27in]{cubic_ti.bmp}

Werden noch die Parameter $t_{i}$ ( $i \in {1, 2,..., n};
t_{1}=0$ ) gewählt, kann die Kurve berechnet und dargestellt werden. Ideal wäre es, wenn die $t_{i}$ die Bogenlänge des Segments $(i-1)$ repräsentieren. Eine gute Näherung ist $t_{i} =
\vert P_{i-1} - P_{i}\vert$. Die Parametrisierung beeinflusst die Kurvengestalt der Interpolationskurve. Beispiele für Kubische Spline-Kurven mit unterschiedlicher Parametrisierung sind in Abbildung 2.2 zu sehen.

Anfang dieser Seite


Studienarbeit von Stefan Kögler, 5koegler@informatik.uni-hamburg.de
Dokument:
Letzte Änderung: