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 :

Extraire les coefficient d'un "Fit" de courbe


Sujet :

MATLAB

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 65
    Points : 41
    Points
    41
    Par défaut Extraire les coefficient d'un "Fit" de courbe
    Bonjour,

    J'ai des courbes expérimentales de la Capacité calorifique en fonction de la température. Cette courbe a l'air d'être une somme de plusieurs courbe "gaussiennes".

    Du coup, pour connaitre les coefficient des mes gaussiennes, j'utilise la fonction fit.

    Et finallement, ma question est : comment transformer en variable les coefficients que matlab me sort. J'ai bien cherché dans l'aide, mais je n'ai pas trouvé.

    Par ailleurs, je ne peux pas vous faire de copier coller de mon code car le pc sur lequel matlab tourne n'a pas le net, et vis versa...

    Merci par avance!

  2. #2
    Membre confirmé
    Avatar de Dam2227
    Inscrit en
    Juin 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 343
    Points : 487
    Points
    487
    Par défaut
    Salut.
    Tout d'abord, pourquoi veux-tu transformer en variables tes coefficients? Le but de la manœuvre est bien d'avoir des coefficients constants non?
    Ensuite, je ne comprend pas très bien la question. Si le fit marche et que tu arrives à avoir les coefficients, à ce moment là, pour changer leur valeur, il suffit de recopier l'expression utilisée pour le fit avec les nouvelles valeurs pour les coefficients (une nouvelle valeur pour un coefficient = une courbe, etc...).
    Concernant le fit, tu peux aussi voir du côté de fittype, qui pourrait t'être utile également.
    Bon courage
    Matlab 7.14.0.739 (R2012a)
    C/C++, python, R, SQL, Pig, MR

    Ma philosophie: Ne rien faire, mais le faire bien.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 65
    Points : 41
    Points
    41
    Par défaut
    pardon, je me suis mal exprimé.

    Le problème c'est qu'il ne fait que m'afficher mes coefficients. Il m'ecrit tout un blabla, avec à la fin

    a1=...
    b1=...
    c1=...

    mais, a1, b1 et c1 ne sont pas dans le work space.

  4. #4
    Membre confirmé
    Avatar de Dam2227
    Inscrit en
    Juin 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 343
    Points : 487
    Points
    487
    Par défaut
    Ah, je comprend mieux. En fait, les solutions sont rangées dans un cfit object (tu peux regarder sur l'aide de Matlab pour avoir plus de détails). En gros, ça fonctionne comme une structure. Il suffit de faire appel au bon champ pour avoir tes données. Voici un exemple :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    x=[1 2 3 4 5 6 7 8 9]';
    >> y=(x+0.01*rand(9,1)).^2+(x+0.01*rand(9,1))+3;
    >> [fit1,gof1,out1]=fit(x,y,'poly2')
     
    fit1 =
     
         Linear model Poly2:
           fit1(x) = p1*x^2 + p2*x + p3
         Coefficients (with 95% confidence bounds):
           p1 =      0.9988  (0.9953, 1.002)
           p2 =       1.023  (0.988, 1.059)
           p3 =        2.98  (2.903, 3.057)
     
     
    gof1 = 
     
               sse: 0.0037
           rsquare: 1.0000
               dfe: 6
        adjrsquare: 1.0000
              rmse: 0.0248
     
     
    out1 = 
     
            numobs: 9
          numparam: 3
         residuals: [9x1 double]
          Jacobian: [9x3 double]
          exitflag: 1
         algorithm: 'QR factorization and solve'
        iterations: 1
     
    >> fit1.p1
     
    ans =
     
        0.9988
     
    >> fit1.p2
     
    ans =
     
        1.0234
     
    >> fit1.p3
     
    ans =
     
        2.9797
    Bon courage!

    EDIT : évidemment, si tu veux avoir accès aux autres grandeurs, comme la rmse, il suffit de procéder de la même manière.
    Matlab 7.14.0.739 (R2012a)
    C/C++, python, R, SQL, Pig, MR

    Ma philosophie: Ne rien faire, mais le faire bien.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 65
    Points : 41
    Points
    41
    Par défaut
    Merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Supprimer les erreurs de syntaxe dues aux quotes
    Par gotenks dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/01/2006, 16h10

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