Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Splines
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Mathe-Forum -> Splines
 
Autor Nachricht
DrHoas
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 04.05.2010
Beiträge: 41

BeitragVerfasst am: 27 Mai 2010 - 17:19:28    Titel: Splines

Hallo,

ich dachte Splines hätten die Eigenschaft, dass an einem Stützpunkt beide Polynome die gleiche Steigung haben, also:
[;S_i'(x_i)=S_{i+1}'(x_i);]
Ich hab mir aber mal zwei Splinekurven über drei Stützpunkte erstellt und da ist das nicht so. Hab ich was falsch gemacht oder warum sehen Splines in CAD-Programmen immer so schön glatt aus?
Gibt es Kurven die obige Bedingung erfüllen?

Gruß

Philipp
Annihilator
Valued Contributor
Benutzer-Profile anzeigen
Valued Contributor


Anmeldungsdatum: 18.05.2007
Beiträge: 6394
Wohnort: (hier nicht mehr aktiv)

BeitragVerfasst am: 27 Mai 2010 - 17:53:20    Titel:

Splines weisen die von dir genannte Eigenschaft auf, wenn man sie so definiert. Man kann aber auch Splines betrachten, die andere Eigenschaften haben. In den meisten Fällen fordert man aber, dass sie mindestens 2 mal stetig differenzierbar sind - man spricht dann von kubischen Splines. Die Frage ist noch, ob man parametrische Splines betrachtet. Da wird es wieder anders.

Kannst du dein Problem konkretisieren, also genaue Zahlen und Ergebnisse nennen?
Knalltüte
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 31.08.2007
Beiträge: 2932
Wohnort: gleich um die Ecke

BeitragVerfasst am: 27 Mai 2010 - 19:13:01    Titel:

Meinst du mit Stützpunkten, das was allgemein unter Stützpunkt verstanden wird?
DrHoas
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 04.05.2010
Beiträge: 41

BeitragVerfasst am: 28 Mai 2010 - 08:38:01    Titel:

@Knalltüte: Mit Stützpunkten meine ich die drei Punkte, zwischen denen ich zwei Splines gelegt habe: P1(0;0); P2(7,5;2); P3(15;14).

@Annihilator: Hast Du grad nen Bronstein zur Hand? In meiner 5. Auflage steht im Kapitel zu den kubischen Splines: "Die Stetigkeit von S'(x) an den inneren Knoten ergibt
[;c_{i-1}h_{i-1}+2(h_{i-1}+h_i)c_i+c_{i+1}h_i=3\left(\frac{a_{i+1}-a_i}{h_i}-\frac{a_i-a_{i-1}}{h_{i-1}}\right);] (Gleichung 19.239)
Da meine Knoten äquidistant sind, ist [;h_{i-1}=h_i=h;]. [;c_1;] und [;c_3;] sind laut Definition 0, also ergibt sich für [;c_2;]
[;4hc_2=3\left(\frac{14-2}{h}-\frac{2-0}{h}\right);]
Mit h=7,5 ergibt sich [;c_2=\frac{1}{7,5};].
Weiter heißt es im Bronstein: "Wegen [;a_i=f_i;] ist die rechte Seite des LGS 19.239 zur Bestimmung der Koeffizienten [;c_i;] bekannt. Die linke Seite hat folgende Gestalt..." da mir nur noch [;c_2;] fehlt erhalte ich die 1x1-Matrix [;2(h_1+h_2);] und damit
[;4h\cdot c_2=a_2 \Rightarrow c_2=\frac{1}{15};]
[;\frac{1}{15};] ist aber falsch. Mit [;\frac{1}{7,5};] kommt ein schön glatter Übergang raus. Rechne ich mit der Matrix falsch (ich bezweifle, dass der Fehler im Bronstein ist)?

Gruß

Philipp
Annihilator
Valued Contributor
Benutzer-Profile anzeigen
Valued Contributor


Anmeldungsdatum: 18.05.2007
Beiträge: 6394
Wohnort: (hier nicht mehr aktiv)

BeitragVerfasst am: 28 Mai 2010 - 12:24:52    Titel:

Also wir haben [; s_i(x) = a_{i, 0} + a_{i, 1} x + a_{i, 2} x^2 + a_{i, 3} x^3 ;] und definieren den Spline dann mit:

[; S(u) = \begin{cases} s_1(u) & u \in [x_0, x_1] \\ s_2(u) & u \in [x_1, x_2] \end{cases} ;]

Den natürlichen kubischen Spline kannst du durch das folgende LGS ermitteln:

[; s_1(x_0) = y_0 ;]
[; s_1(x_1) = y_1 ;]
[; s_2(x_1) = y_1 ;]
[; s_2(x_2) = y_2 ;]
[; s_1'(x_1) - s_2'(x_1) = 0 ;]
[; s_1''(x_1) - s_2''(x_1) = 0 ;]
[; s_1''(x_0) = 0 ;]
[; s_2''(x_2) = 0 ;]

Oder kanonisch notiert:


So kenn ich das zumindest. Ich weiß gerade nicht, was in dem "Bronstein" da gerechnet wird. Nimmt man da B-Splines?
DrHoas
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 04.05.2010
Beiträge: 41

BeitragVerfasst am: 29 Mai 2010 - 09:17:15    Titel:

Ich hatte eine Angabe im Bronstein falsch verstanden. Es kommt doch nach beiden Methoden das gleiche raus. Inzwischen probier ich's aber nach Wikipedia: http://de.wikipedia.org/wiki/Spline-Interpolation
Ich hab äquidistante Stützstellen und bei Wikipedia ist für diesen Fall schon eine invertierte Matrix angegeben. (Ansonsten ist der Artikel aber nicht so prickelnd geschrieben.)

Gruß

Philipp
DrHoas
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 04.05.2010
Beiträge: 41

BeitragVerfasst am: 29 Mai 2010 - 13:55:28    Titel:

So, hab jetzt den ganzen Morgen damit zugebracht, in Excel/VBA ein Programm zu schreiben um die Splines auch für eine beliebige Anzahl an Stützstellen zu berechnen. Auf mein Beispiel mit drei Punkten angewendet kommt aber nur Quatsch raus. Ich hab versucht die Schritte von Wikipedia nachzuvollziehen. Irgendwo muss aber ein Fehler sein. Punkte:
[;\vec{x-Werte}=\left(\begin{array}{c} 0 \\ 7,5 \\ 15 \end{array}\right) \qquad \vec{y-Werte}=\left(\begin{array}{c} 0 \\ 2 \\ 14 \end{array}\right);]
Unter der invertierten Matrix werden Koeffizienten b berechnet. Ich nenn sie mal w, da b weiter oben schon verwendet wird. Für drei Stützpunkte brauche ich vier Werte:
[;\vec{w}=\left(\begin{array}{c} 1 \\ 4 \\ 15 \\ 56 \end{array}\right);]
Die invertierte Matrix ergibt sich zu
[;Wiki=\left(\begin{array}{rrr} \frac{15}{56} & \frac{-4}{56} & \frac{1}{56} \\ \frac{-4}{56} & \frac{2}{7} & \frac{-4}{56} \\ \frac{1}{56} & \frac{-4}{56} & \frac{15}{56}\end{array}\right);]
Die rechte Seite des LGS hat die Form
[;\vec{erg}=\left(\begin{array}{c} 0,8 \\ 5,6 \\ -0,8 \end{array}\right);]
Aus [;\vec{g}=Wiki\cdot\vec{erg};] erhält man
[;\vec{g}=\left(\begin{array}{c} -0,2 \\ 1,6 \\ -0,6 \end{array}\right);]
und damit
[;\vec{p}=\left(\begin{array}{c} 1,5 \\ -6 \\ 46,5 \end{array}\right) \qquad \vec{q}=\left(\begin{array}{c} 0 \\ 1,5 \\ -6 \end{array}\right);]
Damit lassen sich die kubischen Polynome erstellen. Aus [;S_i(x)=y_iu^3+p_iu^2v+q_iuv^2+y_{i-1}v^3;] hab ich [;S_i(x)=a+bx+cx^2+dx^3;] geformt. [;a_1; b_1; c_1; d_1;] ergeben sich zu 0,017777778; 0,2; -0,16; 0,008296296. Diese Werte sind aber falsch (a1 muss ja auf jeden Fall 0 sein).

Ich hoffe jemand macht sich die Mühe und hilft mir bei der Fehlersuche. Bei Bedarf kann ich auch die Exceldatei zur Verfügung stellen.

Gruß

Philipp
Annihilator
Valued Contributor
Benutzer-Profile anzeigen
Valued Contributor


Anmeldungsdatum: 18.05.2007
Beiträge: 6394
Wohnort: (hier nicht mehr aktiv)

BeitragVerfasst am: 29 Mai 2010 - 15:03:19    Titel:

Sag doch bitte erstmal, welche Basis du hier verwendest!

Und warum um alles in der Welt willst du das mit Excel realisieren?
DrHoas
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 04.05.2010
Beiträge: 41

BeitragVerfasst am: 29 Mai 2010 - 17:16:31    Titel:

was meinst Du mit Basis?

Ich hab's in Excel/VBA geschrieben, weil ich sonst keine Programmiersprache kann (außer LabVIEW und das ist hier denkbar ungeeignet). Bin grad dabei C# zu lernen...

Philipp
Annihilator
Valued Contributor
Benutzer-Profile anzeigen
Valued Contributor


Anmeldungsdatum: 18.05.2007
Beiträge: 6394
Wohnort: (hier nicht mehr aktiv)

BeitragVerfasst am: 31 Mai 2010 - 09:26:17    Titel:

Also ich kenne das so: Es ist eine Basis-Funktion [; \psi ;] definiert:


Für den Spline gilt dann:


Wobei [; h ;] die x-Distanz zwischen den Stützpunkten ist. Die [; a_k ;] gilt es heraus zu finden und für den natürlichen Spline muss man dazu das folgende LGS lösen:


Mit einem Tabellen-Kalkulations-Programm lässt sich das schon lösen, aber eher für Fälle mit gleicher Anzahl an Stützpunkten. Sonst müsste man das immer neu machen. Bei deiner speziellen Aufgabe kommt jedenfalls raus:
[; a = \frac{1}{2} \cdot \begin{pmatrix} 1 \\ 0 \\ -1 \\ 28 \\ 57 \end{pmatrix} ;]

Beziehungsweise:
[; S(x) = \frac{1}{2} \cdot \left( \psi \left( \frac{x}{7.5}+1 \right) - \psi \left( \frac{x}{7.5}-1 \right) + 28 \cdot \psi \left( \frac{x}{7.5}-2 \right) + 57 \cdot \psi \left( \frac{x}{7.5}-3 \right) \right) ;]
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Mathe-Forum -> Splines
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum