Regression lineaire et moindre carré

Résolu
befa71380 Messages postés 5 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 5 juillet 2007 - 27 juin 2007 à 18:33
befa71380 Messages postés 5 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 5 juillet 2007 - 5 juil. 2007 à 19:08
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 ...
A voir également:

7 réponses

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

Pourquoi faire simple quand on peut faire compliqué ?
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
28 juin 2007 à 10:44
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...
0
befa71380 Messages postés 5 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 5 juillet 2007
28 juin 2007 à 15:57
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
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
30 juin 2007 à 08:19
Pourquoi faire simple quand on peut faire compliqué ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
30 juin 2007 à 08:20
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é ?
0
befa71380 Messages postés 5 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 5 juillet 2007
1 juil. 2007 à 20:25
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...
0
befa71380 Messages postés 5 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 5 juillet 2007
5 juil. 2007 à 19:08
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é
0
Rejoignez-nous