IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Equation droite de regression


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Equation droite de regression
    Bonjour,

    Je possède un tableau me donnant un Z en fonction d'un X et d'un Y.
    Je souhaiterai trouver l'équation à deux inconnues qui, en fonction de X et Y me retrouve Z.

    Est-ce possible ?

    J'ai jeté un coup d'oeil au poste de ol9245 mais je ne sais pas s'il s'applique à mon cas car j'ai du mal à le comprendre.

    Merci d'avance

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je pense que ca se rapprooche à quelque chose comme ça, même si je n'arrive pas à le reproduire dans mon cas

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Et si tu nous montrais l'équation en question ?
    De quelles données X, Y, Z tu disposes ?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Désolé j'ai oublié de mettre le lien dans mon précédent poste. Je pense que mon cas se rapproche de ceci.

    Le problème est que j'ai un tableau de 5 lignes et 10 colonnes. 5 x possibles combiné à 10 y possible pour obtenir 50 Z possibles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    x1 = [0 10 20 30 35 40 45 50 55 60];    %Admettons le poids
    x2 = [60 120 180 240 300];              %Admettons la puissance
    y = [292.8 294.1 295.9 292.5 290 289 287.5 282.6 277.4 274.1;
             292.8 294.1 295.9 292.5 290 289 287.5 282.6 277.4 274.1;
             292.8 294.1 295.9 292.5 290 289 287.5 282.6 277.4 274.1;
             292.8 294.1 295.9 292.5 290 289 287.5 282.6 277.4 274.1;
             292.8 294.1 295.9 292.5 290 289 287.5 282.6 277.4 274.1];
         %Admettons la consommation
     
    X = [ones(size(x1)) x1 x2 x1.*x2];
     
    scatter3(x1,x2,y,'filled')
    hold on
    x1fit = min(x1):100:max(x1);
    x2fit = min(x2):10:max(x2);
    [X1FIT,X2FIT] = meshgrid(x1fit,x2fit);
    YFIT = b(1) + b(2)*X1FIT + b(3)*X2FIT + b(4)*X1FIT.*X2FIT;
    mesh(X1FIT,X2FIT,YFIT)
    xlabel('Poids')
    ylabel('Puissance')
    zlabel('Consommation')
    view(50,10)
    J'essaie dans un premier temps de reproduire l'exemple avec mes valeurs. Après récupérer l'équation de la droite

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ton code comporte de nombreuses erreurs. Mais je présume qu'il s'agit de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    YFIT = b(1) + b(2)*X1FIT + b(3)*X2FIT + b(4)*X1FIT.*X2FIT;
    b(1), b(2), b(3) et b(4) étant les valeurs recherchées...

    Dans ce cas, oui c'est tout à fait applicable à ton cas.
    X1FIT et X2FIT étant assimilables à X et Y
    YFIT à Z.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci de l'intérêt.

    Avant ça j'ai surtout un problème de taille. Voila un exemple de données que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    %%%%%%%%%%%%%%%Données%%%%%%%%%%%%%%%
    poids = [0 10 20 30 35 40 45 50 55 60];
    puissance = [60 120 180 240 300];
    conso = [299.8 299.1 296.9 293.4 291.4 289.9 288.5 283.3 276.4 272.1;
             299.8 299.1 296.9 293.4 291.4 289.9 288.5 283.3 276.4 272.1;
             299.8 299.1 296.9 293.4 291.4 289.9 288.5 283.3 276.4 272.1;
             299.8 299.1 296.9 293.4 291.4 289.9 288.5 283.3 276.4 272.1;
             299.8 299.1 296.9 293.4 291.4 289.9 288.5 283.3 276.4 272.1];
     
    %%%%%%%%%%%%%%%Affichage%%%%%%%%%%%%%%%
    %surf(poids , puissance, conso)
    (La j'ai fait un copier/coller pour les 5 lignes mais en réalité elles sont différentes)

    La j'obtiens la visualisation graphique de mon tableau excel.
    Maintenant sur ces données je souhaiterai définir une droite de régression qui en fonction du poids et de la puissance trouve la conso.

    Vers quelle fonction faut-il s'orienter ?
    Regress convient toujours à mon cas ? Car il me semble qu'elle fonctionne que si X et Y et Z sont de même taille.


    J'ai résolu mon problème en utilisant Curve Fitting Tool fournit dans Matlab !
    Il faut lui indiqué les X, Y, Z de notre modèle et lui se charge de trouvé la droite la plus proche et donne l'équation avec les coefficients.
    Lien pour les intéressés

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je pensais mon problème résolu ... mais ce n'est pas totalement le cas finalement. Fausse joie !

    Grâce à l'outil curve fiting de MATLAB j'obtiens une équation f(x,y) qui est censé me retrouver z en fonction de x et y donc. Sauf que ce n'est pas du tout le cas j'obtiens des valeurs démesurées dans mon cas.

    J'essaie d'obtenir une équation me permettant d'obtenir Z en fonction de n'importe quel X et Y, voici ma surface : lien

    Quelqu'un aurait une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p30*x^3 + p21*x^2*y + p12*x*y^2 + p03*y^3 + p40*x^4 + p31*x^3*y + p22*x^2*y^2 + p13*x*y^3 + p04*y^4 + p50*x^5 + p41*x^4*y + p32*x^3*y^2 + p23*x^2*y^3 + p14*x*y^4;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    p00 =       292.4;
           p10 =      -5.777;
           p01 =  6.655e-015;
           p20 =      -4.217;
           p11 =  4.054e-014;
           p02 =  1.134e-013;
           p30 =      -4.133;
           p21 = -1.093e-013;
           p12 = -2.475e-014;
           p03 =  6.616e-015;
           p40 =      0.3308;
           p31 =  5.337e-015;
           p22 = -3.498e-014;
           p13 = -1.423e-014;
           p04 = -5.056e-014;
           p50 =       0.883;
           p41 =  2.765e-014;
           p32 = -6.418e-015;
           p23 =  1.888e-014;
           p14 =  1.318e-014;

  8. #8
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    Poste les vraies données. Je vais regarder.

    en attendant, regarde ici :
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

Discussions similaires

  1. Superposer une droite de regression sur un gchart
    Par elfidream dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 20/06/2009, 20h54
  2. [JFreeChart] droite de regression?
    Par Bapt.ice dans le forum 2D
    Réponses: 8
    Dernier message: 26/12/2008, 13h31
  3. Affichage des droites de regression
    Par niepoc dans le forum MATLAB
    Réponses: 3
    Dernier message: 09/06/2008, 16h30
  4. Réponses: 0
    Dernier message: 21/03/2008, 13h51
  5. equation droite espace
    Par corentin59 dans le forum Mathématiques
    Réponses: 4
    Dernier message: 18/12/2007, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo