Problème fsolve MATLAB résolution système non linéaire
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Problème fsolve MATLAB résolution système non linéaire



  1. #1
    gotenths

    Problème fsolve MATLAB résolution système non linéaire


    ------

    Bonjour à tous !

    J'essaye de résoudre un système de 4 équations à inconnues non linéaire à l'aide de fsolve de Matlab, mais j'ai toujours une erreur.
    J'ai pourtant suivi l'aide en ligne de Matlab.

    C'est assez urgent donc si vous avez la solution merci beaucoup !!

    J'ai tout d'abord créé un fichier myfun.m comprenant mon système de 4 équations (cpc1, Tc1,etc. sont des constantes définies dans mon prog principal) :

    Code:
    function F = myfun(x)
    F = [cpc1*(Tc1-x(1)) - cpf1*(x(2) - x(3));
        C*(x(2) - x(3)) - E*(Tc1 - x(2) - x(1) + x(3))/(log((Tc1 - x(2))/(x(1) - x(3))));
        A*(x(1) - x(3))-B*(x(4) - Tje);
        B*(x(4) - Tje) - D*(x(1) - x(4) - x(3) + Tje)/(log((x(1) - x(4))/(x(3) - Tje)))];


    Et ensuite j'essaye de résoudre ça à la fin de mon programme principal :

    Code:
    x0 = [100; 100; 100; 100];           % Make a starting guess at the solution
    options=optimset('Display','iter');   % Option to display output
    [x,fval] = fsolve(@myfun,x0,options)  % Call solver


    Mais j'ai le message d'erreur suivant :

    Code:
    ??? Input argument "cpc1" is undefined.
    
    Error in ==> myfun at 2
    F = [cpc1*(Tc1-x(1)) - cpf1*(x(2) - x(3));
    
    Error in ==> fsolve at 254
                fuser = feval(funfcn{3},x,varargin{:});
    
    Error in ==> monprog at 44
    [x,fval] = fsolve(@myfun,x0,options)  % Call solver
    Caused by:
        Failure in initial user-supplied objective function evaluation. FSOLVE cannot
        continue.


    Il ne semble pas reconnaître les constantes que j'ai pourtant calculées dans mon programme principal....

    Merci d'avance !

    -----

  2. #2
    fiatlux

    Re : Problème fsolve MATLAB résolution système non linéaire

    Salut, bienvenue sur le forum.

    Tu as donné toi-même la réponse à ta question:
    cpc1, Tc1,etc. sont des constantes définies dans mon prog principal
    La portée des variables définies dans un fichier matlab s'arrête à ce fichier. Si tu veux les utiliser dans ta fonction il faut les passer en arguments de la fonction. Oui je sais c'est embêtant mais c'est comme ça.
    La pie niche-t-elle haut ? Oui, la pie niche haut.

  3. #3
    gotenths

    Re : Problème fsolve MATLAB résolution système non linéaire

    Merci pour ta réponse !
    Que veux-tu dire par "les passer en arguments" ? Est-ce que tu pourrais me donner un exemple ? (désolé je suis novice !)

  4. #4
    invite79d10163

    Re : Problème fsolve MATLAB résolution système non linéaire

    Tu peux aussi ajouter le terme "global" devant les variables que tu souhaitent partager dans différentes fonctions.

  5. A voir en vidéo sur Futura
  6. #5
    fiatlux

    Re : Problème fsolve MATLAB résolution système non linéaire

    Tu peux aussi ajouter le terme "global" devant les variables que tu souhaitent partager dans différentes fonctions
    Eh ben j'ai appris quelque chose moi aussi Je me disais bien que quelque chose comme ça devait exister, mais je ne connaissais pas.

    Ce que j'entendais par "les passer en arguments" c'est simplement au lieu d'appeler ta fonction avec fsolve(@myfun,x0,options), tu l'appeles avec fsolve(@myfun,x0,options,cpf1, Tc1,....etc.).
    La pie niche-t-elle haut ? Oui, la pie niche haut.

  7. #6
    gotenths

    Re : Problème fsolve MATLAB résolution système non linéaire

    OK, merci beaucoup à tous les deux !
    J'ai essayé de mettre toutes mes constantes en argument et ça marche !!

Discussions similaires

  1. Résolution système d'équation non linéaire
    Par invite41b15631 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 08/02/2011, 09h49
  2. Résolution de systeme linéaire
    Par invite4abe9189 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 25/03/2009, 19h29
  3. algèbre linéaire: résolution de système.
    Par invitecc6d6d94 dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 12/03/2009, 16h18
  4. résolution système linéaire
    Par inviteb5a11216 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 21/05/2008, 00h53
  5. Résolution de système d'équations non linéaire
    Par bansan dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 16/02/2007, 15h39
Découvrez nos comparatifs produits sur l'informatique et les technologies.