Une droite dans l'espace et les moindres carrés

Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
ForgetTheNorm
Messages: 4
Enregistré le: 13 Déc 2010, 19:04

Une droite dans l'espace et les moindres carrés

par ForgetTheNorm » 13 Déc 2010, 19:31

Bonjour à tous

Pour mon premier message, je commence fort. J'espère publier dans la bonne catégorie, car à mon âge, on ne se rappelle plus quand on a vu telle ou telle notion mathématique.

Je cherche à appliquer la méthode des moindres carrés sur une droite dans l'espace (tout du moins, je crois). Plus concrètement, en ayant n points (, sinon ce n'est pas drôle), je souhaite avoir la droite en 3 dimensions qui approxime le mieux mes points.

C'est un débat ouvert, je ne connais pas la solution, n'hésitez pas à le faire avancer avec des nouvelles idées. Partons de 3 points, décrits comme ceci :
, , .

1) Expression d'une droite dans l'espace et nombre de variables
Tout d'abord, il faut se fixer la manière de représenter une droite dans l'espace. Pour l'instant, 2 solutions s'offrent à moi ;
1.a) Avec un vecteur directeur

Cette solution nous donne 3 équations à 7 inconnues :


2.a) Avec l'intersection de 2 plans dans l'espace

D'après ce que j'ai compris, on peut simplifier l'un des plans en admettant qu'il passe par , c'est à dire , c'est à dire
.

Dans les 2 cas précédents, j'ai l'impression qu'il nous faut 7 variables pour définir une droite (et que ce n'est pas négociable si l'on veut avoir l'ensemble des droites en 3 dimensions). Il existe aussi des formules à base de quaternions, mais ça me paraît compliqué pour mon application.

2) Principe des moindres carrés
Le principe des moindres carrés est de partir d'une formule générale, par exemple , et de minimiser la distance entre la courbe approximée et chaque point. Si l'on applique ça dans l'espace, on doit donc minimiser
, sachant que appartiennent à ma droite approximée.
En d'autres termes, il faut trouver des valeurs tels que cette formule soit minimale.
.

On se retrouve ici à minimiser une fonction à 9 inconnues (, , , , , , , , )... Ce qui me rebute un petit peu, je n'ai aucune idée de la méthode.

Je suis bloqué dans mon raisonnement, je ne dois pas avoir la bonne façon de faire, je vous laisse la parole !

Pierre



Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21479
Enregistré le: 11 Nov 2009, 23:53

par Ben314 » 13 Déc 2010, 20:40

Salut,
Si on parle du "principe des moindres carrés", ben justement, c'est parce que, en général, ce qu'on cherche à minimiser, c'est pas la somme des distance à l'objet que l'on cherche (droite, plan, parabole,...) mais la somme des carrés des distances à l'objet en question.
Calculatoirement parlant, le but est simple : virer les racines carrées qui font chier...
Ensuite, pour "définir" une droite, normalement, on doit pouvoir s'en sortir avec 4 paramètres (2 pour la direction et 2 pour la "position"). Par exemple, un truc du style y=ax+b ; z=cx+d modélise presque toutes les droites de l'espace.
A ta place, je commencerait par calculer quelle est le carré de la distance d'un point Mi:(xi,yi,zi) à une droite D:y=ax+b,z=cx+d puis je regarderais la formule (dépendant de a,b,c,d) donnant la somme des distances.
Sauf erreur elle va être de degré 2 en a,b,c,d et, pour trouver le minimum, il suffira de dire que les 4 dérivées partielles par rapport à a,b,c,d doivent être nulles, ce qui te fera un système linéaire de 4 équations à 4 inconnues : un peu chiant mais tout ce qu'il y a de plus faisable.
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

ForgetTheNorm
Messages: 4
Enregistré le: 13 Déc 2010, 19:04

par ForgetTheNorm » 13 Déc 2010, 21:33

Bonjour Ben et merci pour ta réponse rapide.

Effectivement, la formule que tu donnes pour définir une droite ne doit pas définir la droite (si je ne dis pas de bêtises, car si , et ). Ce n'est pas si grave, puisque c'est un système d'approximation.

Le soucis est que j'ai du mal à me forger cette représentation. Est-ce que, du coup, la distance d'un point à cette droite est égale à la racine carrée de la somme des carrés des 2 "sous-fonctions" ?

Pierre

ForgetTheNorm
Messages: 4
Enregistré le: 13 Déc 2010, 19:04

par ForgetTheNorm » 13 Déc 2010, 22:23

Je précise qu'avec Maple, le résultat de minimisation d'une fonction à 9 inconnues ne lui pose aucun problème ! J'aimerai savoir comment fait-il !

Pierre

Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21479
Enregistré le: 11 Nov 2009, 23:53

par Ben314 » 14 Déc 2010, 00:40

Pour Maple, je sais pas trop : si c'est du numérique (i.e. avec des valeurs concrètes à part pour les variables à minimiser), il doit sans doute fair un truc style méthode de Newton, mais au fond j'en sait rien...

Bon, sinon, pour la distance d'un point N(x,y,z) à une droite D d'équation paramétrique t->M(t)=(t,at+b,ct+d) tu écrit que le carré de la distance de N à M(t) est :
(t-x)²+(at+b-y)²+(ct+d-z)² = At²+Bt+C (en développant, mais j'ai la flemme...)
et le minimum est atteint lorsque t=-B/(2A) et il vaut (4AC-B²)/4A (qui contrairement à ce que j'avais dit n'est pas quadratique en a,b,c,d donc ça va être un peu chiant à minimiser...)
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

ForgetTheNorm
Messages: 4
Enregistré le: 13 Déc 2010, 19:04

par ForgetTheNorm » 14 Déc 2010, 01:10

Ben314 a écrit:(t-x)²+(at+b-y)²+(ct+d-z)² = At²+Bt+C (en développant, mais j'ai la flemme...)


Je le fais pour toi :
(t-x)²+(at+b-y)²+(ct+d-z)²
= t² + x² -2tx + a²t² + b² + y² + 2bat -2yat -2by + c²t² + d² + z² + 2ctd - 2ctz - 2dz
= (1 + a² + c²)t² + (-2x + 2ba - 2ya + 2cd - 2cz)t + (b² + y² - 2by + d² + z² - 2dz)
Et donc
A = (1 + a² + c²)
B = (-2x + 2ba - 2ya + 2cd - 2cz)
C = (b² + y² - 2by + d² + z² - 2dz)

Comme on s'en fiche un peu de la position sur la droite pour l'instant, mais que c'est le mimum qui nous intéresse, la distance minimum à la droite vaut :
(4AC-B²)/4A
= (4(1 + a² + c²)(b² + y² - 2by + d² + z² - 2dz) - (b² + y² - 2by + d² + z² - 2dz)²)/4(1 + a² + c²)

... Ce qui risque d'être assez rébarbatif pouf calculer la somme sur les 3 points. C'est assez désespérant, du coup !

Existe-til une "bonne" méthode d'approximation, un algorithme informatique pour calculer cette droite ?

Pierre

Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21479
Enregistré le: 11 Nov 2009, 23:53

par Ben314 » 14 Déc 2010, 01:27

Que tu ait n=3 points ou n=250, ça ne changera pas grand chose : de tout façon, il faut que tu développe ton expression et, lorsque tu fait la somme de ton expression pour les n points (et en général, on divise ensuite par n pour avoir des moyennes) tu as des coeffs avec des a,b,c,d multipliés par des sommes de xi² ou de xiyi ou de... divisés par n que n'importe que tableur sait calculer "direct" lorsque tu as une série de nombres.
On utilise en général la notation mathématique E(X²) ou E(XY) ou ... pour ces moyennes.
Ce qu'il faut voir, c'est que la formule que tu as est la même qu'il y ait 3 points ou 3000.
Aprés, ça ne dit pas si c'est super façile à minimiser (du fait de la division par 1+a²+c²).

Les dérivées partielles en b et d sont simples (vu que b et d ne sont pas au dénominateur), et à mons avis, dire qu'elles sont nulle devrait dire que la droite doit passer par le centre de gravité de ton nuage de point.

C'est avec les dérivées partielles en a et c que je sais pas si on s'en sort façilement...
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

 

Retourner vers ⚜ Salon Mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 9 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite