Spline - LinkFang.de





Spline


Ein Spline n-ten Grades (auch Polynomzug) ist eine Funktion, die stückweise aus Polynomen höchstens n-ten Grades zusammengesetzt ist. Dabei werden an den Stellen, an denen zwei Polynomstücke zusammenstoßen (man spricht auch von Knoten), bestimmte Bedingungen gestellt, etwa dass der Spline (n-1)-mal stetig differenzierbar ist.

Handelt es sich bei dem Spline um eine stückweise lineare Funktion, so nennt man den Spline linear (es handelt sich dann um einen Polygonzug), analog gibt es quadratische, kubische usw. Splines.

Zu den Pionieren der Splineerforschung gehören Isaac Jacob Schoenberg (ab den 1940er Jahren), Paul de Faget de Casteljau, Pierre Bézier und Carl de Boor.

Allgemeines

Der Begriff Spline wurde zuerst in einer englischen Veröffentlichung von Isaac Jacob Schoenberg im Jahr 1946 für glatte, harmonische, zusammengesetzte mathematische Kurven dritten Grades benutzt.

Splines werden vor allem zur Interpolation und Approximation benutzt. Durch die stückweise Definition sind Splines flexibler als Polynome und dennoch relativ einfach und glatt. Dadurch ergeben sich bei der Spline-Interpolation nicht die Nachteile, die durch die starke Oszillation von Polynomen höheren Grades und deren Unbeschränktheit bei der Polynominterpolation entstehen (Runges Phänomen). Splines lassen sich auch gut benutzen, um Kurven darzustellen. Hier finden sie Einsatz im CAD. Mathematisch analog lassen sich auf beide Weisen nicht nur Kurven, sondern auch Flächen beschreiben.

Wortherkunft: Der Begriff stammt aus dem Schiffbau: eine lange dünne Latte (Straklatte, englisch spline), die an einzelnen Punkten durch Molche fixiert wird, biegt sich genau wie ein kubischer Spline mit natürlicher Randbedingung. Dabei wird die Spannungsenergie minimal.

Spline-Raum

Funktionen [math]p:[\tau_0,\tau_{n-1}[\rightarrow\mathbb{R}[/math], die sich in jedem der Teilintervalle [math][\tau_i,\tau_{i+1}[[/math] einer streng wachsenden Knotenfolge [math]\tau:=(\tau_i)_{i=0,.\ldots,n-1}\in \mathbb{R}^n[/math] als Polynome mit Maximalgrad [math]d\in\mathbb{Z}_{\geq0}[/math] darstellen lassen, heißen stückweise Polynomfunktionen auf [math]\tau[/math] (mit Maximalgrad [math]d[/math]).

Außer dieses einfachen Aufbaus aus Polynomabschnitten verlangt man bei Splines auch noch maximale Glattheit.

Der Spline-Raum [math]S_{d,\tau}[/math] ist der Vektorraum aller [math](d-1)[/math]-mal stetig differenzierbaren stückweisen Polynomfunktionen auf [math]\tau[/math] mit Maximalgrad [math]d[/math].

Bei der Konstruktion von Splines erweisen sich die abgeschnittenen Potenzfunktionen

[math] (u)_+^d := \begin{cases} 0 &\text{ für } u \lt 0\\ u^d &\text{ für } u\geq 0 \end{cases} [/math]

mit [math]d=0,1,\ldots[/math] als nützlich. [math](x)_+^d[/math] ist für [math]d=0[/math] die Sprungfunktion, für [math]d=1[/math] die Rampenfunktion und für [math]d\gt1[/math] ist diese Funktion [math](d-1)[/math]-mal stetig differenzierbar.

Jede stückweise Polynomfunktion auf [math]\tau[/math] mit Maximalgrad [math]d[/math] ist mit eindeutig bestimmten Koeffizienten [math]c_{i,j}\in\mathbb{R}[/math], [math](i=0,\ldots,d;\ j=0,\ldots,n-2)[/math] in der Form

[math] p(u) = \sum_{j=0}^{n-2} \sum_{i=0}^{d} c_{i,j} (u-\tau_j)_+^i [/math]

darstellbar. Da Splines [math](d-1)[/math]-mal stetig differenzierbar sein sollen, müssen bei ihnen die Koeffizienten [math]c_{i,j}[/math] für die niedrigeren Potenzen [math]i=0,\ldots,d-1[/math], die die Differenzierbarkeitsforderung nicht erfüllen, an den inneren Knoten [math]j=1,\ldots,n-2[/math] verschwinden. Splines [math]p\in S_{d,\tau}[/math] haben also die Darstellung

[math] p(u) = \sum_{i=0}^d c_{i,0} (u-\tau_0)_+^i + \sum_{j=1}^{n-2} c_{d,j} (u-\tau_j)_+^d. [/math]

Die (auf [math][\tau_0,\tau_{n-1}[[/math] eingeschränkten) Funktionen [math](u-\tau_0)_+^i[/math] für [math]i=0,\ldots,d[/math] und [math](u-\tau_j)_+^d[/math] für [math]j=1,\ldots,n-2[/math] stellen also zusammen eine Basis für den Splineraum [math]S_{d,\tau}[/math] dar. Damit ist der Splineraum [math](n+d-1)[/math]-dimensional.

Die [math](d-1)[/math]-malige Differenzierbarkeit der Splines kann man gezielt an vorgegebenen Knotenpunkten wieder abschwächen. In obiger Darstellung erreicht man das durch Wiederhinzunehmen ausgewählter Basisfunktionen niedrigeren Grades an inneren Knoten. Beim Algorithmus von De-Boor zur Darstellung von Splines ergibt sich das automatisch, wenn man mehrfache Knoten in der Knotensequenz zulässt, genauer die Forderung [math]\tau_i\lt\tau_{i+1}[/math] für [math]i=0,\ldots,n-2[/math] abschwächt zu [math]\tau_i\leq \tau_{i+1}[/math] für [math]i=0,\ldots,n-2[/math] und [math]\tau_i\lt\tau_{i+d+1}[/math] für [math]i=0,\ldots,n-d-2[/math].

Die in Mathematik und Technik genutzten Varianten der Splines, wie B-Splines oder kubische Splines, unterscheiden sich im Wesentlichen durch die für den Splineraum eingesetzte Basis.

Grad und Ordnung

Spline-Kurven werden in der Regel entweder, wie oben beschrieben, über den Grad der stückweise zusammengesetzten Polynome definiert oder über deren Ordnung. Hierbei werden für den Grad meist die Buchstaben [math]d[/math] oder [math]p[/math] verwendet, während es üblich ist, für die Ordnung den Buchstaben [math]k[/math] zu verwenden. Hierbei gilt der Zusammenhang:

[math]k = d + 1[/math]

Kubische Splines

Kubische Splines werden unter anderem zur Berechnung des Bahnverlaufes bei Achterbahnen verwendet, um ruckartige Beschleunigungswechsel für die Fahrgäste zu vermeiden. Kubische Splines finden weitere Anwendung bei der exakten Verlegung der Schienen bei Hochgeschwindigkeitsstrecken der Eisenbahn. Auch beim Entwurf von Kurven und Oberflächen (sogenannte „Freiformkurven und -flächen“), wie sie häufig im Schiff-, Flugzeug- und Automobilbau vorkommen, sind Splines von Bedeutung.

Splines eignen sich für solche Anwendungen, weil für jeden Polynomabschnitt Randbedingungen sowohl in Form von Punkten als auch in Form von Werten für die erste und zweite Ableitung (und in Abhängigkeit davon Steigung und Krümmung/Kurvenradius) vorgegeben werden können. Dadurch kann eine über den gesamten Kurvenverlauf stetige Krümmung erreicht werden. So werden Querbeschleunigungen beim Abfahren der Kurve immer allmählich aufgebaut bzw. an den Knotenpunkten vorgegebene Werte eingehalten.

Burmester-Schablonen stellen kubische Splines dar. Diese Schablonen werden genutzt, um Ausgleichskurven von Wertescharen zu zeichnen.

B-Splines

B-Spline ist die Kurzform von Basis-Spline. Im Kontext numerischer Verfahren, wo Splines häufig eingesetzt werden, entscheidet die Wahl der Basis für den Spline-Raum über eventuelle Rundungsfehler und damit über die praktische Einsetzbarkeit. Eine bestimmte Basis hat sich hier als am besten geeignet herausgestellt: sie ist numerisch stabil und erlaubt die Berechnung von Werten der Spline-Funktion mittels einer Drei-Term-Rekursion. Diese so genannten B-Spline-Basisfunktionen haben einen kompakten Träger, sie sind nur auf einem kleinen Intervall von Null verschieden. Änderungen der Koeffizienten wirken sich also nur lokal aus.

Carl de Boor weist in seinem Artikel[1] B(asic) Spline Basics darauf hin, dass der Begriff B-Spline ursprünglich für bestimmte Splines mit minimalem Träger eingeführt wurde, dass sich jedoch im Bereich von Computer Aided Geometric Design die etwas unglückliche Verwendung des Begriffs B-Spline für Splines eingebürgert hat, die in der B-Splinebasis dargestellt werden.

Definition

Die als Basis-Splines (B-Splines) bezeichneten Basisfunktionen [math]N_{i,p,\tau}\ (i=0,\ldots,n-p-2)[/math] des Grads [math]p[/math] mit Knotenvektor [math]\tau = (\tau_0,\ldots,\tau_{n-1}) \quad (n\ge 2\,p)[/math] sind von Curry und Schoenberg 1947 bis auf die Normierung in folgender Form eingeführt worden:[2]

[math] N_{i,p,\tau}(u) = (\tau_{i+p+1}-\tau_i)[\tau_i,\ldots,\tau_{i+p+1}]_{\bar u} (\bar u - u)_+^p [/math]

Dabei steht [math][\tau_i,\ldots,\tau_{i+p+1}]_{\bar u} (\bar u - u)_+^p[/math] für die [math](p+1)[/math]-ste dividierte Differenz der abgeschnittenen Potenzfunktion [math](\tau-u)_+^p[/math] bzgl. [math]\tau[/math]. Die dividierte Differenz [math][x_0,\ldots,x_d]_x f(x)[/math] ist der zu [math]x^d[/math] gehörige Koeffizient im (eindeutig gegebenen) Polynom [math]c_0 + c_1 x + c_2 x^2 + \ldots + c_d x^d[/math], das die Funktion [math]f[/math] an den Stellen [math]x_0,\ldots,x_d[/math] interpoliert. Stimmen die Werte von [math]k[/math] der Variablen [math]x_i[/math] überein, so interpoliert das Polynom die Funktion [math]f[/math] an dieser Stelle bis zur [math](k-1)[/math]-ten Ableitung (oskulierende Interpolation, engl.: `osculating interpolation').

In obiger Definition von [math]N_{i,p,\tau}(u)[/math] gilt [math](\bar u - u)_+^p=(\bar u - u)^p[/math] für [math]\bar u=\tau_i,\ldots,\tau_{i+p+1}[/math] solange [math]u[/math] kleiner [math]\tau_i[/math] bleibt. In diesem Bereich für [math]u[/math] ergibt sich also eine dividierte Differenz vom Grad [math]p+1[/math] für ein Polynom [math]p[/math]-ten Grades, die trivialerweise null ist. Auf der anderen Seite ist für [math]u\gt\tau_{i+p+1}[/math] die Funktion [math](\bar u - u)_+^p[/math] an allen für die dividierte Differenz auszuwertenden Stellen bei [math]N_{i,p,\tau}(u)[/math] gleich null, womit dort ebenfalls [math]N_{i,p,\tau}(u)=0[/math] gilt.

Der Träger von [math]N_{i,p,\tau}(u)[/math] liegt also innerhalb des Intervalls [math][\tau_i,\tau_{i+p+1}][/math].

Sind die Stellen [math]\tau_i[/math] alle voneinander verschieden, so ist die dividierte Differenz in [math]N_{i,p,\tau}[/math] eine endliche Linearkombination von Funktionen [math]u\mapsto (\bar u - u)_+^p[/math] mit verschiedenen Werten für [math]\bar u[/math] und als solche [math](p-1)[/math]-mal stetig differenzierbar.

Eigenschaften

Die folgenden Eigenschaften zeichnen die B-Splines [math]N_{i,p,\tau}(u)[/math] mit [math]i=0,\ldots,n-p-2[/math] im Raum der Splines [math]S_{p,\tau}[/math] mit Knotenvektor [math]\tau=(\tau_i)_{i=0}^{n-1}[/math] und Maximalgrad [math]p[/math] aus:

  • Nicht-Negativität: [math]N_{i,p,\tau}(u)\ge 0[/math]
  • Lokaler Träger: [math]N_{i,p,\tau}(u)\gt0[/math] falls [math]u\in]\tau_i,\tau_{i+p+1}[[/math] und [math]N_{i,p,\tau}(u)= 0[/math] falls [math]u\not\in [\tau_{i},\tau_{i+p+1}[[/math]
  • Zerlegung der Eins: [math]\sum_{i=0}^{n-p-2} N_{i,p,\tau}(u) = 1[/math] für [math]u\in[\tau_{p},\tau_{n-p-1}[[/math]

Effiziente Berechnung

Die Basis-Splines können effektiv mit der Rekursionsformel von de Boor/Cox/Mansfield berechnet werden:[3]

[math]N_{i,0,\tau}(u) = \begin{cases} 1, & u\in\left[\tau_i,\tau_{i+1}\right[ \\ 0, & \mbox{sonst} \end{cases}[/math]

und

[math]N_{i,p,\tau}(u) = \frac{u-\tau_{i}}{\tau_{i+p}-\tau_{i}}\,N_{i,p-1,\tau}(u) \;+\; \frac{\tau_{i+p+1}-u}{\tau_{i+p+1}-\tau_{i+1}}\,N_{i+1,p-1,\tau}(u)[/math] für [math]p\gt0[/math].

Die Elemente des Knotenvektors heißen auch Knotenpunkte (engl. knots) und müssen die Bedingungen [math]\tau_{i}\le\tau_{i+1}[/math] und [math]\tau_{i} \lt \tau_{i+p}[/math] erfüllen.

Zur Berechnung der Ableitung[4] eines B-Splines kann man obige Rekursionsformel mit der folgenden Vorschrift kombinieren:

[math]\frac{d}{du}N_{i,p,\tau}(u) = N'_{i,p,\tau}(u) = \frac{p}{\tau_{i+p}-\tau_{i}}N_{i,p-1,\tau}(u) - \frac{p}{\tau_{i+p+1}-\tau_{i+1}}N_{i+1,p-1,\tau}(u)[/math] für [math]p\geq1[/math].

Bemerkung:

Die Bedingungen an die Knotenpunkte [math]\tau_i[/math] erlauben es, dass in der Rekursionsformel unter Umständen 0 als Nenner auftritt (nämlich wenn [math]\tau_{i+p}=\tau_{i}[/math] bzw. [math]\tau_{i+p+1}=\tau_{i+1}[/math] gilt). Allerdings ist dann die Funktion [math]N_{i,p,\tau}[/math] bzw. [math]N_{i+1,p,\tau}[/math] automatisch die Nullfunktion. Auf die entsprechende Fallunterscheidung wird hier verzichtet, man ignoriere die entsprechenden Summanden in diesen Fällen (ersetze sie durch 0). Dies entspricht auch dem Grenzverhalten für z. B. [math]\tau_{i+p}\to\tau_{i}.[/math]

B-Spline-Kurve

Eine Spline-Kurve, deren Darstellung auf B-Splines beruht, nennt man B-Spline-Kurve. Bestimmt wird die Kurve durch so genannte De-Boor-Punkte, mit denen sich das Aussehen der Kurve leicht steuern lässt: Die Kurve liegt immer in der konvexen Hülle der De-Boor-Punkte, wird also von ihnen eingeschlossen.

Eine B-Spline-Kurve [math]C(u),\ u\in [\tau_{p},\tau_{n-p-1}[[/math] des Maximalgrads [math]p[/math] mit Knotenvektor [math]\tau[/math] (s. o.) und Kontrollpunkten [math]P_i\ (i=0,\ldots,n-p-2)[/math] (auch De-Boor-Punkte genannt) wird definiert durch

[math]C(u) = \sum_{i=0}^{n-p-2}\; P_i\,N_{i,p,\tau}(u)[/math].

Für Kurven in der Ebene sind die Kontrollpunkte 2-dimensional, für Kurven im Raum 3-dimensional.

Eigenschaften:

  • Lokalität: Der Kontrollpunkt [math]P_i[/math] beeinflusst die Kurve nur im Intervall [math][\tau_{i},\tau_{i+p+1}[[/math]
  • Endpunkt-Interpolation: Es ist [math]P_0 = C(\tau_{p})[/math], falls die ersten [math]p+1[/math] Knotenpunkte [math]\tau_0,\ldots,\tau_p[/math] gleich sind und [math]P_{n-p-2} = C(\tau_{n-1-p})[/math], falls die letzten [math]p+1[/math] Knotenpunkte [math]\tau_{n-1-p},\ldots,\tau_{n-1}[/math] gleich sind.

Eine ähnliche Darstellung haben Bézierkurven. Diese basieren nicht auf der oben genannten Basis, sondern auf den Bernsteinpolynomen. Genau wie bei B-Spline-Kurven die De-Boor-Punkte gibt es hier die Bézier-Punkte, die das so genannte Kontrollpolygon bilden und mit denen man die Kurve leicht graphisch darstellen kann.

Algorithmus von De Boor

Statt der Gleichung in obiger Definition für [math]C(u)[/math] wird zur effizienten Berechnung von B-Spline-Kurven [math]C(u)[/math] mit [math]u[/math] im Intervall [math][\tau_p,\tau_{n-p-1}[[/math] meist der im Folgenden beschriebene Algorithmus von De Boor verwendet.

1. Suche [math]i\in\{0,\ldots,n-p-2\}[/math], so dass [math]u\in[\tau_i,\tau_{i+1}[[/math] gilt.
   Gibt es keinen solchen Index [math]i[/math], so liegt [math]u[/math] außerhalb des Definitionsbereiches der Splinekurve [math]C[/math]
   und es muss extrapoliert oder eine Fehlermeldung ausgegeben werden.
2. Initialisiere Hilfsgrößen [math]q_{0,j}:=P_{i+j}[/math] für [math]j=0,\ldots,d[/math]
3. Führe für [math]l=1,\ldots,d[/math] und [math]j=0,\ldots,d-l[/math] folgende Teilschritte 3.1 bis 3.3 iterativ aus:
3.1. Im Ausnahmefall gleicher Knoten [math]\tau_{i+j}=\tau_{i+j+l}[/math] setze [math]q_{l,j}:=q_{l-1,j}[/math] und fahre mit dem nächsten Iterationsschritt [math]j:=j+1[/math] bei 3.1. fort.
3.2. Gilt dagegen [math]\tau_{i+j}\lt\tau_{i+j+l}[/math], so berechne [math]\alpha_{l,j}:=\frac{u-\tau_{i+j}}{\tau_{i+j+l}-\tau_{i+j}}[/math].
3.3. Berechne damit [math]q_{l,j}:=q_{l-1,j}\cdot(1-\alpha_{l,j}) + q_{l-1,j+1}\cdot\alpha_{l,j}[/math].
4. Als Endergebnis der Iteration erhält man [math]C(u):=q_{d,0}[/math].

Sind mehrere Splines, die sich nur durch die Koeffizienten [math]P_i[/math] unterscheiden, an derselben Stelle [math]u[/math] auszuwerten, so kann die in der Definition der B-Spline-Kurve aufgeführte Berechnungsvorschrift [math] C(u) = \sum_{i=0}^{n-p-2} P_i N_{i,p,\tau}(u)[/math] effizienter als der Algorithmus von De Boor sein.

B-Spline-Fläche

Eine B-Spline-Fläche der Maximalgrade [math]p[/math] und [math]q[/math] in der ersten beziehungsweise zweiten Variablen mit Knotenvektoren [math]\tau = (\tau_{0},\ldots,\tau_{n-1})\ (n\ge 2p+1)[/math] und [math]\mu = (\mu_{0},\ldots,\mu_{m-1})\ (m\ge 2q+1)[/math] und Kontrollpunkten (bzw. De Boor Punkten) [math]P_{ij}[/math] wird definiert durch

[math]C(u,v) = \sum_{i=0}^{\ n-p-2\ } \sum_{j=0}^{\ m-q-2\ }\; P_{ij}\,N_{i,p,\tau}(u)\,N_{j,q,\mu}(v)[/math]

Die Fläche ist definiert über dem Rechteck [math][\tau_{p},\tau_{n-1-p}] \times [\mu_{q},\mu_{m-1-q}][/math].

Eigenschaften:

  • Lokalität: Der Kontrollpunkt [math]P_{ij}[/math] beeinflusst die Fläche nur im Rechteck [math][\tau_{i},\tau_{i+p}]\times [\mu_{j},\mu_{j+q}][/math]
  • Endpunktinterpolation: Werden die ersten [math]p+1[/math] Knotenpunkte in [math]\tau[/math] auf den gleichen Wert gesetzt, die letzten [math]p+1[/math] Knotenpunkte in [math]\tau[/math] auf den gleichen Wert gesetzt, die ersten [math]q+1[/math] Knotenpunkte in [math]\mu[/math] auf den gleichen Wert gesetzt und die letzten [math]q+1[/math] Knotenpunkte in [math]\mu[/math] auf den gleichen Wert gesetzt, dann gilt die Endpunktinterpolation, d. h. [math]P_{0,0}=C(\tau_p,\mu_q)[/math], [math]P_{0,m-q-2}=C(\tau_p,\mu_{m-1-q})[/math], [math]P_{n-p-2,0}=C(\tau_{n-1-p},\mu_q)[/math] und [math]P_{n-p-2,m-q-2}=C(\tau_{n-1-p},\mu_{m-1-q})[/math]

Weitere Varianten und Verallgemeinerungen

Neben den B-Splines gibt es weitere Varianten von Splines, beispielsweise den kubisch hermiteschen Spline. Eine Verallgemeinerung von Splines sind NURBS, die durch stückweise rationale Funktionen anstelle von Polynomen beschrieben werden. Mit NURBS-Kurven sind Kreise exakt darstellbar.

Literatur

  • Carl de Boor: A Practical Guide to Splines. Springer Verlag, New York 1978, ISBN 0-387-90356-9 und ISBN 3-540-90356-9 (Rev. Aufl. von 2001 ISBN 0-387-95366-3)
  • Gerald Farin: Curves and Surfaces for CAGD. A practical guide. 5. Aufl. Academic Press, San Diego 2002 ISBN 1-55860-737-4
  • Günther Nürnberger: Approximation by Spline Functions. Springer Verlag, 1989, ISBN 3-540-51618-2 und ISBN 0-387-51618-2
  • Hartmut Prautzsch, Wolfgang Böhm, Marco Paluszny: Bezier and B-Spline Techniques. Springer Verlag, Berlin 2001 ISBN 3-540-43761-4
  • David Salomon: Curves and Surfaces for Computer Graphics. 2006 Springer Science+Business Media, Inc.; ISBN 0-387-24196-5
  • Isaac Jacob Schoenberg: Contributions to the problem of approximation of equidistant data by analytic functions. Quart. Appl. Math., vol. 4, S. 45–99 und 112–141, 1946.

Weblinks

Einzelnachweise

  1. De Boor C. (1993): B(asic)–spline basics. In: Piegl L. (ed.): Fundamental Developments of Computer-Aided Geometric Modelling. Academic Press, San Diego, 27–49.
  2. Carl de Boor: A Practical Guide to Splines. Springer Verlag Berlin, 2001
  3. http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/bspline-basis.html
  4. http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/bspline-derv.html

Kategorien: Geometrische Modellierung | Mathematische Funktion | Numerische Mathematik

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Spline (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.