Approximer une courbe de Bézier à travers un point spécifié en utilisant la méthode des moindres carrés en Python

Le déclencheur était que lorsque j'organisais les programmes que j'avais écrits dans le passé, l'ajustement de la courbe de Bézier (Curve fit % 9A% E3% 81% 82% E3% 81% A6% E3% 81% AF% E3% 82% 81)) est sorti, et je pensais que c'était nostalgique, mais la formule était difficile. Je ne pouvais pas du tout comprendre.

Pourquoi puis-je l'approcher avec une formule aussi mystérieuse, je suis incroyable dans l'ancien temps.

Apparemment, il a été approximé en utilisant la méthode des moindres carrés, je voudrais l'expliquer en Python après avoir examiné. J'ai sorti le livre de référence et l'ai réétudié. Au fait, la référence est du Dr. Kenichi Kanaya ["Des mathématiques optimisées que vous pouvez comprendre - des principes de base aux méthodes de calcul"](https://www.amazon.co.jp/ % 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). Je recommande ce livre car il est très facile à comprendre.

Quelle est la méthode des moindres carrés?

Méthode du carré minimum C'est une méthode typique pour approximer des données et des fonctions complexes, et c'est la base la plus importante pour l'analyse des données. Le champ d'application est très large et c'est une méthode à la fois pratique et esthétique que toute fonction peut être approchée si elle peut être différenciée.

Par exemple, disons que vous avez 20 points ici.

ダウンロード (1).png

Mettons une ligne droite qui passe au plus près des 20 points.

ダウンロード.png

Pour la fonction linéaire $ f (x) = ax + b $, trouvez les paramètres $ a $, $ b $ qui passent le plus proche de tous les points. La méthode typique pour trouver $ a $ et $ b $ est la ** méthode des moindres carrés **.

On l'appelle la méthode des moindres carrés car elle se rapproche de l'emplacement spécifié et de l'emplacement tracé de sorte que la somme des carrés des ** erreurs soit minimisée **.

Approximation en ligne droite

Tout d'abord, essayons l'approximation de ligne droite la plus simple et dessinons une ligne droite qui se rapproche des quatre points suivants.

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

ダウンロード (2).png

La fonction linéaire est $ f (x) = ax + b $, $ a $ est la pente et $ b $ est la section. Pour la fonction $ f (x) $, trouvez les paramètres $ a $ et $ b $ qui minimisent le carré de l'erreur au point spécifié.

En supposant que l'emplacement spécifié est $ y $, la fonction $ j (x, y) $ qui calcule le carré de l'erreur est la suivante.

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

Puisque la somme de $ j $ doit être minimisée pour N points, la formule de la méthode des moindres carrés est la suivante.

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

Trouvez la dérivée partielle de la fonction d'erreur j (x, y)

Soudain, le mot ésotérique ** fonction de biais ** est sorti, mais ne vous inquiétez de rien. Même les élèves du primaire peuvent calculer s'ils connaissent la méthode de calcul.

La différenciation d'une fonction qui a deux variables ou plus par rapport à une variable est appelée ** différenciation partielle **. Et la fonction obtenue par différenciation partielle est appelée ** dérivée partielle **.