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 :

Problème de calcul d'intégrale !


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Femme Profil pro
    UQAM
    Inscrit en
    Mai 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : UQAM
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2011
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Problème de calcul d'intégrale !
    Bonjour tout le monde (ou Bonsoir pour certain)
    Voilà encore un pb sous matlab
    Alors encore une fois je sollicite votre aide!
    Voici le problème:

    Je voudrais intégrer (dans une fonction, fichier point m) une expression symbolique et avoir en sortie une valeur exacte, voici mon programme

    Je crée la fonctionattention l'expression est un peu longue )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function [gg1] = integ1(T,t)
    syms z1
    g1=(1/2)*(d*((-4)*sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))*c1*a+sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))*b^2+2*sqrt(-4*c1*a+b^2)*a*cond_fin1*cosh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))))/(a*(sqrt(-4*c1*a+b^2)*cosh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))+2*a*cond_fin1*sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))+b*sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))));
    int(g1, z1, T, t);
     
    end
    En vérité j'ai un programme principale et dans se programme je fais appelle à cette fonction donc à part la variable z1, tout est identifié et j'ai toujours ce message d'erreur:

    ??? Undefined function or variable 'd'.
    
    Error in ==> integ1 at 3
    sachant que la variable d est bien définie (elle a une valeur fixe) et idem pour les autres variables.

    Comment faire SVP?

  2. #2
    Futur Membre du Club
    Femme Profil pro
    UQAM
    Inscrit en
    Mai 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : UQAM
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2011
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    ou plutôt voici une autre version de la fonction:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function [gg1] = integ1(T,t)
    syms z1
    g1=(1/2)*(d*((-4)*sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))*c1*a+sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))*b^2+2*sqrt(-4*c1*a+b^2)*a*cond_fin1*cosh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))))/(a*(sqrt(-4*c1*a+b^2)*cosh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))+2*a*cond_fin1*sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))+b*sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))));
    gg1=double(int(g1, z1, T, t));
     
    end

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Il faut passer toutes les variables nécessaires en argument d'entrée de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function gg1 = integ1(T,t,a,b,c1,d)
    
    syms z1
    g1=(1/2)*(d*((-4)*sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))*c1*a+sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))*b^2+2*sqrt(-4*c1*a+b^2)*a*cond_fin1*cosh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))))/(a*(sqrt(-4*c1*a+b^2)*cosh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))+2*a*cond_fin1*sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))+b*sinh(-0.5*z1*sqrt(-4*c1*a+b^2)+0.5*T*sqrt(-4*c1*a+b^2))));
    gg1=double(int(g1, z1, T, t));
    
    end
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

Discussions similaires

  1. Problème de calcule en SQL !
    Par FilipeVV dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/09/2005, 11h45
  2. Problème de calcul matricielle
    Par Clad3 dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 29/06/2005, 21h45
  3. problème de calcul des normales par sommet
    Par captainSeb dans le forum OpenGL
    Réponses: 2
    Dernier message: 21/01/2005, 13h42
  4. [Calendar]Problème de calcul de date
    Par valerie90 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 08/12/2004, 12h13
  5. Problème de calcul unix_timestamp
    Par petit_stagiaire dans le forum Administration
    Réponses: 2
    Dernier message: 28/04/2004, 15h27

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