Eine Möglichkeit ist Lagrange polynominal die eine Methode zur Erzeugung eines Polynoms ist, das alle gegebenen Datenpunkte durchläuft.
Während meines ersten Jahres an der Universität habe ich ein kleines Tool geschrieben, um dies in 2D zu tun, und Sie können Sie finden es auf dieser Seite wird er Lagrange-Löser genannt. Auf der Wikipedia-Seite gibt es auch eine Beispielimplementierung.
Das funktioniert folgendermaßen: Sie haben ein Polynom der Ordnung n, p(x)
wobei n die Anzahl der Punkte ist, die Sie haben. Sie hat die Form a_n x^n + a_(n-1) x^(n-1) + ...+ a_0
, donde _
ist tiefgestellt, ^
ist Macht. Diese wird dann in eine Reihe von Gleichungen umgewandelt:
p(x_1) = y_1
p(x_2) = y_2
...
p(x_n) = y_n
Sie wandeln die obige Matrix in eine augmentierte Matrix um und lösen die Koeffizienten a_0 ... a_n
. Dann haben Sie ein Polynom, das durch alle Punkte geht, und Sie können nun zwischen den Punkten interpolieren.
Beachten Sie jedoch, dass dies für Ihre Zwecke möglicherweise nicht geeignet ist, da es keine Möglichkeit bietet, die Krümmung usw. anzupassen - Sie sind auf eine einzige Lösung festgelegt, die nicht geändert werden kann.