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 :

minimiser l'erreur entre deux courbes expérimentales et numériques


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Mécanique
    Inscrit en
    Avril 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Mécanique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 39
    Par défaut minimiser l'erreur entre deux courbes expérimentales et numériques
    bonjour
    j'ai de nouveau un problème :
    voila le code que j'ai utilisé pour minimiser l'erreur entre deux courbes expérimentales et numériques:
    le code principal est (minas):
    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
    clear;
    lam0=[0.01 0.05 0.05 ]
    t0=clock;
    optio=optimset('TolFun',10e-8,'TolX',10e-7,'MaxFunEvals',2000,'MaxIter' ,1500,'display','iter','DiffMi nChange',0.04,'DiffMaxChange', 0.51);
    %[lam,FVAL,EXITFLAG,OUTPUT] = fminunc('fonct',e,optio);
    [lam,FVAL,EXITFLAG,output] = fminsearch('fonct',lam0,optio) ;
     
    lam
    output
    execution_time=etime(clock, t0);
    disp(sprintf(' L''algoritme= %s \r',output.algorithm));
    disp(sprintf(' Le temps d''exécution= %g \r',execution_time));
    disp(sprintf(' Le nombre d''itérations=%g \r',output.iterations));
    disp(sprintf(' lam=%g \r',lam));
    disp(sprintf(' FVAL =%g \r',FVAL));
    disp(sprintf(' ______________________________ ______________________________ ______________________________ __'));
    le problème est si je veux lancer le programme principal il m'affiche cette erreur :
    ??? Attempted to access Fint(14); index out of bounds because numel(Fint)=13.
    
    Error in ==> fonct at 17
    X=(Fint(i)-Fsim(i)).^2;
    
    Error in ==> fminsearch at 326
    x( = xe; fxe = funfcn(x,varargin{:});
    
    Error in ==> minas at 10
    [lam,FVAL,EXITFLAG,output] = fminsearch('fonct',lam0,optio) ;
    alors y-a-t'il quelqu’un qui peut m'aider à résoudre ce problème merci

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

    L'erreur est assez explicite: ta variable Fint contient 13 valeurs (numel(Fint) = 13) et toi tu fais une boucle allant de 1 à 40, donc dès la valeur i = 14, ça plante.
    Quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i=1:length(Fint)
            X=(Fint(i)-Fsim(i)).^2;
            b=b+X
    end
    serait plus juste, voire b = sum((Fint-Fsim).^2);
    Dernière modification par Invité ; 22/05/2011 à 00h22.

  3. #3
    Membre averti
    Femme Profil pro
    Mécanique
    Inscrit en
    Avril 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Mécanique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 39
    Par défaut salut
    salut
    bon je pense pas que c'est ca le problème car Fint contient surement 40 valeurs plutôt le problème est dans l'algorithme d’optimisation lui même c’est a dire dans minas car il ne converge pas dés la valeur 13, en fait tout ce code c'est pour démarrer abaqus afin de déterminer des paramètres de matériau alors si l'optimisation donne une valeur négatif ABAQUS ne va pas accepter ca et donc le programme diverge tu voit
    donc je doit essayer de trouver un autre algorithme qui est diffèrent de simplex(fminsearch) et qui donne le résultat le plus convenable
    et merci ;

  4. #4
    Membre averti
    Femme Profil pro
    Mécanique
    Inscrit en
    Avril 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Mécanique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 39
    Par défaut optimisation
    y'a t'il quelqu'un qui connait qu'est ce qu'on utilise pour faire l'optimisation d'un probléme avec des contraintes en fait l'utilisation de simplex(fmnsearch) ne tient pas compte des contraintes
    et donc?????
    MERCI pr tout le monde

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Si tu possèdes l'Optimization Toolbox, tu peux regarder la fonction doc fmincon

  6. #6
    Membre averti
    Femme Profil pro
    Mécanique
    Inscrit en
    Avril 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Mécanique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 39
    Par défaut
    malheureusement
    je l'ai utilisé maais sans resultat il m'affiche un message d'erreur

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

Discussions similaires

  1. [Débutant] Calcul d'erreur entre deux courbes
    Par louftansa dans le forum MATLAB
    Réponses: 14
    Dernier message: 03/06/2009, 15h10
  2. [patch][fill] Coloriage entre deux courbes
    Par kis93 dans le forum MATLAB
    Réponses: 6
    Dernier message: 02/10/2008, 22h01
  3. Différence entre deux courbes
    Par malokox dans le forum Signal
    Réponses: 2
    Dernier message: 24/06/2008, 10h15
  4. Calcul erreur entre deux images noir et blanc
    Par b4sols dans le forum Images
    Réponses: 1
    Dernier message: 22/03/2007, 08h59
  5. [VBA E]Colorier l'espace entre deux courbes
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/07/2006, 09h19

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