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 :

[MuPAD] Calcul intégral et résolution d'équation


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [MuPAD] Calcul intégral et résolution d'équation
    Bonjour!
    Je souhaite résoudre l'équation "eqn" dont l'inconnue est "xT". Cette équation fait intervenir l'intégrale "in" de la fonction "fun". "xT" est l'une des bornes d'intégration donc "in" dépend de "xT".

    J'ai essayé une résolution directe:

    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
    close all
     
    sig=5.67E-8;
    xS=4;
    phi=240;
    gam=6.5E-3;
    h=2.09E3;
    syms xT x
     
    fun=@(xT,x)exp(xT-x)*((phi*(xT+1)/(2*sig))^(1/4)+gam*h*log(x/xT))^4                         % fun dépend de x et xT
     
    in=int(@(x)fun(xT,x),xS,xT)                                                                                        % in ne dépend plus que de xT
     
    eqn=phi*(xT+2)/2 == sig*exp(xT-xS)*((phi*(xT+1)/(2*sig))^(1/4)+gam*h*log(xS/xT))^4-sig*in
    solxT=solve(eqn,xT)



    Ce code n'a pas marché, j'obtiens:


    Error using mupadengine/feval (line 157)
    MuPAD error: Error: The second argument must be of form x or x = a..b. [int]
    
    Error in solve (line 170)
      sol = eng.feval('symobj::solvefull',eqns,vars);
    
    Error in meteo (line 13)
    solxT=solve(eqn,xT) 


    Je me suis dit que l'équation était trop difficile à résoudre pour matlab (bizarre mais bon j'ai la version R2013b qui paraît-il buggue avec la fct feval..) , donc j'ai voulu procéder graphiquement:

    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
    close all
     
    sig=5.67E-8;
    xS=4;
    phi=240;
    gam=6.5E-3;
    h=2.09E3;
    syms xT x
     
    fun=@(xT,x)exp(xT-x)*((phi*(xT+1)/(2*sig))^(1/4)+gam*h*log(x/xT))^4;
     
    in=int(@(x)fun(xT,x),xS,xT);
     
    fun2=@(xT) (phi*(xT+2)/2)-(sig*exp(xT-xS)*((phi*(xT+1)/(2*sig))^(1/4)+gam*h*log(xS/xT))^4-sig*in);  % nouvelle fonction s'annulant pour les xT qui m'intéressent
     
    fplot(@(xT)fun2(xT),[-5,5]);

    Et là j'obtiens:

    Undefined function 'min' for input arguments of type 'sym'.
    
    Error in fplot (line 117)
        ymin = min(y(J)); ymax = max(y(J));
    
    Error in untitled3 (line 14)
    fplot(@(xT)fun2(xT),[-5,5]);

    En fait j'ai l'impression que matlab n'arrive même pas à calculer l'intégrale symbolique (car la variable "in" que matlab crée contient du xT ET encore du x, censé être la variable d'intégration...)
    Que faire? Je voudrais simplement connaître la/les solutions à cette équation, même approximativement!

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    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 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    chez moi (2014b) ton premier code marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    solxT =
    3.7583102872358498912857585187581 + 83.745289594895804003687036462644*i
    le second j'ai la même erreur que toi

    sinon en symbolique tu n'as pas besoin d'utiliser des fonctions anonymes
    toute expression utilisant des variables symbolique est automatiquement une fonction de celles ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fun=exp(xT-x)*((phi*(xT+1)/(2*sig))^(1/4)+gam*h*log(x/xT))^4 ;
    in=int(fun,xS,xT)
    Fabien

Discussions similaires

  1. Résolution d'équation avec intégrale
    Par kalkuling dans le forum MATLAB
    Réponses: 0
    Dernier message: 26/11/2009, 03h29
  2. Réponses: 2
    Dernier message: 27/02/2007, 11h08
  3. Résolution d'équations de plan
    Par _iri_ dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 29/10/2006, 16h29
  4. [VB6] Résolution d'équations
    Par joquetino dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/03/2006, 08h44

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