Albert-Schweitzer-Gymnasium Kollegstufenjahrgang 2001/2003 Erlangen Facharbeit aus dem Fach Mathematik Thema: Splinefunktionen und ihre Anwendung Verfasser: Moritz Lenz Leistungskurs: Mathematik 1 Kursleiter: OStR Bernhardt Abgabetermin: 3. Februar 2003 schriftliche Arbeit: Erzielte Note: Erzielte Punkte: mündliche Prüfung: in Worten: in Worten: (einfache Wertung) Abgabe beim Kollegstufenbetreuer am: 28. Januar 2003 (Unterschrift des Kursleiters)
Moritz Lenz 2 Splinefunktionen Inhaltsverzeichnis Inhaltsverzeichnis 2 1 Überblick 3 2 Forderungen für Interpolationsverfahren 3 3 Splinefunktionen 3 3.1 Allgemein......................................... 3 3.2 Splines 1. Grades..................................... 4 3.3 Splines 2. Grades..................................... 5 3.4 Splines 3. Grades..................................... 6 3.4.1 Sequenzielle Splinefunktionen.......................... 7 3.4.2 Natürliche Splinefunktionen........................... 8 3.5 Splines höheren Grades................................. 10 4 Beispiele für Splinefunktionen 10 4.1 Splines ersten Grades................................... 11 4.2 Splines zweiten Grades.................................. 11 4.3 Splines dritten Grades.................................. 11 4.3.1 sequenzielle Splinefunktionen.......................... 12 4.3.2 Natürliche Splinefunktionen........................... 12 5 Vergleich mit Polynominterpolation 13 5.1 Krümmung........................................ 14 5.2 Extrapolation....................................... 14 5.3 Rechnerischer Aufwand................................. 15 6 Anwendungen 15 6.1 Darstellung von Messwerten............................... 15 6.2 3D - Grafik........................................ 15 6.3 Beschreibung von Schriftarten.............................. 16 6.4 Holzbearbeitung..................................... 16 7 Ausblick 17 8 Literaturverzeichnis 18
Moritz Lenz 3 Splinefunktionen 1 Überblick Die Mathematik gehört, obgleich sie eine reine Geisteswissenschaft ist, unbestritten zu den wichtigsten Wissenschaften der heutigen Zeit. Diesen Status erreichte sie dadurch, dass sie Werkzeuge für praktischen Anwendungen bereitstellte. Mit einem dieser Werkzeuge, mit Splinefunktionen, befasst sich die vorliegende Facharbeit. Splinefunktionen werden zum interpolieren gebraucht, also zum Aufstellen einer Funktion zu gegebenen einzelnen Punkten. Es sollen jedoch nur wenige verschiedene Splinefunktionen behandelt werden, da eine ausführlichere Behandlung den Rahmen jeder Facharbeit sprengen würde. Im folgenden Abschnitt wird die Frage beantwortet, welche Eigenschaften interpolierende Funktionen sinnvollerweise aufweisen sollten. Abschnitt 3 stellt Splinefunktionen verschiedenen Grades vor. Darauf folgen Beispiele, und mit einem Vergleich zwischen Polynominterpolation und Splinefunktionen schließt diese Facharbeit. 2 Forderungen für Interpolationsverfahren Gegeben sei eine Menge M von n Punkten P i (x i, y i ) (sogenannte Stützpunkte) mit x i, y i R für i = 0, 1..., n 1 und der Eigenschaft x i 1 < x i für alle i = 1, 2,..., n 1 (2.0.1) Gesucht ist eine Funktion f (x), die durch alle Stützpunkte geht und stetig ist, später wird zweimalige Differenzierbarkeit gefordert. 3 Splinefunktionen 3.1 Allgemein Splinefunktionen k-ten Grades sind abschnittsweise definierte Funktionen, die aus Polynomen höchstens k-ten Grades bestehen. Die Definitionsbereiche der einzelnen Polynomfunktionen sind durch die Abszissen der Stützpunkte festgelegt. Im Hinblick auf die Stetigkeit müssen nur die Stützpunkte betrachtet werden, da die einzelnen Polynomfunktionen immer stetig (und beliebig oft diffe-
Moritz Lenz 4 Splinefunktionen renzierbar) sind. Allgemein gilt für Splinefunktionen also p 0 (x) für x 0 x < x 1 p 1 (x) für x 1 x < x 2. f(x) = p i (x). p n 2 (x). für x i x < x i 1. für x n 2 x x n 1 (3.1.1) wobei alle p i (x) Polynomfunktionen höchstens k-ten Grades sind, bei denen jeweils x durch x x i ersetzt ist, also anschaulich an der x-achse um x i nach links verschoben sind: k p i (x) = a ij (x x i ) j = a ik (x x i ) k + + a i1 (x x i ) + a i0 j=0 Auch ohne die Verschiebung der Teilfunktionen (bei x i > 0 nach links) wäre die Herleitung und Berechnung der Parameter problemlos möglich. Jedoch wäre beides deutlich aufwändiger. Da es n 1 Teilfunktionen mit jeweils k +1 Parametern gibt, sind insgesamt (n 1)(k + 1) Parameter relevant, wobei jedoch immer a i0 = y i gilt. Effektiv müssen also bei jeder Splinefunktion k(n 1) Parameter berechnet werden. Die Anzahl der Parameter ist gleichzeitig die Anzahl der Eigenschaften der Splinefunktion, wobei ich hier unter Eigenschaft den Wert der Ordinate, der ersten oder der zweiten Ableitung bei gegebener Abszisse verstehe. 3.2 Splines 1. Grades Der einfachste Fall ist k = 1, die Punkte werden durch Geraden miteinander verbunden. Die Gleichung der Splinefunktion lautet dann
Moritz Lenz 5 Splinefunktionen y 1 y 0 x 1 x 0 (x x 0 ) + y 0 für x [x 0 ; x 1 [.. f(x) = y i+1 y i x i+1 x 1 (x x i ) + y i für x [x i ; x i+1 [.. y n 2 y n 1 x n 2 x n 1 (x x n 2 ) + y n 2 für x [x n 2 ; x n 1 ] Diese Funktion ist innerhalb ihres Definitionsbereiches stetig, jedoch an den Stützpunkten nur in Spezialfällen differenzierbar. 3.3 Splines 2. Grades Der einfachste Fall differenzierbarer Splinefunktionen sind Splines 2-ten Grades. Wenn jede Teilfunktion am linken Rand ihres Definitionsbereiches die Steigung der vorhergehenden Teilfunktion übernimmt, ist f differenzierbar und jede außer der ersten Teilfunktion ist durch drei Angaben (Steigung am linken Rand, Funktionswert rechts und links) eindeutig definiert. Für die erste Teilfunktion läßt sich die Steigung willkürlich wählen, und wird hier gleich Null gesetzt. Man erhält also den Ansatz p i (x) = a i2 (x x i ) 2 + a i1 (x x i ) + a i0 p i (x i ) = a i2 (x i x i ) 2 + a i1 (x i x i ) + a i0 = y i p i(x i ) = 2a i2 (x i x i ) + a i1 = p i 1(x i ) p i (x i+1 ) = a i2 (x i+1 x i ) 2 + a i1 (x i+1 x i ) + a i0 = y i+1 Daraus resultiert a 01 = 0 a i0 = y i a i1 = p i 1(x i ) = 2a i 1,2 (x i x i 1 ) + a i 1,1 für i = 1,..., n 1 a i2 = y i+1 y i (x i+1 x i ) 2 a i1 x i+1 x i für i = 0,..., n 1 Da diese Splinefunktionen manchmal sehr ausgeprägt oszillieren, ist es oft sinnvoll, in der ersten Teilfunktion nicht die erste, sondern die zweite Ableitung gleich Null zu setzen. Man erhält als erste Teilfunktion eine Gerade und damit a 01 = y 1 y 0 x 1 x 0 berechnen sich die Werte der Parameter genauso wie oben. sowie a 02 = 0. Ansonsten
Moritz Lenz 6 Splinefunktionen 3.4 Splines 3. Grades Um einen glatten Kurvenverlauf zu gewährleisten, fordert man zweimalige Differenzierbarkeit. Aufgrund der Forderung zweimaliger Differenzierbarkeit werden Splinefunktionen mindestens 3. Grades benötigt. Denn mit den Koordinaten der beiden Anschlussstellen sowie Steigung und Krümmung des Graphen sind an einer Seite bereits vier Vorgaben vorhanden. Um eine Splinefunktion dritten Grades zu erhalten, müssen wie in Abschnitt 3.1 erwähnt, bei n Stützpunkten 4(n 1) Eigenschaften beziehungsweise Parameter festgelegt werden. Die folgende Tabelle zeigt, welche Forderungen wie viele Parameter beziehungsweise Eigenschaften verbrauchen : Forderung als Gleichung Anzahl der Eigenschaften Stützpunkte Element des Graphen p i (x 1 ) = y i n 1 Stetigkeit p i (x i+1 ) = p i+1 (x i+1 ) n 1 Differenzierbarkeit: p i (x i+1) = p i+1 (x i+1) n 2 zweimalige Differenzierbarkeit p i (x i+1) = p i+1 (x i+1) n 2 Summe 4(n 1) 2 Es bleiben also zwei Eigenschaften zum Festlegen übrig. Es bieten sich drei Möglichkeiten an, dies zu tun: 1. Man setzt jeweils die erste und die zweite Ableitung an der ersten und an dem letzten Stützpunkt gleich. Dieses Vorgehen empfiehlt sich, wenn y 0 = y n gilt und man Wert auf Symmetrie legt. Die resultierende Funktion wird periodische Splinefunktion genannt. 2. Legt man den Wert der ersten und zweiten Ableitung am ersten Stützpunkt willkürlich fest (normalerweise setzt man sie gleich Null), lassen sich die weiteren Parameter sehr effizient berechnen. Aus Ermangelung eines besseren Namens nenne ich die resultierende Funktion im Weiteren sequenziell. 3. Setzt man die zweite Ableitung am ersten und letzten Stützpunkt gleich Null, erhält man natürliche Splinefunktionen, die eine sehr niedrige Gesamtkrümmung aufweisen (siehe dazu auch Abschnitt 5.1). Aus Platzgründen (und weil sich die erste und die dritte Variante in der Herleitung kaum unterscheiden), gehe ich im Folgenden nur auf die sequenzielle und die natürliche Splinefunktion ein.
Moritz Lenz 7 Splinefunktionen 3.4.1 Sequenzielle Splinefunktionen Herleitung Um die Koeffizienten der einzelnen Teilfunktionen zu bestimmen, kann man die Forderungen der Stetigkeit und zweimaliger Differenzierbarkeit auf die Schnittstellen der Teilfunktionen anwenden und erhält somit p i (x i ) = y i für 0 i n 1 (3.4.1) p i (x i+1 ) = y i+1 für 0 i n 2 (3.4.2) p i(x i ) = p i 1(x i ) für 1 i n 1 (3.4.3) p i (x i ) = p i 1(x i ) für 1 i n 1 (3.4.4) Aus (3.4.1) folgt a i0 = y i. Durch Ableiten der Polynomfunktion erhält man p i (x) = 3a i3 (x x i ) 2 + 2a i2 (x x i ) + a i1 und speziell p i (x i) = a i1, sowie p i (x) = 6a i3(x x i ) + 2a i2 beziehungsweise p i (x i) = 2a i2. Um die Notation zu verkürzen führt man h i := x i+1 x i als horizontalen Abstand der Stützpunkte ein und erhält die Gleichungen Für a i3 erhält man a i0 = y i a i3 h 3 i + a i2 h 2 i + a i1 h i + a i0 = y i+1 a i1 = 3a i 1,3 h 2 i 1 + a i 1,2 h i 1 + a i 1,1 2a i2 = 6a i 1,3 h i 1 + 2a i 1,2 a i3 = y i+1 y 1 h 3 a i1 i h 2 a i2 i h i (Forderung (2.0.1) stellt sicher, dass h i 0, man kann also durch h i teilen). Man könnte problemlos a i1 und a i2 durch die Koeffizienten der vorhergehenden Teilfunktion ersetzen. Dann hätte man alle Koeffizienten dieser Teilfunktion durch die der vorhergehenden Teilfunktion ausgedrückt. Das würde aber die Berechnung umfangreicher und für i = 0 unmöglich machen. Wenn die Stützpunkte äquidistant sind (h = h i = h i 1 = const), das heißt anschaulich: den gleichen horizontalen Abstand haben, gilt a i0 = y i (3.4.5) a i1 = 3a i 1,3 h 2 + a i 1,2 h + a i 1,1 (3.4.6) a i2 = 3a i 1,3 h + a i 1,2 (3.4.7) a i3 = y i+1 y 1 h 3 a i1 h 2 a i2 h (3.4.8) Zusammenfassung In beiden Fällen (äquidistant wie inäquidistant) sind die Parameter der Teilfunktion p i (x) durch y i, y i+1 sowie durch die Parameter der vorhergehenden Teilfunktion festgelegt.
Moritz Lenz 8 Splinefunktionen 3.4.2 Natürliche Splinefunktionen Herleitung Um die Koeffizienten einer natürlichen Splinefunktion zu berechnen, wird in [2] 1 der folgende Ansatz beschrieben: p i (x i ) = y i für i = 0,..., n 1 (3.4.9) p i (x i ) = p i 1 (x i ) für i = 1,..., n 1 (3.4.10) p i(x i ) = p i 1(x i ) für i = 1,..., n 1 (3.4.11) p i (x i ) = p i 1(x i ) für i = 1,..., n 1 (3.4.12) (Um die Herleitung zu erleichtern, denkt man sich eine zusätzliche Teilfunktion p n 1 dazu, die nicht zu f gehört.) Wie vorher folgt aus (3.4.9): a i0 = y i. Diesmal empfiehlt es sich, d i := x i x i 1 (im Gegensatz zu h i := x i+1 x i ) einzuführen. Dann erhält man aus (3.4.12) 2a i2 = 2a i 1,2 + 6a i 1,3 (x i x i 1 ) a i,3 = a i+1,2 a i2 3d i+1 a i 1,3 = a i2 a i 1,2 3d i (Forderung (2.0.1) stellt sicher, dass d i 0). Weiterhin erhält man aus (3.4.9) mit Einsetzen der Gleichung für a i 1,3 : a i0 = a i 1,3 d 3 i + a i 1,2 d 2 i + a i 1,1 d i + a i 1,0 = 1 3 d2 i (a i 1,2 a i2 ) + a i 1,2 d 2 i + a i 1,1 d i + a i 1,0 und nach a i 1,1 aufgelöst und durch Ersetzen von i 1 durch i: Aus (3.4.11) erhält man = 1 3 d2 i (2a i 1,2 a i2 ) + a i 1,1 d i + a i 1,0 a i 1,1 = a i0 a i 1,0 d i 1 3 d i(2a i 1,2 + a i2 ) a i1 = a i+1,0 a i0 d i+1 1 3 d i+1(2a i2 + a i+1,2 ) (3.4.13) a i1 = 3a i 1,3 d 2 i + 2a i 1,2 d i + a i 1,1 = (a i2 a i 1,2 )d i + 2a i 1,2 d i + a i0 a i 1,0 d i 1 3 d i(2a i 1,2 + a i2 ) = 1 3 d i(a i 1,2 + 2a i2 ) + a i0 a i 1,0 d i 1 Literaturverzeichnis siehe letzte Seite
Moritz Lenz 9 Splinefunktionen Mit (3.4.13) gleichgesetzt erhält man 1 3 d i(a i 1,2 + 2a i2 ) + a i0 a i 1,0 d i = a i+1,1 a i,1 d i+1 1 3 d i+1(2a i2 + a i+1,2 ) 1 3 d i+1(2a i2 + a i+1,2 ) + 1 3 d i(a i 1,2 + 2a i2 ) = a i+1,1 a i,1 d i+1 ( ai+1,0 a i0 a i+1,2 d i+1 + 2(d i + d i+1 )a i2 + a i 1,2 d i 1 = 3 d i+1 a i0 a i 1,0 d i a i0 a i 1,0 d i Das ist ein Gleichungssystem mit n 2 Unbekannten (Die Unbekannten sind a 12,..., a n 2,2 ; a 00,..., a n 1,0 sind bekannt). Um a 12,..., a n 2,2 zu berechnen, werden a 02 und a n 1,2 benötigt, die ebenfalls Bestandteil des Gleichungssystems sind, da dieses für i = 1,..., n 2 definiert ist. Bei natürlichen Splinefunktionen erhält man wegen der Bedingung, dass die Krümmung an den äußeren Rändern des Definintionsbereiches Null ist: f (x 0 ) = 0 p 0(x 0 ) = 0 a 02 = 0 f (x n 1 ) = 0 p n 1(x n 1 ) = 0 a n 1,2 = 0 Damit ist das Gleichungssystem eindeutig bestimmt, und da für jeden Parameter a i2 auch die Parameter a i 1,2 und a i+1,2 in der selben Zeile des Gleichungssystems auftauchen, liegt es in Tridiagonalform vor. Damit ist es in linearer Zeit lösbar 2. Zur Veranschaulichung hier ein Beispiel mit 6 äquidistanten Stützpunkten mit d = 1 (das ist der häufigste Fall): i = 1 : 4a 12 +a 22 =3 (a 20 2a 10 + a 00 ) i = 2 : a 12 +4a 22 +a 32 =3 (a 30 2a 20 + a 10 ) i = 3 : a 22 +4a 32 +a 42 =3 (a 40 2a 30 + a 20 ) i = 4 : a 32 +4a 42 =3 (a 50 2a 40 + a 30 ) ) Zusammenfassung sich, zuerst die a i0 zu berechnen: Um alle Parameter einer Splinefunktion zu berechnen, empfiehlt es a i0 = y i für 0 i n 1 Danach löst man das lineare Gleichungssystem ( ai+1,0 a i0 a i+1,2 d i+1 + 2(d i + d i+1 )a i2 + a i 1,2 d i 1 = 3 d i+1 a ) i0 a i 1,0 d i mit den zusätzlichen Bedingungen a 02 = 0 und a n 1,2 = 0 nach a 12,..., a n 2,2. Danach erhält man durch a i3 = a i+1,2 a i2 3d i+1 2 Ein Gleichungssystem mit n Unbekannten heißt in linearer Zeit lösbar, wenn es Konstanten a, b gibt, für die das System in höchstens a(n + b) Einzelschritten für beliebig große n lösbar ist.
Moritz Lenz 10 Splinefunktionen die a i3 sowie aus der Beziehung die noch fehlenden a i1. a i1 = a i+1,0 a i0 d i+1 1 3 d i+1(2a i2 + a i+1,2 ) Anmerkungen: 1. Aus der Herleitung folgt unmittelbar, dass eine natürliche Splinefunktion durch ihre Stützpunkte eindeutig bestimmt ist. 2. Bei äquidistanten Stützpunkten vereinfacht sich vor allem das Gleichungssystem, man erhält a i+1,2 + 4a i2 + a i 1,2 = 3 a i+1,0 2a i0 + a i 1,0 d 2 (3.4.14) 3. In [1] wird ein ähnlicher, ebenfalls interessanter Ansatz beschrieben, bei dem anstatt mit Parametern mit den Funktionswerten und den zweiten Ableitungen gerechnet, aus denen man dann die Parameter rekonstruieren kann. Die Herleitung dieser Gleichungen soll hier nicht behandelt werden, da sie den beiden bisherigen Herleitungen sehr ähnlich ist. Das Resultat bei äquidistanten Stützpunkten ist das Gleichungssystem y i 1 + 4y i + y i+1 = 6 y i+1 2y i + y i 1 h 2 3.5 Splines höheren Grades Bei Splinefunktionen höheren Grades müssen prinzipiell k 1 Parameter festgelegt werden. Da der rechnerische Aufwand sehr groß wird (obwohl die Parameter auch weiterhin in linearer Zeit zu berechnen sind) und die Funktionen höheren Grades zu hohen Gesamtkrümmungen führen, werden sie eher selten verwendet (und sollen in dieser Arbeit auch nicht weiter vertieft werden). 4 Beispiele für Splinefunktionen Die verschiedenen Splinefunktionen sollen hier an Beispielen mit vier äquidistanten Punkten 3 gezeigt werden. Abbildung 1 zeigt die Koordinaten dieser Punkte. 3 Die Koordinaten der Punkte wurden vom Kursleiter vorgegeben
Moritz Lenz 11 Splinefunktionen i 0 1 2 3 x i 0 1 2 3 y i 1 3 1 2 Abbildung 1: Die Koordinaten der Stützpunkte für die nächsten Beispiele i 0 1 2 a i0 1 3 1 a i1 4 4 8 a i2 0 6 9 3 2 y 1 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 x 1 Abbildung 2: Parameter und Graph der Splinefunktion 2. Grades 4.1 Splines ersten Grades Die Gleichung für die Splinefunktion ersten Grades kann man sofort erstellen: 4x 1 für x [0; 1[ f(x) = 2(x 1) + 3 für x [1; 2[ 1 2 (x 2) + 1 für x [2, 3] 4.2 Splines zweiten Grades Auch die Parameter für die Splinefunktionen zweiten Grades lassen sich mit geringem Aufwand berechnen. Abbildung 2 zeigt die Parameter und den Graphen der Funktion, deren erste Teilfunktion eine Gerade ist. Man sieht, dass sich zwischen x = 2 und x = 3 deutlich kleinere Funktionswerte ergeben als die y-werte der benachbarten Stützpunkte. 4.3 Splines dritten Grades Jetzt werden die Parameter für die Splinefunktionen dritten Grades für sequenzielle und natürliche Splinefunktionen berechnet. Periodische Splines machen keinen Sinn, da Anfangs- und Endpunkt unterschiedliche y-koordinaten haben.
Moritz Lenz 12 Splinefunktionen 0 x 10 y 20 30 Abbildung 3: Die sequenzielle Splinefunktion 4.3.1 sequenzielle Splinefunktionen Da die Stützpunkte äquidistant sind, können die Gleichungen (3.4.5) bis (3.4.8) herangezogen werden, h = 1. Weiter ist a 01 = 0 und a 02 = 0 gegeben. Alle weiteren Parameter werden durch einfache Rechnung ermittelt. Sie lauten: a 00 = 1 a 01 = 0 a 02 = 0 a 03 = 4 a 10 = 3 a 11 = 12 a 12 = 12 a 13 = 26 a 20 = 1 a 21 = 54 a 22 = 66 a 23 = 121 Die Funktion lautet also 4x 3 1 für 0 x < 1 f(x) = 26 (x 1) 3 + 12 (x 1) 2 + 12 (x 1) + 3 für 1 x < 2 121 (x 2) 3 54 (x 2) 2 66 (x 2) + 3 für 2 x 3 Weil der Graph (Abbildung 3) bei x = 0 eine waagrechte Tangente hat und der nächste Punkt wesentlich höher liegt, wird die Steigung ab etwa x = 3 4 sehr groß, die Funktion erreicht bei x = 15+ 30 13 1, 58 mit einem Funktionswert von ungefähr 8,92 ihr Maximum. Danach fällt sie sehr stark und erreicht bei (2, 60 31, 90) (ungenauer Wert) ihr Minimum. Die Funktion schwankt also sehr stark. Das ist für die meisten Anwendungen inakzeptabel. 4.3.2 Natürliche Splinefunktionen Die Berechnung der Parameter setzt das Lösen des Gleichungssystems (3.4.14) voraus. Mit d = 1 sowie a i0 = y i rechnet man zuerst die rechten Seiten aus und erhält:
Moritz Lenz 13 Splinefunktionen i a i3 a i2 a i1 a i0 3 i = 0 1 4 5 0 5 4 5 1 i = 1 3 5 2 5 2 5 3 i = 2 1 1 5 3 3 5 1 2 5 1 y 2 1 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 x 1 Abbildung 4: Parameter und Verlauf der natürlichen Splinefunktion a 02 = 0 i = 1: a 02 +4a 12 +a 22 = 18 i = 2: a 12 +4a 22 +a 32 = 9 Beziehungsweise vereinfacht: a 32 = 0 4a 12 + a 22 = 18 a 12 + 4a 22 = 9 Es fällt nicht schwer, dieses System zu lösen, man erhält a 22 = 18 5 sowie a 12 = 27 5. Die weiteren Parameter werden durch einfache Rechnung ermittelt. Abbildung 4 zeigt alle Parameter in der Übersicht sowie den Verlauf der natürlichen Splinefunktion. Sie verläuft so ähnlich, wie wenn man per Hand eine Kurve durch die gegebenen Punkte zeichnen würde. 5 Vergleich mit Polynominterpolation Anstatt zwischen den einzelnen Stützpunkten abschnittsweise definierte Polynomfunktionen zu legen, kann man auch eine einzige ganzrationale Funktion n 1-ten Grades durch alle Punkte legen. der Ansatz ist im Prinzip der folgende: n 1 g(x) = a j x j a i R j=0 sowie g(x i ) = y i für alle i = 0, 1,..., n 1 (In der Praxis werden die Koeffizienten nicht durch einfaches Aufstellen des Gleichungssystems ausgerechnet, was hier jedoch keine Rolle spielen soll)
Moritz Lenz 14 Splinefunktionen i 0 1 2 3 4 5 6 x i 0 1 2 3 4 5 6 y i 0 0 0 1 0 0 0 1 0.8 0.6 y 0.4 0.2 0 1 2 3 4 5 6 x 0.2 0.4 Abbildung 5: Links: Die Koordinaten der Stützpunkte. Rechts: Die Punkte mit Splines und einem Polynom interpoliert 5.1 Krümmung Die Unterschiede der Krümmung sollen hier an einem Beispiel verdeutlicht werden. Abbildung 5 zeigt die Koordinaten der dazu gewählten Stützpunkte sowie die Spline- und Polynomfunktion durch die die Punkte. Der Graph der Polynomfunktion ist derjenige Graph, der bei x = 1 2 den größeren Funktionswert aufweist. Man sieht deutlich, dass die Polynomfunktion sehr stark oszilliert (das ist besonders häufig bei äquidistanten Stützpunkten der Fall), während die Splinefunktion recht ruhig verläuft. Das deutet auf eine geringe Gesamtkrümmung der natürlichen Splinefunktion hin. Tatsächlich läßt sich beweisen (siehe Literaturhinweis in [2]), dass die natürlichen Splinefunktionen eine minimale Gesamtkrümmung aufweisen. Wenn also V den Vektorraum aller zweimal differenzierbaren Funktionen ist, die durch alle Stützpunkte geht und deren Quadrat ihrer zweiten Ableitung integrierbar ist, so gilt für die natürliche Splinefunktion f: x n 1 x 0 (f (x)) 2 dx x n 1 x 0 ( g (x) ) 2 dx für alle g V 5.2 Extrapolation Während Splinefunktionen zur Interpolation hervorragend geeignet sind, soll hier ein Nachteil nicht verschwiegen werden: sie sind zum Extrapolieren im Vergleich zu Polynomfunktionen ungeeignet. So ist in [1] ein Beispiel zur Extrapolation aufgeführt, das mit Splinefunktionen nicht möglich wäre: Um π näherungsweise zu berechnen, wird eine Funktion g(m) verwendet, für die bekannt ist, dass g(0) = π. Da der Funktionsterm von g nicht bekannt ist, sondern nur einzelne Funktionswerte mit m > 0, wird eine Polynomfunktion p(m) durch die bekannten Punkte gelegt, und p(0) als Näherungswert für π verwendet. In
Moritz Lenz 15 Splinefunktionen diesem Fall wären Splinefunktionen völlig ungeeignet. 5.3 Rechnerischer Aufwand Wie bereits erwähnt ist die Berechnung der Koeffizienten einer Splinefunktion in linearer Zeit möglich. Auch die Koeffizienten eines interpolierenden Polynoms lassen sich nach Newton oder Lagrange mit Hilfe von Computern schnell berechnen. Bei der Berechnung der Funktionswerte müssen bei Splines pro Funktionswert eine konstante Zahl von Operationen durchgeführt werden, bei Polynomfunktionen ist die Anzahl der durchzuführenden Operationen proportional zu dem Grad des Polynoms und damit zur Anzahl der Stützpunkte. Wenn also eine große Zahl von Funktionswerten berechnet werden soll, sind Splines besser geeignet. 6 Anwendungen Es gibt zahlreiche Anwendungsmöglichkeiten für Splinefunktionen, besonders bei Computersoftware. Aber auch in vielen anderen Bereichen werden Splinefunktionen, besonders die dritten Grades, eingesetzt. 6.1 Darstellung von Messwerten Oft werden Messwerte von Computern in regelmäßigen Abständen aufgenommen und am Bildschirm ausgegeben. Um aus recht weit auseinanderliegenden, gemessenen Punkten eine schöne, glatte Kurve zu erzeugen, sind die in 3.4.1 angesprochenen sequenziellen Splinefunktionen sehr gut geeignet. Hier sind natürliche Splines und Polynominterpolation ungeeignet, da sich bei diesen Methoden bei neu dazugekommenen Messwerten die Funktionswerte zwischen den alten Messwerten ändern. Wenn jedoch bereits gemessene Daten grafisch dargestellt werden sollen, sind natürliche Splinefunktionen sehr gut geeignet. Wenn zum Beispiel Dreidimensionale Geländekarten am Computer dargestellt werden, geschieht das fast immer mit natürlichen Splines. Dort wird in xy- und xz-richtung unabhängig voneinander interpoliert. 6.2 3D - Grafik In immer mehr Computeranwendungen gibt es aufwändige 3D-Grafiken, es werden also dreidimensionial modellierte Gegenstände aus verschiedenen Richtungen gezeigt. Dafür
Moritz Lenz 16 Splinefunktionen werden die Koordinaten im Raum auf die Bildschirmkoordinaten umgerechnet. Weil für die schöne Anzeige von Rundungen die Koordinaten sehr vieler Punkte berechnet werden müßten, versucht man nur wenige Punkte abzubilden und die Zwischenwerte zu interpolieren. Es kommt nicht auf ein möglichst genaues Bild an, sondern darauf, dass das Bild dem Betrachter plausibel erscheint. Durch die geringe Gesamtkrümmung sind natürliche Splinefunktionen sehr gut geeignet. 6.3 Beschreibung von Schriftarten Das Programm Metafont verwendet für die qualitativ hochwertige Beschreibung einzelner Zeichen in Schriftarten Splinefunktionen. Es werden einzelne Punkte angegeben, durch die genau definierte Splinefunktionen gelegt werden. Wenn nun das Zeichen in einer anderen Größe ausgegeben werden soll als ursprünglich vorgesehen, werden die Koordinaten der Punkte mit dem Faktor skaliert und die Splinefunktion erneut berechnet. Das hat gegenüber dem sonst gebräuchlichen Verfahren über den Buchstaben wird ein Raster gelegt und dann gespeichert, welcher Punkt des Rasters auf dem Papier geschwärzt werden muss den Vorteil, dass das Zeichen ohne unschöne Nebeneffekte 4 an eine andere Größe angepasst werden kann (siehe [3], Abschnitt 9) 6.4 Holzbearbeitung In [1] heißt es: Historische Notiz: Wird ein Holzbrett durch äußeren Zwang (durch Klemmen) in eine Form gebracht, so nimmt das Holz die Form eines kubischen 5 Splines an. Derartiges war früher wichtig beim Segelschiffbau, woher auch der Name Spline kommen soll. Zwar werden heute nur noch wenige Holzschiffe gebaut, doch gibt es inzwischen andere Anwendungen. So kann das Verhalten verbogenen Holzes beim Bau von Kunstwerken, Musikinstrumenten oder Designermöbeln mit Hilfe von Splinefunktionen vorhergesagt werden. 4 Durch das Vergrößern ist das Raster nicht mehr fein genug. Man sieht also einzelne Rechtecke, die nicht zu dem Zeichen gehören, sondern nur aus technischen Gründen dort sind. 5 genauer: die Form einer natürlichen Splinefunktion (Anmerkung des Autors)
Moritz Lenz 17 Splinefunktionen 7 Ausblick Diese Facharbeit hat ein kleines, aber wichtiges Teilgebiet der Interpolation mit Splinefunktionen beleuchtet. Daneben gibt es noch sehr viele weitere Arten von Splines. So kann man mit parametrischen Splines der Form f : t (x(t), y(t)) auch bei Punkten interpolieren, die die Bedingung (2.0.1) nicht erfüllen. Splines höheren Grades bieten die Möglichkeit, an beliebigen Punkten die Steigung vorzugeben. Die Fülle der möglichen Funktionen eröffnet Anwendungsgebiete, die weit über die hier vorgestellten Gebiete hinausgehen.
Moritz Lenz 18 Splinefunktionen 8 Literaturverzeichnis [1] Meyer (Vorname unbekannt), Interpolation, Gauss-Approximation, im Internet unter http://www.fbi.fh-darmstadt.de/ meyer/skripte/num/numerik3.pdf [2] Hennauer, S., Facharbeit Interpolation, 1998, http://www.stud.tu-muenchen.de/ sven.hennauer/facharbeit.htm [3] Raichle, B., Nieprasck, R., Hafner, T., Fragen und Antworten (FAQ) über das Textsatzsystem TEX und DANTE, Deutschsprachige Anwendervereinigung TEX e. V., 2001, Zeilen 7482ff, http://www.dante.de/faq/de-tex-faq/txt/de-tex-faq.txt Die gesamte Literatur ist auf der beigelegten CD-ROM im Verzeichnis Literatur enthalten. Ich erkläre hiermit, dass ich die Facharbeit ohne fremde Hilfe angefertigt und nur die im Literaturverzeichnis angeführten Quellen und Hilfsmittel benützt habe. Erlangen, den 30. Januar 2003.