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 :

Calcul d'intégrale


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 32
    Points : 10
    Points
    10
    Par défaut Calcul d'intégrale
    bjr
    SVP , j'aimerai calculer cette intégrale avec matlab
    (pièce jointe)

    merci pour l'aide
    Images attachées Images attachées  

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

    Et quelle difficulté rencontres-tu?
    As-tu commencé à coder quelque chose?

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    quand j’écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    t = 0:pi;
    g1(t);
    I1 = quad(@g1,0,pi);
    G1 = I1/(120*pi*pi);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    %subfunctions
    function [f] = g1(t)
    global k0 W
    f = ((sin(k0*W*0.5*cos(t))/cos(t)).^2*(sin(t)).^3);
    il m’écrit
    Undefined function or method 'g' for input arguments of type 'double'
    et là je ne sais pas où est le problème ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Dans le code que tu nous montres, il n'y a aucune variable g employée... aurais-tu un message d'erreur complet à nous montrer?
    Sinon attention à ne pas oublier le point '.' devant l'opérateur de multiplication pour faire du membre à membre et non du matriciel.
    Pour t'en convaincre: regarde la différence entre ces deux lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    t = 0:pi;
    (sin(k0*W*0.5*cos(t))/cos(t)).^2
    (sin(k0*W*0.5*cos(t))./cos(t)).^2

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    merci Winjerome...
    tu sais, j'ai enlevé la fonction du script principal , et je l'ai mise dans le même répertoire du travail, et dans le script je l'ai appelé c'est tout (j'ai écrit seulement son nom) et je pense que c'est bon...
    maintenant Winjerome

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f = ((sin(k0*W*0.5 *cos(t))./cos(t)).^2 *(sin(t)).^3);
    il m'affiche
    Error using ==> mtimes
    Inner matrix dimensions must agree.
    et la aussi j'ai essayé mais toujours le même message , je ne sais pas ou il est le problème de dimensions, j'ai essayé de mettre le transposé mais c'est la même chose , peux-tu m'aider si tu veux?
    merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Comme l'indique ma signature, pour toute erreur avant toute chose, on regarde la Inner matrix dimensions must agree.
    Puis avec la connaissance de ce à quoi est liée l'erreur, on la reproduit en insérant des breakpoints et on essaie de la corriger.
    Donc dans un premier temps, rajoute un breakpoint à la ligne de l'erreur ( à savoir f = ((sin(k0*W*0.5 *cos(t))./cos(t)).^2 *(sin(t)).^3);)
    Ensuite en ligne de commande, exécute au fur et à mesure ta ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sin(k0*W*0.5*cos(t));  % OK
    sin(k0*W*0.5*cos(t))./cos(t); % OK maintenant mais avant tu aurais eu l'erreur ici.
    (sin(k0*W*0.5*cos(t))./cos(t)).^2;   % OK
    (sin(k0*W*0.5*cos(t))./cos(t)).^2*(sin(t)); % Inner matrix dimensions must agree.
    On a donc trouvé la position exacte de l'erreur, maintenant on regarde nos dimensions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    K>> size((sin(k0*W*0.5*cos(t))./cos(t)).^2)
         1     4
     
    K>> size((sin(t)))
         1     4
    Et maintenant on se rappelle ce que ce bon vieux Winjerome nous a dit dans son deuxième message (qui était d'ailleurs plutôt la pour division):
    Citation Envoyé par Winjerome Voir le message
    Sinon attention à ne pas oublier le point '.' devant l'opérateur de multiplication pour faire du membre à membre et non du matriciel.
    Ceci est valable pour la multiplication comme pour la division.

    C'était si dur que ça?
    Dernière modification par Invité ; 23/05/2012 à 16h57.

Discussions similaires

  1. [quad] Erreur lors d'un calcul d'intégrale
    Par LAUM.FR dans le forum MATLAB
    Réponses: 18
    Dernier message: 26/11/2008, 12h16
  2. Calcul d'intégrale Octave/MATLAB
    Par Padri dans le forum MATLAB
    Réponses: 7
    Dernier message: 09/10/2008, 19h09
  3. Réponses: 7
    Dernier message: 25/09/2008, 12h31
  4. Calcul d'intégrales en PL/SQL
    Par boxsters dans le forum PL/SQL
    Réponses: 2
    Dernier message: 02/05/2007, 09h09
  5. Calcul d'intégrale double
    Par noomane dans le forum Fortran
    Réponses: 4
    Dernier message: 30/04/2007, 01h21

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