moindre carrés

moindre carrés - Programmation

Marsh Posté le 15-11-2001 à 12:40:06    

Salut à tous,
 
Pour dans une heure, il me faudrait ça :
Dans un nuage de points, il me faut l'équation de la droite qui se rapproche le plus des points.
Ne serait-ce pas les moindres carrés?
Si oui, quelqu'un n'aurait-il pas le code C d'une librairie qui ferait ça?
 
merci,
vw

 

[edtdd]--Message édité par Combi_A_Vendre--[/edtdd]


---------------
The best way to accelerate a computer running windows is at 9.8m.s-2
Reply

Marsh Posté le 15-11-2001 à 12:40:06   

Reply

Marsh Posté le 15-11-2001 à 12:47:47    

Bon, j'ai trouvé ça :
http://math.clg.qc.ca/PageNG1.html
 
Si je pouvais trouver le code C correspondant, ce serait le paradis!
 
vw


---------------
The best way to accelerate a computer running windows is at 9.8m.s-2
Reply

Marsh Posté le 15-11-2001 à 14:16:11    

Pour les "matheux", y a Numerical Recipes http://www.ulib.org/webRoot/Books/ [...] kcpdf.html, chap 15.2 "Fitting Data to a Straight Line" 661.
 
J'ai le livre sur les genoux, mais je n'arrive pas à retrouver l'exemple avec le nuage de points. La vieillesse !
 
Y a qq temps, y avait une URL où algo en Basic pour "fiter" en moindre carrés les polynômes (donc ax + b). L'ai perdue.  :crazy:

Reply

Marsh Posté le 15-11-2001 à 14:23:41    

Finalement, la méthode http://math.clg.qc.ca/PageNG1.html est bien décrite. C'est l'algo que j'avais récupéré dans la doc de ma (vieille) calculette HP33E à diodes rouges (les cristaux liquides n'existaient pas encore).
 
Il faut une variable SX2 qui fait la somme de tous les X au carré, SY2 pour les Y2, une SXY qui fait les sommes des produits X par Y, etc... Après c'est assez simple : règle de trois.
 
C'est un bon exercice. On l'a fait en Fortran en avant dernière année d'école de chimie. :D

Reply

Marsh Posté le 15-11-2001 à 14:42:20    

Combi_A_Vendre a écrit a écrit :

Salut à tous,
 
Pour dans une heure, il me faudrait ça :
Dans un nuage de points, il me faut l'équation de la droite qui se rapproche le plus des points.
Ne serait-ce pas les moindres carrés?
Si oui, quelqu'un n'aurait-il pas le code C d'une librairie qui ferait ça?
 
merci,
vw  




Tout le Pb est la...
soit tu considere cela verticalement -> regression lineaire
soit tu considere cela comme la distance d'un point a une droite, et la les choses sont differentes...

Reply

Marsh Posté le 15-11-2001 à 14:51:14    

Bon, j'ai trouvé ça, et ça me va, je le mets si ça interesse quelqu'un.
 
Merci beaucoup à vous pour votre aide.
 
 sx := 0.0
 sx2 := 0.0
 sxy := 0.0
 sy := 0.0
  !initialisations des sommes!
   
 pour k de 1 à n faire
  !on va traiter les n couples de nombres!
   
  sx := sx + x[k]
  sx2 := sx2 + x[k]* x[k]
  sxy := sxy + x[k] * y[k]
  sy := sy + y[k]
 fpour
 
 den := n * sx2 - sx^2
  !évaluation du dénominateur!
 
 g := (sy * sx2 - sxy * sx)/den
 h := (n * sxy - sy * sx)/den
  !calcul des deux coefficients!

 

[edtdd]--Message édité par Combi_A_Vendre--[/edtdd]


---------------
The best way to accelerate a computer running windows is at 9.8m.s-2
Reply

Marsh Posté le 15-11-2001 à 15:24:22    

Ca ressemble à ce que j'avais fait en QBasic. En C, ça doit aller BEAUCOUP plus vite.
 
C'est bien, on pourra le trouver tout fait maintenant. :D  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed