Mit scipys interpolate.splprep
Funktion erhalten Sie einen parametrischen Spline auf Parameter u
, aber die Domäne u
ist nicht das Linienintegral des Splines, es ist eine stückweise lineare Verbindung der Eingabekoordinaten. Ich habe versucht integrate.splint
, aber das gibt nur die einzelnen Integrale über u
. Natürlich kann ich eine Menge kartesischer Differentialabstände numerisch integrieren, aber ich fragte mich, ob es eine Methode in geschlossener Form gab, um die Länge eines Spline- oder Spline-Segments zu erhalten (mit scipy oder numpy), die ich übersehen hatte.Ermitteln der Länge eines kubischen B-Splines
Edit: Ich bin auf der Suche nach einer geschlossenen Lösung oder einem sehr schnellen Weg, um zu einer Maschine Präzision Antwort zu konvergieren. Ich habe die numerischen Wurzelfindungsmethoden fast aufgegeben und bin jetzt hauptsächlich nach einer geschlossenen Antwort. Wenn irgendjemand Erfahrung darin hat, elliptische Funktionen zu integrieren oder kann er mich auf eine gute Ressource (außer Wolfram) hinweisen, wäre das großartig.
Ich werde Maxima versuchen, zu versuchen, das unbestimmte Integral von dem, was ich glaube, dass die Funktion für ein Segment des Keils ist: ich dieses Cross posted on MathOverflow
Diese Lösung ist schön für Annäherungen, aber ich hätte in meiner Frage angegeben, dass ich nach einer genauen oder einer maschinenpräzisen Antwort bin. Es ist vergleichbar mit der Romberg-Lösung von EOL, aber ich müsste in reinem Python iterieren. – Paul
Da die allgemeine analytische Lösung elliptische Integrale beinhaltet, werden Sie numerisch integriert, egal welchen Ansatz Sie wählen. Die Methode, die ich skizziert habe, integriert nicht direkt den Bogenlängenausdruck, aber es ist auch eine numerische Integration. Alles, was zählt, ist, dass die Methode zu einer gewünschten Genauigkeit in einer gewünschten Zeit konvergiert. – symmetry
Um etwas genauer über diese Längen ich beziehen, dass Sie auf dem Weg ansammeln würden ... einen Blick hier: http://steve.hollasch.net/cgindex/curves/cbezarclen.html Verwenden Sie den Durchschnitt der Rumpflänge (L1) und der Sehnenlänge (L0), um die Bogenlänge der einzelnen Untersegmente zu approximieren. – symmetry