2016-04-06 5 views
1

Ich habe eine 3D-Gitter/Oberfläche (I kann diese Terminologie falsch verwendet wird), dh, ich habe Daten in x, y und z, fürMATLAB - Kann ich einen Spline an eine Oberfläche anpassen und dann die mathematische Formulierung des Splines extrahieren?

z = f(x,y) 

Ich mag MATLAB eine kubischen (oder andere) passen Spline-Kurve auf diese Daten, und dann möchte ich die tatsächliche mathematische Spline-Funktion extrahieren, so kann ich die algebraische Funktion auf meinem eigenen,

z = my_mathematical_spline_curve_function(x,y) 

Anstelle der SFIT Objekt einfach schreiben. Ich weiß, dass ich dies mit einer Polynomkurvenanpassung tun kann, indem ich MATLABs Fit-Werkzeug verwende und dann die Koeffizienten extrahiere. Ich versuche, die gleiche Sache zu machen, aber ich brauche Splines; Eine Polynomkurve passt nicht gut genug zu den Daten. Ist dies in MATLAB möglich?

Antwort

0

Ich hatte eine ähnliche Frage, obwohl in 2d, aber das Problem bleibt. Da die Spline-Funktion f (t) und nicht f (x) ist und t nicht auf x abgebildet wird (auf irgendeine einfache Weise kann ich zumindest sehen), ist das Problem schwierig. Ich habe davon gehört, diese Punkte als die einfachste Lösung zu interpolieren und zu interpolieren (und das, was ich vorhabe), obwohl andere darüber gesprochen haben, die Wurzeln jeder stückweisen Funktion zu finden, um die kubischen Parameter zu schätzen - obwohl ich nicht vollständig bin Sicher, wie lebensfähig das ist. Das Problem, das ich damit sehe, ist, dass die Segmente eigentlich keine Funktionen sein müssen, also existiert f (x) nicht wirklich, weil t ein skaliertes Maß für die Segmententfernung zwischen Punkten ist und deshalb funktioniert f (t) und catmull Beispielsweise können Splines (die eine, die ich verwende) Kreise und Formen abbilden.

Ich mag einen schlechten Job gemacht haben zu erklären, da ich sicherlich kein Experte bin, aber das Problem selbst angetroffen habe, also dachte ich würde Sie auf die möglichen Möglichkeiten hinweisen, um es zu umgehen, die ich gesehen habe.

Siehe diesen Thread auch auf 2d, obwohl wahrscheinlich gleichermaßen in 3d anwendbar: Transform 2d spline function f(t) into f(x)

Verwandte Themen