Seite 1 von 1

Interpolation in n Dimensionen

Verfasst: Donnerstag 21. Juli 2005, 07:47
von Paul
Hallo Leute,

weiss einer von euch, wie man in 5 oder mehr Dimensionen interpolieren kann? Bitte schreibt mir.
Am liebsten waere mir natuerlich ein fertiges modul oder sowas.
Freundliche Gruesse,
Paul

Verfasst: Donnerstag 21. Juli 2005, 16:24
von CM
Hoi Paul,

das ist eine enorme Herausforderung. Ich wüßte im Moment auch nicht wo etwas Derartiges in Python umgesetzt wäre.

Aber es gibt ja scipy (www.scipy.org) dort könntest Du Dir den Quellcode runterladen und den 2-dimensionalen Splinefit um drei Dimensionen erweitern. Nur so etwas ist keine Aufgabe für einen Nachmittag. (Ich würde mir dafür wenigestens drei bis vier Wochen Zeit einräumen, bis alles fehlerfrei sitzt.)

Etwas Anderes ist es wenn Du die Gesetzmäßigkeit mit Der sich Deine Punkte verteilen schon kennst, dann reicht es womöglich über alle Achsen zu interpolieren - aber Dir schwebt wohl eher etwas Anderes vor.

Viel Erfolg!

Gruß,
Christian

PS Wozu braucht man einen fünfdimensionalen Fit?
PPS Wenn Du eine Lösung hast - magst Du den Code hier mal posten? Wäre sehr interessant.

Verfasst: Donnerstag 21. Juli 2005, 21:41
von CM
Hoi Paul,

oh, ich möchte mir doch selber widersprechen: Es ist gar nicht so schwer, wie ich dachte. Schaue mal nach in den Numerical Recipes in C unter Punkt 3.6. Ich möchte aber empfehlen das ganze Kapitel 3 durchzulesen, damit Du den Teil 3.6 besser nachvollziehen kannst - Du kannst ja die Teile, die nun wirklich in dem Zusammenhang nicht interessieren überschlagen.

Das zeigt zumindest eine Implementierung in C auf. C++ (wovon ich die Recipes zu Hause habe) funktioneren ja ganz ähnlich. Der Schritt nach Python ist hier nicht so schwer. Aber die Erweiterung auf fünf oder n beliebige Dimensionen wird schon einiges Gehirnschmalz kosten, fürchte ich ;-).

Dennoch viel Erfolg.

Gruß,
Christian

Verfasst: Freitag 22. Juli 2005, 07:18
von Paul
Hallo Leute,

ich hab eigentlich nach etwas fertigem gesucht, das ich nur importieren muss.

Schade,
Aber vielleicht findet ja noch einer was.
Paul

Verfasst: Freitag 22. Juli 2005, 07:46
von CM
Ich finde Du hättest schon einmal einen Blick in scipy werfen können oder selber suchen sollen. Dann hättest Du nämlich in der Tat gefunden, daß es das schon gibt und auch wirklich nicht so schwer zu implementieren ist, wie ich zunächst glaubte. Ich selber habe gerade eben einen 1D-Spline Fit gebraucht und habe zufällig noch einmal in der Scipy-Doku gelesen. Dort gibt es interpolate.splprep und das dürfte Deinen Ansprüchen genügen.

Gruß,
Christian

Verfasst: Mittwoch 27. Juli 2005, 09:13
von Paul
Hallo Christian,

ich habe scipy abgesucht. Dort gibt es aber nichts, was vernuenftig in 5 oder 6 Dimensionen funktioniert. Zumindest dann, wenn man nicht mit dem Parameter arbeiten will. Ich habe naemlich noch nicht herausgefunden, wie ich den passenden parameterwert zu den jeweiligen Punktkoordinaten bekomme.
Mfg,
Paul

Verfasst: Mittwoch 27. Juli 2005, 09:23
von CM
Paul hat geschrieben: ... Zumindest dann, wenn man nicht mit dem Parameter arbeiten will. Ich habe naemlich noch nicht herausgefunden, wie ich den passenden parameterwert zu den jeweiligen Punktkoordinaten bekomme.
Wovon sprichst Du? Was ist "der Parameter"? Was meinst Du mit "passedem Parameterwert zu den jeweiligen Punktkoordinaten? Wie sieht Deine Matrix aus? Wo liegt Dein Problem mit dem Beispielcode? Magst Du ein Snippet posten - falls es helfen könnte, Dein Problem zu verstehen?

Fragen über Fragen ... Ich verstehe Dein Problem nicht mehr. Wenn Du vielleicht etwas deutlicher wirst, mag es hier auch noch andere Leute geben, die helfen können.

Gruß,
Christian