Regression lineaire et moindre carré

Résolu
Signaler
Messages postés
5
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
5 juillet 2007
-
Messages postés
5
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
5 juillet 2007
-
Bonjour a tous.J'ai un problème.
Je dois linéariser un nuage de point avec un polynome de degre 7.
J'ai trouvé dans un bibliothèque un livre "Numerical Recipes..."ou tout est décrit, mais le problème c'est la méthode des moindres carrés, je ne vois pas comment mettre en forme mes données pour que ça marche...
En fait je fais 5 mesures de 24 points, comment placer tous mes points pour effectuer un regression linéaire ...

7 réponses

Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
4
Mon programme est 100% en C, et surtout pas en C++ et encore moins en JavaScript !!!

Pourquoi faire simple quand on peut faire compliqué ?
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Salut,

Les 24 points de tes 5 mesures se ressemblent ?

Genre :
1,2,3,4,5, ...
1,1,3,5,5, ...
1,2,2,3,6, ...
1,2,3,5,5, ...
1,1,2,5,5, ...

Si oui, tu peux peut être faire une moyenne pour 24 points et linéariser ensuite...
Messages postés
5
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
5 juillet 2007

J'ai pensé à cette solution mais le but c'est d'utiliser la méthode des moindres carrés...(car bcp de mesures)
En fait le problème c'est que je doit trouver 16 inconnues mais pour 2 polynomes de degre 7 de variables différentes:
cad:
Ln(A/B)=sum(a[i]A^i)+sum(b[i]B^i) avec i  de 0 a 7.
C'est surtout ça la difficulté.
J'ai pensé a un moyen en 4étapes
étape1:
     On fait une pseudo évaluation des a[i]:
          on pose: Ln(A/B)-(A-B)=sum(a[i]A^i);
       Ainsi je trouve des a[i] non definitifs
étape 2:
    on cherche les b[i]:
    on pose: Ln(A/B)-sum(a[i]A^i)=sum(b[i]B^i);
    Ainsi je trouve des b[i] non définitifs
étape 3:
    on cherche les nouveaux a[i]:

    on pose: Ln(A/B)-sum(b[i]B^i)=sum(a[i]A^i);

    Ainsi je trouve des a[i] non définitifs mais plus précis
étapes 4:
    on test la validité des a[i] et des b[i] trouvés en faisant
        Ln(A/B)-sum(b[i]B^i)-sum(a[i]A^i)
    si >seuil a définir on retourne en étape 2 on recherche de nouveaux b[i] puis a[i] ...etc...
    si <seuil les coefficients sont satisfaisants et notre linéarisation avec moindres carrés est finie

J'ai pas fini de coder cette solution.
---Je cherche un moyen pour optimiser la premiere étape en changeant
                            Ln(A/B)-(A-B)=sum(a[i]A^i) en Ln(A/B)-F(A,B)=sum(a[i]A^i); avec F(A,B) qui va bien.
--Je ne sais pas non plus si cet algo va converger et quel seuil définir (j'avais pensé a la différence entre une moyenne des mesures et le polynome trouvé...)

Si vous avez une idée...Merci
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
4
Pourquoi faire simple quand on peut faire compliqué ?
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
4
bon il y a eu un petit probleme :
http://www.cppfrance.com/codes/REGRESSIONS-LINEAIRES-EXPONENTIELLES-CUBIQUES_36079.aspx

Pourquoi faire simple quand on peut faire compliqué ?
Messages postés
5
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
5 juillet 2007

ouai, mais moi je voulais du C en fait pas du C++Javascript:Insert_Emoticon('/imgs2/smile_sad.gif');.J'avais vu le topic et j'avais téléchargé la source. Merci quand même...
Messages postés
5
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
5 juillet 2007

desolé, j'ai confondu avec un autre truc que j'avais trouvé...
En fait j'ai fait un code avec la définition que j'ai trouvé sur wiki. Ca marche trop bien et pour mon problème de plusieurs variables c'est réglé aussi.
En fait j'ai fait comme si je cherchais 15 paramètres et et j'ai arrangé la matrice J (cf la dèf sur wiki http://fr.wikipedia.org/wiki/Méthode_des_moindres_carrés ) pour que les 8 premiers paramètres ne fasse référence que a la premiere variable et les suivant a l'autre. Voili voilou merci a tous pour vos idée, ca ma bien inspiré