matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenInterpolation und ApproximationKubischen Spline glätten
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Informatik • Physik • Technik • Biologie • Chemie
Forum "Interpolation und Approximation" - Kubischen Spline glätten
Kubischen Spline glätten < Interpol.+Approx. < Numerik < Hochschule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Interpolation und Approximation"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Kubischen Spline glätten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 10:11 Di 13.12.2011
Autor: girlie0016

Hallo zusammen!

Ich beschäftige mich zur Zeit mit kubischen Splines. Genauer gesagt habe ich eine Reihe von Punkten in 3D gegeben, durch die ich einen Spline legen möchte. Ich hab mich dabei für kubische Splines entschieden und die Berechnung klappt soweit ganz gut.
Das Problem, dass aber auftritt, ist, dass je größer die Anzahl der Punkte ist der Spline immer welliger wird. Das dieses Problem auftritt ist mir klar, jedoch weiß ich nicht, wie ich die Spline-Kurve glätten könnte?
Ich könnte ganz einfach Punkte weglassen-aber welche? Wie kann ich "überflüssige" Punkte erkennen? Der Verlauf der Kurve, der durch die gegebenen Punkte vorgegeben ist, soll sich durch das Glätten aber nicht ändern. Oder gibt es einen ganz anderen Ansatz für dieses Problem?
Ich würde mich freuen, wenn jemand eine Idee dazu hätte und mir eventuell weiterhelfen könnte.

Danke!
Liebe Grüße, Girlie


Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.


        
Bezug
Kubischen Spline glätten: mehr Information
Status: (Antwort) fertig Status 
Datum: 15:05 Di 13.12.2011
Autor: Al-Chwarizmi


> Hallo zusammen!
>  
> Ich beschäftige mich zur Zeit mit kubischen Splines.
> Genauer gesagt habe ich eine Reihe von Punkten in 3D
> gegeben, durch die ich einen Spline legen möchte. Ich hab
> mich dabei für kubische Splines entschieden und die
> Berechnung klappt soweit ganz gut.
> Das Problem, dass aber auftritt, ist, dass je größer die
> Anzahl der Punkte ist der Spline immer welliger wird. Das
> dieses Problem auftritt ist mir klar, jedoch weiß ich
> nicht, wie ich die Spline-Kurve glätten könnte?
>  Ich könnte ganz einfach Punkte weglassen-aber welche? Wie
> kann ich "überflüssige" Punkte erkennen? Der Verlauf der
> Kurve, der durch die gegebenen Punkte vorgegeben ist, soll
> sich durch das Glätten aber nicht ändern. Oder gibt es
> einen ganz anderen Ansatz für dieses Problem?
>  Ich würde mich freuen, wenn jemand eine Idee dazu hätte
> und mir eventuell weiterhelfen könnte.
>
> Danke!
>  Liebe Grüße, Girlie


Hallo Girlie,

wenn du eine Kurve glättest, so ändert sich natürlich der
Kurvenverlauf !
Es stellt sich also die Frage, was genau du anstrebst.
Wenn du verlangst, dass die Datenpunkte exakt getroffen
werden und die Kurve ein kubischer Spline mit diesen
Stützpunkten sein soll, dann ist das, was du bereits hast,
die Lösung. Falls aber die gegebenen Punkte nur ungefähr
getroffen werden müssen, wäre eine Näherung im Sinne
einer Regression der bessere Weg.
Vielleicht erzählst du uns etwas mehr über den Zweck
des Unterfangens und gibst uns auch ein Beispiel einer
Punktliste an, bei welcher dein Problem mit der "Welligkeit"
auftritt. Dann können wir dich sicher besser beraten.

LG   Al-Chw.




Bezug
                
Bezug
Kubischen Spline glätten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 09:18 Mi 14.12.2011
Autor: girlie0016

Hallo zusammen!

Also zunächst einmal danke für die Antwort!
Ich werde einmal versuchen mein Problem genauer zu beschreiben.
Es geht grundsätzlich darum eine Kurve entlang eines Körpers zu ziehen. In meinem Fall ist der Körper ein Knochen. Der Knochen ist als Dreiecksnetz gegeben. Mir sind nun Punkte auf dem Knochen vorgegeben durch die die Kurve gehen sollte. Die Anzahl der Punkte ist dabei variabel.
Ziel ist nun, dass die Kurve entlang des Knochens verläuft und möglichst "ruhig" ist, also wenig wellig ist.  
Die Frage ist nun wie ich das erreichen kann?! Ich denke es kann nur über die Anzahl der Punkte gehen.

Ich hoffe das ist jetzt etwas verständlicher formuliert?! Danke für eure Hilfe!

Lg, Girlie

Bezug
                        
Bezug
Kubischen Spline glätten: Antwort
Status: (Antwort) fertig Status 
Datum: 16:48 Mi 14.12.2011
Autor: Al-Chwarizmi


> Hallo zusammen!
>  
> Also zunächst einmal danke für die Antwort!
>  Ich werde einmal versuchen mein Problem genauer zu
> beschreiben.
> Es geht grundsätzlich darum eine Kurve entlang eines
> Körpers zu ziehen. In meinem Fall ist der Körper ein
> Knochen. Der Knochen ist als Dreiecksnetz gegeben. Mir sind
> nun Punkte auf dem Knochen vorgegeben durch die die Kurve
> gehen sollte. Die Anzahl der Punkte ist dabei variabel.
> Ziel ist nun, dass die Kurve entlang des Knochens verläuft
> und möglichst "ruhig" ist, also wenig wellig ist.  
> Die Frage ist nun wie ich das erreichen kann?! Ich denke es
> kann nur über die Anzahl der Punkte gehen.
>  
> Ich hoffe das ist jetzt etwas verständlicher formuliert?!
> Danke für eure Hilfe!
>  
> Lg, Girlie


Hallo Girlie,

liegt die Kurve in einer Ebene ? Das wäre der Fall, wenn du
einen Querschnitt oder Längsschnitt des 3D-Objekts zeichnen
willst.
Und müssen die vorgegebenen Datenpunkte wirklich exakt
eingehalten werden ? Das habe ich schon vorher gefragt.

Die allersimpelste Form eines Splines wäre ein Polygonzug.
Der ist bestimmt nicht wellig, aber eckig. Welligkeit schleicht
sich bei Splines umso eher ein, je höher der Grad der
Splines ist. Also stellt sich die Frage, ob man vielleicht
mit quadratischen Splines (Parabelstücke aneinander gefügt)
bessere Resultate erzeugen könnte: ohne Ecken, aber nur
minimal wellig. Nur hat man dann pro Parabelstück nur 3
Parameter und kann wohl nicht alle gewünschten Bedingungen
erfüllen. Also muss man z.B. die Werte an den Stützstellen
zuerst als zusätzliche Variablen freihalten.

Die noch fehlenden Gleichungen kann man dann wohl
durch eine geeignete Minimalbedingung im Sinne der
Gaußschen Methode der kleinsten Quadrate ersetzen.

Damit werden die Stützpunkte nicht exakt getroffen, aber
eben doch mit minimalen Abweichungen.

Zum Thema sollte im Netz sicher auch einiges zu finden sein.
(Suche z.B. nach "Spline glätten")

LG   Al-Chw.


    
















Bezug
                                
Bezug
Kubischen Spline glätten: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 09:14 Do 15.12.2011
Autor: girlie0016

Hallo!

Danke für deine Hilfe! Ich glaube, deine Ansätze werden mir bestimmt weiter helfen! Ich werde zunächst noch mal das Netz befragen und schauen, was ich noch über dieses Thema finde!
Danke!

Lg, Girlie

Bezug
                        
Bezug
Kubischen Spline glätten: Rückfrage
Status: (Antwort) fertig Status 
Datum: 01:22 Fr 16.12.2011
Autor: Al-Chwarizmi

Hallo Girlie,

ich habe nun nach meiner Idee mit den quadratischen
Splines ein Programm erstellt und dann gesehen,
dass die damit erzielten Ergebnisse jedenfalls nicht
besser sind als diejenigen mit kubischen Splines.
Nun eine Rückfrage: bist du sicher, dass deine kubischen
Splines richtig konstruiert werden ?
Probier vielleicht mal zum Vergleich aus, ob du bei
Beispielen dieselben Kurven erhältst wie mit dem
[]Spline-Rechner von Arndt Brünner .

LG   Al-Chw.


Bezug
        
Bezug
Kubischen Spline glätten: B - Splines
Status: (Antwort) fertig Status 
Datum: 17:17 So 18.12.2011
Autor: Al-Chwarizmi


> Ich beschäftige mich zur Zeit mit kubischen Splines.
> Genauer gesagt habe ich eine Reihe von Punkten in 3D
> gegeben, durch die ich einen Spline legen möchte. Ich hab
> mich dabei für kubische Splines entschieden und die
> Berechnung klappt soweit ganz gut.
> Das Problem, dass aber auftritt, ist, dass je größer die
> Anzahl der Punkte ist der Spline immer welliger wird. Das
> dieses Problem auftritt ist mir klar, jedoch weiß ich
> nicht, wie ich die Spline-Kurve glätten könnte?


Hallo Girlie,

möglicherweise wären B-Splines genau das, was du
brauchst:

      []B-Splines (Wikipedia)

      []B-Spline-Applet

LG    Al-Chw.



Bezug
                
Bezug
Kubischen Spline glätten: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 10:49 Mi 21.12.2011
Autor: girlie0016

Hallo Al-Chwarizmi!

Danke erst mal für deine Antworten und deine Ideen.
Ich bin mittlerweile von den kubischen Splines abgekommen und verwende nun Bezier-Splines; das funktioniert super!
Ich hab mittlerweile (nach langer Internet-Suche) auch festgestellt, dass ich eigentlich KEINEN Glättungsalgorithmus suche. Was ich suche ist ein Algorithmus, der es mir ermöglicht meine Kurve in bestimmten Abschnitten "abzuflachen". Damit meine ich folgendes:
Ich habe eine Menge von Punkten gegeben, durch die ich einen Bezier-Spline legen möchte. Ich berechne also den Spline und sehe, dass die betrachtete Kurve in einem Teilabschnitt "zu steil" verläuft, sprich die Krümmung der Kurve ist hier zu groß. Ich möchte nun den Punkt, in dem die Krümmung "zu groß" ist verschieben. Ziel soll sein, dass wenn ich nach der Verschiebung wieder meinen Bezier-Spline berechne, die Kurve in dem Abschnitt flacher verläuft.
Ich hoffe, es ist irgendwie nachvollziehbar was ich vorhabe?!
Meine Frage ist nun ob es einen derartigen Algorithmus gibt? Bzw. nach welchem Begriff könnte ich im Internet weitersuchen? Glättung ist eindeutig das falsche Wort.
Meine Idee geht in die Richtung, dass ich die Krümmung und den Mittelpunkt der zugehörigen Krümmungskugel in einem Punkt berechne. Danach vergrößere ich die Krümmungskugel und verschiebe sie entsprechend (je nachdem um wieviel ich den Radius ändere), sodass der Punkt wieder auf der größeren Kugel liegt. Danach müsste ich mind. einen weiteren Punkt auf der größeren Kugel berechnen und dann den Spline neu berechnen... Für mich hört sich das alles sehr umständlich an und ich will/kann nicht glauben, dass es nicht schon Algorithmen zu dem Thema gibt.
Ich bin für jede Hilfe dankbar!

Liebe Grüße, Girlie

Bezug
                        
Bezug
Kubischen Spline glätten: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:20 Fr 23.12.2011
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
                                
Bezug
Kubischen Spline glätten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 09:35 Mo 02.01.2012
Autor: girlie0016

Hallo zusammen!

Erst einmal: Gutes neues Jahr!
Ich hab über die Feiertage weiter über mein Problem gegrübelt. Ich kann mir nicht vorstellen, dass es keinen Algorithmus gibt, der genau das macht, was ich suche.
Vielleicht nochmal kurz zu meiner Problemstellung: Ich habe mehrere Punkte gegeben, durch die ich einen Spline lege. Weiters kann ich in jedem Punkt die Krümmung der Kurve berechnen. Ich möchte nun folgendes machen: Falls in einem Punkt die Krümmung zu groß ist, dann möchte ich diesen Punkt "verschieben". Und zwar so, dass die Kurve dann flacher verläuft, sprich: so dass die Krümmung im neuen Punkt kleiner ist.
Kann mir denn da niemand weiterhelfen? So einen Algorithmus muss es doch bereits geben, oder? Ich bin wirklich für jede Hilfe dankbar!

Liebe Grüße,
Girlie

Bezug
                                        
Bezug
Kubischen Spline glätten: Antwort
Status: (Antwort) fertig Status 
Datum: 22:41 Mo 02.01.2012
Autor: mathemaduenn

Hallo Girlie,

Wenn Du den Punkt verschieben willst, nimmst Du imho indirekt an das der Funktionswert an der Stelle falsch ist. In diesem Fall kannst Du imho auch direkt mit Ausgleichssplines arbeiten.
viele Grüße
mathemaduenn


Bezug
                                                
Bezug
Kubischen Spline glätten: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 09:09 Di 03.01.2012
Autor: girlie0016

Hallo!

Danke erst mal für deine Hilfe. Ich  muss ehrlich gestehen (da ich noch relativ neu bin in der "Spline-Welt"): ich habe bis heute noch nichts über Ausgleichssplines gehört. Aber nach kurzem Nachlesen im Internet denke ich, dass Ausgleichssplines genau das sind, was ich benötige.
Weiß jemand ob es dazu bereits C++ Code oder zumindest Pseudocode gibt? Danke schon mal für eure Hilfe!

Liebe Grüße, Girlie

Bezug
                                                        
Bezug
Kubischen Spline glätten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:12 Mi 04.01.2012
Autor: girlie0016

Hallo zusammen!

Nachdem ich mich jetzt ein bisschen in das Thema Ausgleichssplines eingelesen habe, denke ich, dass gewichtete Ausgleichssplines genau das sind, was ich benötige.
Wenn ich es richtig verstanden habe, dann kann ich über die Gewichtung steuern wie weit ein gegebener Punkt von der Spline-Kurve entfernt sein darf. Der resultierende Spline geht dann schlussendlich nicht mehr durch alle Punkte, genau wie ich das möchte. Soweit ich das mit den Ausgleichssplines verstanden habe wird dabei versucht den quadratischen Fehler zu minimieren....und da ist mein Problem.  Ich habe leider (noch) keinen Plan, wie ich diese Minimierung in die Berechnung des Splines einbauen kann. Hat jemand eine Idee wie das funktionieren könnte?
Außerdem habe ich Punkte in 3D gegeben. Darum berechne ich einen parametrischen Spline. Im Internet habe ich bisher aber nur Beispiele für Ausgleichsplines gefunden bei denen der Spline direkt aus den x- und y-Werten (2D) berechnet wird. Und das hilft mir nicht weiter....
Vielleicht kann mir jemand sagen, wie man Ausgleichssplines berechnen  bzw. vielleicht weiß jemand wo ich c++-Code dazu finden kann?
Danke für eure Hilfe!

Liebe Grüße, Girlie


Bezug
                                                                
Bezug
Kubischen Spline glätten: Antwort
Status: (Antwort) fertig Status 
Datum: 12:19 Mi 04.01.2012
Autor: ullim

Hi,

vielleicht helfen diese Links, hier ist ein Matlab Code für die Ausgleichssplines angegeben.

[]Ausgleichsspline 1

[]Ausgleichsspline 2

Bezug
                                                        
Bezug
Kubischen Spline glätten: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 09:20 Do 05.01.2012
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Interpolation und Approximation"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]