Approximieren Sie eine Bezier-Kurve durch einen bestimmten Punkt mit der Methode der kleinsten Quadrate in Python

Der Auslöser war, dass bei der Organisation der Programme, die ich in der Vergangenheit geschrieben habe, die Kurvenanpassung der Bezier-Kurve (Kurvenanpassung % 9A% E3% 81% 82% E3% 81% A6% E3% 81% AF% E3% 82% 81)) kam heraus, und ich fand es nostalgisch, aber die Formel war schwierig. Ich konnte es überhaupt nicht verstehen.

Warum kann ich es mit einer so mysteriösen Formel approximieren? Ich bin in den alten Tagen erstaunlich.

Anscheinend wurde es mit der Methode der kleinsten Quadrate angenähert, ich möchte es nach der Überprüfung in Python erklären. Ich zog das Nachschlagewerk heraus und studierte es erneut. Die Nachschlagewerke stammen übrigens von Dr. Kenichi Kanaya "Optimierte Mathematik, die Sie verstehen können - von Grundprinzipien bis zu Berechnungsmethoden". % E3% 81% 93% E3% 82% 8C% E3% 81% AA% E3% 82% 89% E5% 88% 86% E3% 81% 8B% E3% 82% 8B% E5% BF% 9C% E7 % 94% A8% E6% 95% B0% E5% AD% A6% E6% 95% 99% E5% AE% A4% E2% 80% 95% E6% 9C% 80% E5% B0% 8F% E4% BA % 8C% E4% B9% 97% E6% B3% 95% E3% 81% 8B% E3% 82% 89% E3% 82% A6% E3% 82% A7% E3% 83% BC% E3% 83% 96 % E3% 83% AC% E3% 83% 83% E3% 83% 88% E3% 81% BE% E3% 81% A7-% E9% 87% 91% E8% B0% B7-% E5% 81% A5 % E4% B8% 80 / dp / 4320017382). Ich empfehle dieses Buch, weil es sehr leicht zu verstehen ist.

Was ist die Methode der kleinsten Quadrate?

Minimum Square-Methode Ist eine typische Methode zur Approximation komplexer Daten und Funktionen und die wichtigste Grundlage für die Datenanalyse. Der Anwendungsbereich ist sehr breit und es handelt sich um eine Methode, die sowohl praktisch als auch schön ist und bei der jede Funktion angenähert werden kann, wenn sie differenziert werden kann.

Angenommen, Sie haben hier 20 Punkte.

ダウンロード (1).png

Lassen Sie uns eine gerade Linie setzen, die den 20 Punkten am nächsten kommt.

ダウンロード.png

Suchen Sie für die lineare Funktion $ f (x) = ax + b $ die Parameter $ a $, $ b $, die allen Punkten am nächsten kommen. Die typische Methode zum Finden von $ a $ und $ b $ ist die ** Methode der kleinsten Quadrate **.

Es wird als Methode der kleinsten Quadrate bezeichnet, da es die angegebene Position und die geplottete Position approximiert, so dass die Summe der Quadrate der ** Fehler ** minimiert wird **.

Gerade Annäherung

Versuchen wir zunächst die einfachste Näherung der geraden Linie und zeichnen eine gerade Linie, die sich den folgenden vier Punkten annähert.

points = [(107, 101), (449, 617), (816, 876), (1105,1153)]

ダウンロード (2).png

Die lineare Funktion ist $ f (x) = ax + b $, $ a $ ist die Steigung und $ b $ ist der Abschnitt. Suchen Sie für die Funktion $ f (x) $ die Parameter $ a $ und $ b $, die das Quadrat des Fehlers am angegebenen Punkt minimieren.

Unter der Annahme, dass der angegebene Ort $ y $ ist, lautet die Funktion $ j (x, y) $, die das Quadrat des Fehlers berechnet, wie folgt.

j(x, y) = (y - (ax + b))^2

Da die Summe von $ j $ für N Punkte minimiert werden sollte, lautet die Formel für die Methode der kleinsten Quadrate wie folgt.

J = \frac {1}{2}\sum_{k=1}^{n} j(x_k, y_k)

Finden Sie die partielle Ableitung der Fehlerfunktion j (x, y)

Plötzlich kam das esoterische Wort ** Bias-Funktion ** heraus, aber mach dir um nichts Sorgen. Auch Grundschüler können rechnen, wenn sie die Berechnungsmethode kennen.

Die Differenzierung einer Funktion mit zwei oder mehr Variablen in Bezug auf eine Variable wird als ** partielle Differenzierung ** bezeichnet. Und die durch partielle Differenzierung erhaltene Funktion heißt ** partielle Ableitung **.