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 :

[fminsearch] Erreur


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Femme Profil pro
    bordeaux
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : bordeaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut [fminsearch] Erreur
    Bonjour,
    Lorsque j'utilise la fonction de fminsearch :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Ccalc,fval,exitflag]=fminsearch(@(Ccalc) baie_opti(Ccalc),[10,10,10,10,10,10,10,10,10]);
    ça m'affiche:

    > Exiting: Maximum number of function evaluations has been exceeded
             - increase MaxFunEvals option.
             Current function value: NaN
    j'ai essayé d'ajouter une options mais sa régle pas le probléme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Ccalc,fval] = fminsearch(Ccalc,[10,10,10,10,10,10,10,10,10], optimset('MaxFunEvals', 500));

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 880
    Points : 3 426
    Points
    3 426
    Par défaut
    pour trouver le minimum global tu peux te tourner vers d'autres méthodes d’optimisation faisant intervenir le hasard (méthodes heuristiques ), tels que les algo génétiques disponibles dans la global optimization toolbox
    il existe aussi des algo heuristiques dans matlab central (godlike, aga, anneal ...)

  3. #3
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Indépendamment du 'MaxFunEvals' qui est dépassé, pourquoi ta fonction retourne-t'elle un Nan ??? Calcule ta fonction en quelques points, par exemple le point initial, ou dans son voisinnage, et vérifie qu'elle ne renvoie jamais nan, sinon elle a un problème.

  4. #4
    Candidat au Club
    Femme Profil pro
    bordeaux
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : bordeaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Fminsearch
    Bonjour,
    Merci pour vos réponses.
    "Le Fab " désolé mais j'ai pas bien compris Qu 'es que vous voulez dire ??

    "VV33D" elle n’a pas un problème ma fonction car j’ai déjà calculé la fonction en quelques points. J’ai essayé de utiliser "Fmincon" a la place de "fminserach" sa marche pas aussi .j'ai dépassé le nombre Maximum de fonction d’évaluation
    Le message suivant s'affiche :

    Exiting: Maximum number of function evaluations has been exceeded
             - increase MaxFunEvals option.
             Current function value: 75698712211.933411

  5. #5
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 880
    Points : 3 426
    Points
    3 426
    Par défaut
    j’avoue que je comprend pas moi même pourquoi j'ai répondu ça à cette question !!

    sinon ton nouveau message n'est pas un message d'erreur mais un warning
    il t'indique la raison pour laquelle l'algo s'est arrêté
    en l'occurrence tu as atteins le nombre max d'appel à la fonction sans être passé sous les seuils de tolérance délimitant une solution

    je te conseille d’augmenter maxfuneval et surtout d'afficher la progression de l'optimisation en utilisant l'option 'display' (sur 'iter-detailed' ou 'iter'), tu comprendra mieux le cheminement

    Fabien

  6. #6
    Candidat au Club
    Femme Profil pro
    bordeaux
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : bordeaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci Bcp Fabien ,je vais le faire toute suite .

  7. #7
    Candidat au Club
    Femme Profil pro
    bordeaux
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : bordeaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut erreur "Undefined function 'P' for input arguments of type 'double'."
    bonjour Fabien ,
    je reviens e vers vous car je suis encore bloquée dans un autre programme cette fois ci j'essaye de modéliser une salle informatique qui contient 2 baies qui dégage une puissance donc le but est de sortir le les 2 puissances dissipées par ces 2 baies ainsi que les températures donc j'ai commencé par rentrée tous les données qui le faut pour le calcule matricielle ensuite j'ai initialisé tous les vecteurs et j'ai défini la matrice et a la fin je lance le calcule sous une boucle . mon problème que le Matlab me donne comme erreur
    Undefined function 'P' for input arguments of type 'double'.
    voici mon code :
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    function salle_test
    global Tair_exterieur  iter  Tair_interieur
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % Modélisation d'une salle comportant  2 baies
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    % données
    e=20;
    %R_Cond =0.084;
    Tair_interieur = 30 ;
    Tair_exterieur= 42;
    lamda=0.95;
    S=25;
    %S_tot=100;
    R_ext=0.704;
    R_int=0.704;
    Rm_int=0.296;
    Rm_ext=0.296;
    hcve=10;
    hcvi=10;
    %P_surf=1
    iter=100;
    %Constantes thermo-physiques
    Cp_air=1004.5;
    rho_air=101325/(287*(273.15+Tair_interieur));
    C1=Cp_air*rho_air;
    C2=Cp_air*rho_air;
    h1=12.2;
    h2=0.9;
    %Initialisation des vecteurs de températures
     
    T1=zeros(iter,1);
    T2=zeros(iter,1);
    P1=zeros(iter,1);
    P2=zeros(iter,1);
    Tm=zeros(iter,1);
    U=zeros(5,iter);
     
    t=zeros(iter,1);
     
    dt=15;
    I=eye(2);
     
    %Définition des vecteurs A, T, B et U
    A=[-h1/C1     h1/C1 ; h2/C2   -h2/C2];
    B=[1/C1 0 ((hcvi/C1)*R_int -(hcve/C1)* R_ext + (lamda *S/e*C1)*R_ext -(lamda *S/e*C1)*R_int) ((hcvi/C1)*Rm_int-hcvi/C1-(lamda*S/e*C1)*Rm_int) ((hcve/C1)+(hcve/C1)*Rm_ext+(lamda*S/e*C1)*Rm_ext);0 1/C2 ((hcvi/C2)*R_int +(hcve/C2)* R_ext + (lamda *S /e*C2)*R_ext  -(lamda *S /e*C2)*R_int) ((hcvi/C2)*Rm_int-hcvi/C2-(lamda*S/e*C2)*Rm_int) ((hcve/C2)+(hcve/C2)*Rm_ext+(lamda*S/e*C2)*Rm_ext)];
    T=[T1; T2];
     
     
    %Boucle itérative
     
    for i=1:100
        t(i)=(i-1)*dt;
     
        T1(i)=T1(1);
        T2(i)=T1(2);
     
        P1(i)=P1(1);
        P2(i)=P2(1);
        Tm(i)=Tm(1);
        U(:,i)=[P1 ; P2 ; Tm ; Tair_interieur ; Tair_exterieur];
     
        T=(I-dt*A)\(T+dt*B*U(:,i));
     
    end
     
     
    %Tracé des mesures et des résultats du modèle
    hold on
    xlabel('Temps (min)')
    ylabel('Température (°C)')
     
    plot(t,T1,'c')
    plot(t,T2,'c:')
     
    plot(t,P1,'r')
    plot(t,P2,'b')
     
    plot(t,Tm,'g')
     
    legend('T1','T2','Tm','P1','P2')
    merci d'avance

  8. #8
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 880
    Points : 3 426
    Points
    3 426
    Par défaut
    bein à priori tu dois avoir un P(x) quelque part et il ne sait pas ce qu'est P
    mais je ne le vois pas dans ton programme (peut être dans une fonction appelée)

    peux tu mettre le message d'erreur en entier (en particulier à quelle ligne il intervient)

    Fabien

  9. #9
    Candidat au Club
    Femme Profil pro
    bordeaux
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : bordeaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    merci fabien pour votre réponse ,
    je voie pas pourquoi il n a pas reconnu P1 et P2 malgré que c'est deux puissances sont représentés dans la notation matricielles spécialement dans le vecteur U ??

Discussions similaires

  1. Erreur fréquente avec ASP et IIS
    Par Community Management dans le forum ASP
    Réponses: 2
    Dernier message: 11/02/2004, 23h20
  2. Check Url pour savoir si erreur 404 ou si le site existe
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/08/2002, 14h49
  3. Réponses: 2
    Dernier message: 27/05/2002, 20h46
  4. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    Réponses: 3
    Dernier message: 13/05/2002, 16h05
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 10h41

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