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 :

Intégrale double + graphique


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut Intégrale double + graphique
    Bonjour à tous,
    j'aimerais modéliser la variation du flux magnétique autour d'une bobine en matlab et, ayant trouvé l'équation de celui-ci, j'ai essayé de résoudre mon intégrale double avec dblquad mais celà ne fonctionne pas...
    on m'a parlé de méthode de trapèzes et autres mais je n'y connais absolument rien.. Ce qu'il me faut, c'est juste l'expression du graphique obtenu par la résolution de l'intégrale que voici entre 0 et 2*pi pour les x et entre 0 et entre 0 et 0.0038 pour les y:
    f = (0.005-y*cos(x))/((0.005^2+y^2-2*0.005*y*cos(x))^(3/2))y*(2*pi)(2*pi);

    En espérant que quelqu'un puisse m'aider dans la réalisation du code. Merci d'avance.

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

    j'ai essayé de résoudre mon intégrale double avec dblquad mais celà ne fonctionne pas...
    Qu'est-ce qui ne fonctionne pas?
    Obtiens-tu une erreur?
    Montre-nous ce que tu as essayé de coder, même si c'est faux.

    Ensuite,
    Ce qu'il me faut, c'est juste l'expression du graphique obtenu par la résolution de l'intégrale que voici entre 0 et 2*pi pour les x et entre 0 et entre 0 et 0.0038 pour les y:
    La résolution de cette intégrale double te donnera UNE valeur, je ne vois pas ce que tu entends par "l'expression du graphique obtenu" ...

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    Effectivement, je me suis mal exprimé. Ce que j'aimerais obtenir en fin de compte,c'est l'expression de la fonction f intégrée selon x allant de 0 à 2*pi. Et donc obtenir une nouvelle fonction variant en fonction de y uniquement..
    Voilà ma fonction de départ:
    f = (0.005-y*cos(x))/((0.005^2+y^2-2*0.005*y*cos(x))^(3/2))

    Le problème, je n'ai encore rien essayé de faire en matlab (mis à part utiliser la fonction 'help'), est que je ne trouve pas de quelle manière, quelle commande utiliser pour trouver l'expression de l'intégrale de f qui ne sera pas un nombre mais une nouvelle fonction de y cette fois (je ne sais pas si je suis très clair...:s).

  4. #4
    Invité
    Invité(e)
    Par défaut
    Dans ce cas, tu peux regarder du côté de la fonction
    Qui utilise justement la méthode des trapèzes dont on t'a parlé.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    ok merci beaucoup, je vais regarder à cela.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    je ne comprends pas très bien comment la fonction 'trapz' pourrait me renvoyer une fonction dépendante de y dans ma formule...
    Voilà ce que j'ai essayé et le résultat que j'ai obtenu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    X=0:2*pi/1000:2*pi;
    y=(0.005-y*cos(X))/((0.005^2+y^2-2*0.005*y*cos(X))^(3/2));
    ??? Error using ==> mtimes
    Inner matrix dimensions must agree.
    Je me doutais bien que ce ne serait pas une bête application de la fonction mais je suis vraiment perdu...

  7. #7
    Invité
    Invité(e)
    Par défaut
    Commence d'abord par créer la fonction f(x,y)
    Ensuite pour ton erreur, tu multiplies et élèves des vecteurs à des exposants.
    Il te faut rajouter des '.' afin de le faire membre à membre:
    Un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    x = [1 2 3];
    x.*x
    x.^2

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    Ici, comme input arguments, je dois juste mettre mon x et mon y? ca me parait bizarre vu que je ne leur donnerai pas de valeur en appellant la fonction...
    Merci

  9. #9
    Invité
    Invité(e)
    Par défaut
    je ne leur donnerai pas de valeur en appellant la fonction
    Je ne comprends pas ce que tu veux dire par là...

    Ensuite oui pour commencer, tu déclares ta fonction de départ comme étant une fonction de x et y:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function f = maFonction(x,y)
    x = x(:);   % ici x doit être un vecteur colonne
    y = y(:)';  % ici y doit être un vecteur ligne
    f = (0.005-cos(x)*y) ./ ((repmat(0.005^2+y.^2,length(x),1) - 2*0.005*cos(x)*y).^(3/2));
    repmat permet ici de faire la multiplication matricielle et d'avoir en sortie une matrice M de valeurs M(xi,yi)

    Ensuite tu crées une autre fonction qui calcule son intégrale par rapport aux valeurs de x:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function I = Integrale(y)
    % calcul de l'intégrale de 0 à 2pi suivant x de la fonction maFonction(x,y) avec trapz

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    Merci beaucoup pour ta réponse!
    Je ne connaissait pas repmat non plus :p
    Sinon je pensais que pour appeller mafonction, je devais lui placer obligatoirement des scalaires en input lors de l'appel..

  11. #11
    Invité
    Invité(e)
    Par défaut
    Sinon je pensais que pour appeller mafonction, je devais lui placer obligatoirement des scalaires en input lors de l'appel..
    Tout dépend de comment tu la codes, le code que je t'ai fourni autorise d'avoir des vecteurs pour x et y.
    Si tu avais mis seulement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f = (0.005-y*cos(x))/((0.005^2+y^2-2*0.005*y*cos(x))^(3/2))
    Seul des scalaires auraient été possibles, et l'ajout de '.' aux bons endroits comme montré au post#7 autorisent la manipulation de vecteurs...

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    ok, merci pour l'info
    Alors pour le code de la fonction, ce que je mets n'est pas correct car il me dit que mon argument 'y' n'est pas défini:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function I = Integrale( y )
        x=0:2*pi/1000:2*pi;
        I=trapz(x,flux_magnetique(x,y));
    end
    ??? Input argument "y" is undefined.

    Error in ==> Integrale at 3
    I=trapz(x,flux_magnetique(x,y));
    Je suis désolé de t'ennuyer mais je suis vraiment débutant...

    ps: même dans la rédaction des messages, et je m'en excuse..

  13. #13
    Invité
    Invité(e)
    Par défaut
    C'est un peu normal, ceci est la définition de la fonction que tu demandais au post #3.
    Maintenant, il faut l'utiliser en tant que telle en lui passant les valeurs de y.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    Et donc, si on admet que pour y, je lui donne un intervalle vecteur, ce que j'obtiendrai en I après l'intégrale sera également un vecteur?

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    J'ai obtenu le graphique que je cherchais, merci beaucoup pour ton aide précieuse!
    J'aurais juste une dernière question. Est-ce que c'est possible en Matlab de trouver l'expression de mon intégrale sous forme d'une fonction (càd d'obtenir la formule qui est une fonction de y une fois l'intégrale selon x réalisée)?

  16. #16
    Invité
    Invité(e)
    Par défaut
    Si tu possèdes la Symbolic Math Toolbox, oui

Discussions similaires

  1. Intégrale Curviligne et intégrale double
    Par Zap0-uman dans le forum Mathématiques
    Réponses: 7
    Dernier message: 05/06/2009, 20h56
  2. Calcul d'une intégrale double par la méthode des quadratures
    Par deubelte dans le forum Mathématiques
    Réponses: 5
    Dernier message: 10/05/2009, 12h40
  3. Résolution d'une intégrale double
    Par LoDev dans le forum Mathématiques
    Réponses: 4
    Dernier message: 15/09/2008, 09h49
  4. calcul de l'intégral double
    Par casper84 dans le forum MATLAB
    Réponses: 2
    Dernier message: 18/02/2008, 17h54
  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