Régressions (lineaires,exponentielles,cubiques ...)

Soyez le premier à donner votre avis sur cette source.

Vue 19 237 fois - Téléchargée 2 735 fois

Description

Il s'agit d'un programme qui prend en donnees des points (des echantillons) et qui
calcule les courbes qui s'approchent le mieux de l'ensemble de points.

Le "mieux" est a comprendre au sens des moindres carres de Gauss, ie minimisation quadratique des residus
(les erreurs, ou les ecarts en les points et la courbe)
Soit le systeme matriciel A.X=B (avec A non necessairement carree), on a plus d'equations que d'inconnues,
ils nous faut trouver le Xmin qui minimise ||A.X-B||
(en fait cela revient a considerer A.X=B+Epsilon, et on cherche X tel que Epsilon soit de norme la plus petite.
La methode des moindres carres de Gauss nous dit que X verifie le systeme carre suivant :
(At.A).X=(At.B) avec At la transposee de la matrice A
Ce systeme se resoud avec un pivot de Gauss classique.

Pour faire des regressions (non-lineaires) il 'suffit' d'invoquer l'iteration de Newton :
l'algorithme de Newton consiste a prendre la tangente au point courant, et d'en prendre
l'intersection avec l'axe des abcisses, et de considerer cette intersection comme le point
courant, il suffit apres d'iterer, on converge vers un zero de la fonction (sous certaines
conditions bien 'merdique' (excusez-moi ce langage) qui donne d'ailleurs lieu a des tres jolies
fractales ... mais c'est une autre histoire)
Bon ici le probleme c'est que l'on est a plusieurs variables, donc il faut generaliser ce principe.
La tangente est representee par une matrice , ect...

Avec ces deux methodes combinees on peut faire ce programme, avec une tres jolies interfaces graphiques.
Voici les regressions possibles (dans l'ordre des icones) :
  • constante [y=Cte]
  • droite [y=a.x+b]
  • parabole [y=a.x^2+b.x+c]
  • polynome de degre 3 [y=a.x^3+b.x^3+c.x+d]
  • exponentielle [y=a.e^(b.x)+c]
  • logarithme neperien [y=a.ln(x+b)+c]
  • hyperbole [y=a/(x+b)+c]
  • sinusoide [y=A.sin(w.x+phi)+k]
  • exponentielle (pente a l'origine seule degre de liberte) [y=50*(1-e^(-alpha.x))]
  • puissance [y=K.x^alpha]
  • droite passant par l'origine [y=a.x]
  • loi Gaussienne (ou loi normale) [y=LoiGaussienne(m,s)]


Le programme permet aussi d'avoir la distribution des residus :
il y a l'ecrat type (racine carree de la variance qui est elle-meme la somme des carres des ecarts)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
4
béosienne ?? kesako !?
Messages postés
1
Date d'inscription
mercredi 24 juin 2009
Statut
Membre
Dernière intervention
24 juin 2009

Ton programme à l'air super et semble répondre tout à fait à ce que je souhaite faire.Seulement, je suis une béosienne et je ne sais pas comment faire tourner ton programme. Pourrais-tu m'aider.
Merci
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
4
Sans vouloir etre mechant : il n'y a aucune classe ni d'ailleurs de methodes !
Messages postés
27
Date d'inscription
dimanche 4 juin 2000
Statut
Membre
Dernière intervention
13 juillet 2007

Bravo pour ce code source imbuvable. Merci de se renseigner sur la création des classes et des méthodes qui vont avec.
Messages postés
1
Date d'inscription
dimanche 2 juillet 2006
Statut
Membre
Dernière intervention
3 juillet 2006

Bonjour,

Comment faire tourner ce package ?

Merci
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.