Approximation einer Funktion durch die Interpolation mit kubischen Splines

Neue Frage »

Mr. Bird Auf diesen Beitrag antworten »
Approximation einer Funktion durch die Interpolation mit kubischen Splines
Guten Tag,

ich habe das Problem, dass ich eine Facharbeit über das Thema, welches ich als Titel bezeichnet habe, schreiben muss und es dummerweise einfach nicht verstehe. Ich habe im Internet und in meiner Stadtbibliothek nach Literatur gesucht, und natürlich auch gefunden!

Mein "Knackpunkt" an der Sache ist, dass ich auf Teufel komm raus die Koeffizienten nicht berechnen kann.
Auf:
http://www.arndt-bruenner.de/mathe/scripts/kubspline.htm
sieht man unten eine Koeffizientenmatrix für die 's.
Ich gebe nun vor, dass ich 4 Knotenpunkte habe. Also, wie ich verstanden habe, n=4 ist. Also habe ich und sowie die dazugehörigen y-Werte. Mein Problem ist, dass wenn ich versuche einfach die Werte für die Matrix herauszufinden, ich irgendwie immer darauf stoße, dass ich brauche, welche ich aber gar nicht gegeben habe.

Zur genaueren Definition :
Ich suche nach "natürlichen kubischen Splines".. Also die Randbedingung gilt.

Außerdem noch:
Keine Ahnung wie ich mit dieser Matrix, selbst wenn ich die Werte für hätte weiter machen müsste. Ich habe in einem Buch in Verbindung dazu Vektoren gesehen, womit ich aber noch nie gearbeitet habe.
Auf der Seite steht "Die Koeffizientenmatrix der LINKEN SEITE des Gleichungssystems stellt sich für wie folgt dar".. Da frage ich mich, wie sieht's auf der rechten Seite aus?!

Falls es von Belang ist, hier die Knotenpunkte:


Danke im voraus für die Hilfe,

mit freundlichen Grüßen

Mr. Birdie
tigerbine Auf diesen Beitrag antworten »
RE: Approximation einer Funktion durch die Interpolation mit kubischen Splines
Ich sage dir gleich, "schön" ist die Theorie nicht. Aber hier steht, wie man es berechnet. Augenzwinkern

[WS] Spline-Interpolation - Theorie

Was genau ist Thema deiner Facharbeit? Ich rechne das nun erst mal nicht vor. Bitte nutze die Boardsuche für Rechenbeispiele. Augenzwinkern
Mr. Bird Auf diesen Beitrag antworten »

Danke einmal für den Link.

Das Thema ist : Approximation einer Funktion durch die Interpolation mit kubischen Splnies.

Da soll ich erstmal sagen wie das geht, und dann z.B. mit anderen Methoden vergleichen, oder Anwendungsbeispiele geben.

Wenn ich ehrlich bin, verstehe ich das nicht wirklich, was da unter kubische Splines steht. Algorithmen sowie Vektoren haben wir noch nie im Unterricht gemacht unglücklich

Was zum beispiel bedeutet "tridiagonal und strikt Zeilen-diagonaldominant", oder eine Restriktion oder

Ich kann damit leider nichts anfangen unglücklich (Was ist , z.B.)

Schöne Grüße, und danke im voraus für weitere Antworten,

Mr. Bird
tigerbine Auf diesen Beitrag antworten »

1. Beschäftige dich mit Runges Beispiel, erkläre dann, warum es bei Polynominterpolation [ihr kennt so was schon als Steckbreifaufgeben, hier sind dann eben nur Punkte gegeben] zu Problemen führen kann. Mehr Knoten führt zu was?

2. Beschäftige dich mit linearen Splines. Das ist ja quasi "malen nach Zahlen". Daran kannst du aber schon mal den Unterschied zu 1. ausdrücken. Mehr Knoten führt zu was?

3. Du musst dir ein wenig Grundwissen über Matrizen und Lineare Gleichungssysteme aneignen. Wichtig ist am Ende, der Spline soll ja eindeutig zu berechnen sein. Du kennst aus dem Unterricht aber auch LGS mit unendlich vielen Lösungen.

4. Den Workshop habe ich nicht unbedingt für Schüler geschrieben, richtig. Augenzwinkern Aber da wird auch nur mit Wasser gekocht.

Zitat:
Spline Jede Funktion heißt Spline, wenn die Restriktionen, Polynome sind. Splines sind also stückweise polynomiale Funktionen, mit den Knoten als Bruchstellen.


Restriktion ist der Spline auf ein Intervall eingeschränkt [Zwischen 2 Knoten].

Das andere sind Begriffe aus der Linearen Algebra. Bitte selbst googlen.

Durch die Begriffe/Variablen musst du dich durchkämpfen. Ich rechne mal dein Beispiel vor. In der Arbeit bitte ein anderes nehmen!
[attach]13727[/attach]
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
>> spline3
 
Es wird ein kubischer Spline berechnet. Spezifizierung folgt.
 
Beachte: Der Datensatz hat die Form
         Knoten:           t_0 ,...,  t_n
         Funktionswerte: f(t_0),...,f(t_n)
 
Knotenpunkte eingeben:   [1,4,6,10]
Funktionswerte eingeben: [1,3,2,4]
 

n =

     3

------------------------------------------------------------------------------
Berechnung der Deltas dt_0,...,dt_n-1

dt =

     3     2     4

 
Berechnung der Deltas df_0,...,df_n-1

df =

     2    -1     2

 
Berechnung der Brüche df0/dt0,...,df_n-1/dt_n-1

dfdt =

   0.66666666666667  -0.50000000000000   0.50000000000000

 
 
 
Berechnung der Betas   b_1,...,b_n-1

b =

     2     4

 
Berechnung der Alphas  a_1,...,a_n-1 (vorläufig)

a =

    10    12

 
Berechnung der Gammas  c_1,...c_n-1

c =

     3     2

 
Berechnung der rs      r_1,...,r_n-1 (vorläufig)

r =

  -0.50000000000000  -3.00000000000000

 
------------------------------------------------------------------------------
Bitte wählen: 0 - natürlicher Spline
              1 - vollst. Spline
 
Deine Wahl: 0
------------------------------------------------------------------------------
 
Berechnung der Alphas  a_1,...,a_n-1 (nat. Spline)

a =

     9    11

 
Berechnung der rs      r_1,...,r_n-1 (nat. Spline)

r =

  -2.50000000000000  -4.50000000000000

 
Aufstellen der Matrix M

M =

     9     3
     4    11

 
Berechnung der Lösung s von Ms=r: s_1,...,s_n-1
  -0.16091954022989  -0.35057471264368

 
Der komplette Vektor s: 

s =

   1.08045977011494  -0.16091954022989  -0.35057471264368   0.92528735632184

 
Matrix der Restriktionen in Newton-Darstellung

RN =

   1.00000000000000   1.08045977011494  -0.13793103448276  -0.04597701149425
   3.00000000000000  -0.16091954022989  -0.16954022988506   0.12212643678161
   2.00000000000000  -0.35057471264368   0.21264367816092  -0.02658045977011

 
Matrix der Restriktionen in Monom-Darstellung: 1,x,x²,x³

RM =

  -0.03448275862069   0.94252873563218   0.13793103448276  -0.04597701149425
 -10.79310344827586   9.01149425287356  -1.87931034482759   0.12212643678161
  21.32758620689656  -7.04885057471264   0.79741379310345  -0.02658045977011

 
Vergleichsfunktion eingeben? (0=ja, 1=nein) 1
Stellen auswerten? (0=ja, 1=nein) 
Elvis Auf diesen Beitrag antworten »

@tigerbine & Mr.Bird

Als mein hochverehrter Lehrer, Herr Professor Klaus Böhmer, "Entdecker"/"Erfinder"/"Macher" der Spline-Funktionen diese "entdeckte"/"erfand"/"machte" und selbige in den 70er Jahren in Karlsruhe lehrte, waren wir hellauf begeistert, in diese wunderschöne neue, elegante und nützliche Theorie eingeführt zu werden.

Zum ersten mal nach Jahrhunderten der unschönen Quälerei mit Polynomfunktionen (Newton et.al.) gab er den Mathematikern eine Klasse von Funktionen an die Hand, mit deren Hilfe man Approximationsprobleme, Interpolationsprobleme und Extrapolationsprobleme ebensogut lösen konnte. Die Vorteile der Splines sind genau die Nachteile der Polynome, nämlich
1. Polynomfunktionen gehen für x gegen +/- unendlich gegen +/- unendlich.
2. Erhöhung des Polynomgrades - notwendig z.B. bei Erhöhung der Anzahl der Stützstellen - führt zu unerwünschter Vergrößerung der Variation.
3. Stückweise polynomiale Funktionen sind i.a. nicht differenzierbar.

Diese Nachteile haben Spline-Funktionen eben nicht.

Die Vorteile bleiben aber erhalten: ebenso wie Polynomfunktionen bilden Spline-Funktionen Vektorräume, sind also mittels ihrer Koeffizienten effektiv und effizient berechenbar.

Darüberhinausgehende Vorteile beschreiben die Theoreme der Spline-Theorie, die uns zeigen, dass diese Funktionenklasse in gewissem Sinne minimal unter allen möglichen Funktionenklassen mit den gewünschten Eigenschaften ist.

In der Zwischenzeit haben sich die (meistens kubischen) Splines - weil sie so schön und nützlich sind - in professioneller Software durchgesetzt und finden überall dort ihre Anwendung, wo große Datenmengen nach glatten Funktionen verlangen.
tigerbine Auf diesen Beitrag antworten »

Mein Gott, der Erfinder des Hüftschwungs kennt den Erfinder der Splines. Big Laugh

Ihre Schönheit stelle ich nicht in Frage, aber die Berechnung von Hand finde ich doch sehr aufwendig. Ich denke, Mr. Bird wird noch etwas brauchen, um sie in vollem Umfang zu erkennen. Er muss sich ja erst mal in die LinA (Vektorraum) einlesen. Ich gab ja schon Hinweise, was die Splines neues bringen. Um das zu erkennen, muss er auch erst mal das alte lernen.

Ich denke, wir haben ihm nun vorerst genug an Richtungen für seine Arbeit gegeben. Aber er weiß nun auch, dass ein Schüler des Erfinders an Board ist. Freude Das lässt auf interessante Gespräche hoffen. Wink
 
 
Mr. Bird Auf diesen Beitrag antworten »

Hallo nochmal,

ich habe mit meinem Lehrer gesprochen, und ich soll mich nicht in das Thema Vektoren einlesen, da das zu lange dauern würde.

Nun frage ich mich, ob es nicht einfach eine Formel gibt, mit der die Variablen, die ich mit der Matrix berechnen würde, halt einzeln berechnet werden können.

Ich habe ja und sowie .

Gibt es also eine Formel, aus der ich berechnen kann, lediglich mit , und Werten?

Wenn ja, bitte einmal mir sagen. smile

Freue mich auf Antworten,

Mr. Bird
tigerbine Auf diesen Beitrag antworten »

Ich weiß nicht, was du mit "Vektoren" meinst. Die Spline Berechnung führt auf ein lineares Gleichungssystem. Da muss man sicherstellen, dass es eindeutig lösbar ist. Lineare Geichungsysteme hat man in kleiner Dimension auch schon im Schulunterreicht.

Ggf kann man dann in einer Facharbeit von dem Beweis absehen, wenn ihm das reicht. Aber eine andere Berechnungsvorschrift kenne ich nicht. Vielleicht kann Elvis da noch was sagen.
Mr. Bird Auf diesen Beitrag antworten »

Ja,

das Gleichungssystem ist :



Nur, wenn ich 4 Punkte habe, und versuche, dass Gleichungssystem immer danach aufzulösen, komme ich IMMER darauf, dass ich x_4 brauche, welche ich aber 4 Punkten nicht habe. Bei 4 Punkten habe ich lediglich x_0 bis x_3.


Edit:
Wenn mir jemand einfach das Gleichungssystem für 4 Punkte aufschreiben könnte, würde ich auch weiter klar kommen, denke ich, und wenn nicht, weiß ich ja wo ich nachfragen kann smile

Mr.Bird
tigerbine Auf diesen Beitrag antworten »

Ich habe dir dein Beispiel doch schon vorgerechnet... verwirrt Sicher, in meinen Variablen. Für andere Rechnungen werde ich nicht die Zeit haben. Da muss jemand anders ran.
Mr. Bird Auf diesen Beitrag antworten »

Besser für meine Arbeit wäre es, wenn mir das jemand mit dieser Matrix hier macht :



Danke,

Mr.Bird

Edit: @ Tigerbine:
Das weiß ich, und das ist auch nett. Jedoch kann ich damit für meine Facharbeit nicht arbeiten. Ich muss in meine Facharbeit den Lösungsweg integrieren. Das bedeudet ich muss DIESE Matrix da einfügen und mit ihr rechnen. Ich brauch bloß die Vorlage der Matrix für 4 Punkte, OHNE spezielle Werte sondern mit ihren Variablen.(Also so statt z.B. für den Fall das ist) Mit dem Rest komme ich dann wahrscheinlich selber klar.
tigerbine Auf diesen Beitrag antworten »

Wir werden dir das aber nicht allgemein vorrechnen. Gerade das ist der Knackpunkt bei der Splinebestimmung und den musst du lösen. Augenzwinkern

Aus der Matrix müssen die h - die suchst du ja - raus. Es "muss" ein LGS der Form Ax=b dastehen. Gerade dieses so aufzustellen, ist ja einer der Knackpunkte.
Mr. Bird Auf diesen Beitrag antworten »

Ich weiß aber nicht, wie...
Die h's weiß man ja...


Warum kann mir die Matrix für 4 punkte nicht einfach vorgegeben werden?!

Ich brauche bei allen Möglichkeiten die ich ausprobiere auf einmal 5 Punkte..
z.B. bei ... Denn , aber habe ich ja gar nicht.
Wenn ich aber diese Reihe einfach weg lasse, dann habe ich "nur" eine 2x3 Matrix. Ich selber kenne nur eine Diagonalmatrix, bei einer solchen matrix hätte ich aber nur 2 b's in der lösung, und ich habe keine Ahnung was das bedeutet "LGS der Form Ax=b".

Mr. Bird
tigerbine Auf diesen Beitrag antworten »

Reden wir doch mal, mit dem konkreten Beispiel von oben, darüber, was eigentlich gegeben ist, und was wir am Ende brauchen.
Mr. Bird Auf diesen Beitrag antworten »

Haben Sie vielleicht ICQ, Skype oder MSN, damit wir das Instant machen können?

Ich erwarte ja keine Lösung von irgendjemanden smile

Ansonsten:

Gegeben sind ja die Punkte, und dass es natürliche Splines sein sollen.

Wir wollen die koeffizienten ai, bi, ci und di, wobei der knackpunkt bei der berechnung der bi's ist.

Mr. Bird
tigerbine Auf diesen Beitrag antworten »

Kein Chatprogramm. Wir brauchen Latex und andere sollen auch was davon haben. Augenzwinkern

Ich habe extra die konkrete Aufgabe vorgegeben. Da möchte ich nun auch konkretes sehen.

1. Wie lauten die Teilintervalle?

2. Was sind die ai, bi etc.? Augenzwinkern

3. Was suchen wir, und welche Bedingungen müssen erfüllt sein.

Wir wollen das jetzt step by step zusammen rechnen. WS wird das aber heute Nacht nicht fertig.
Mr. Bird Auf diesen Beitrag antworten »

Alles klar, danke dafür.

Wir haben die Punkte , , und gegeben.
Das bedeutet:
wird im Teilintervall
wird im Teilintervall und
wird im Teilintervall

definiert sein.

Da wir natürliche Splines suchen, haben wir gegeben:
für und

Außerdem muss gelten:



Mr. Bird Auf diesen Beitrag antworten »

Wir arbeiten mit der Grundformel:
tigerbine Auf diesen Beitrag antworten »

ok, du bezeichnest mit s die Teilfunktionen des Splines. Bei mir sind das Variablen, z.B. der Wert der Randbedingung. Ich habe die Funktionen R genannt, weill der Spline eingeschränkt auf ein Intervall Restriktion genannt wird.

Zitat:
allgemein also

Stetigkeits- und Glattheitsbedingungen

Es sollen folgende Bedingungen erfüllt sein:










____________________________________________________



Da insgesamt 4n Freiheitsgrade vorhanden sind, müssen noch 2 Bedingungen hinzugefügt werden, um Eindeutigkeit zu erhalten.

Natürlicher Spline



Die Bedingung wird deswegen als natürlich bezeichnet, weil die zweite Ableitung im Wesentlichen die Krümmung einer Funktion darstellt. Daher hat dieser Spline die geringste Krümmung.

Sie erweist sich allerdings als schlecht, da hier dann z.B. die Funktion nicht durch einen kubischen Spline reproduziert wird.


Ok, damit wäre geklärt, was wir suchen und wir haben auch so viel Bedingungen wie Freiheitsgrade. Da sieht es gut aus, dass das Problem eindeutig lösbar ist.

Zitat:

Jede Restriktion ist ein Polynom vom Maximalgrad 3 (kubisch).



Wie heißt diese Art ein Polynom zu schreiben? Was ist x_i?
Mr. Bird Auf diesen Beitrag antworten »

Deshalb suchen wir:

Alle , , und .

Wegen ist
Wegen ist
Aus lässt sich berechnen für
Mr. Bird Auf diesen Beitrag antworten »

Zitat:

Zitat:

Jede Restriktion ist ein Polynom vom Maximalgrad 3 (kubisch).



Wie heißt diese Art ein Polynom zu schreiben? Was ist x_i?


Ist das nicht eigentlich die Schreibweise, wo man die Nullstellen ablesen kann?! Mir fällt der Name nicht ein. ist demnach eine Nullstelle?!

Edit: Nein das kann nicht sein, das müsste sein.
Für N=Nullstelle
tigerbine Auf diesen Beitrag antworten »

Nein, das x_i ist i.A. keine Nullstelle. Wir suchen Restriktionen = Polynome. An die Stellen wir gewisse Anforderungen. Die hast du schon genannt. Die Form die du hingeschrieben hast, ist die Newton-Darstellung eines Interpolierenden Polynoms. Da wir auch anforderungen an die Ableitung gestellt haben, ist es die Newton-Hermite-Form.

Ich möchte dir als Hausaufgabe aufgeben, dich ein wenig durch das zu lesen. Beweise musst du nicht machen, aber wissen worum es geht.

[WS] Polynominterpolation - Theorie Punkt 1b und 12

[WS] Polynominterpolation - Beispiele

danach sollte, bis auf die lästig vielen Variablen diese Darstellung der Restriktion klar sein

Zitat:
Algorithmus zur Spline Berechnung

Ähnlich wie beim quadratischen Spline hat man bei der Berechnung wie folgt vorzugehen:

1. Aufstellen der Hermite-Newton-Form der Restriktionen und






Dabei bestimmt man die Koeffizienten (dividierte Differenzen) mit dem Neville-Hermite-Schema und setzt für die ersten Ableitungen die Variable . Damit sind die Bedingungen (1)-(3) umgesetzt.


Wenn du das verstanden hast, geht es weiter.
Mr. Bird Auf diesen Beitrag antworten »

Gehe jetzt ins Bett und fange morgen, bzw. vielleicht erst Samstag damit an.
Danke Augenzwinkern

Schöne Nacht
tigerbine Auf diesen Beitrag antworten »

Nimm dir Zeit. Das ist nun der wichtige Punkt, wie man eigentlich den SPline am Ende berechnet. Pb als LGS oder wie auch immer notiert.

Ich bin am Wochenende nicht on, also warte nicht.

Gute Nacht. Wink
Mr. Bird Auf diesen Beitrag antworten »

Hallo nochmal
Ich habe mich über das Wochenende intensiv damit beschäftigt, und bin auch auf die Lösung meines Problems gekommen, von daher bedanke ich mich noch einmal für die Hilfe aus diesem Forum und kann vermelden, dass dieses Thema geschlossen werden kann.

Grüße
Mr.Bird
tigerbine Auf diesen Beitrag antworten »

Wir wünschen viel Erfolg mit der Facharbeit. Wink
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »