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


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Points : 17
    Points
    17
    Par défaut intégrale double
    Bonjour à tous,

    Voici un code qui j'ai écrit pour le calcul d'intégrale "à la Riemann". Ce n'est peut-être pas la meilleure façon de faire une intégrale double mais si quelqu'un a une suggestion, ça m'intéresse.

    Merci

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    clear all
    close all
    t1=clock
    pasxy=0.025;
    [y,x]=meshgrid(-5:pasxy:5);
     
     
    wo=4.25;
    l=2.2;
    k=2*pi/l;
    zR=pi*wo^2/l;
    xo=0;
    zo=0;
    a=0;
     
    z=zo;
    R=z*(1+(zR/z)^2);
    w=wo*sqrt(1+(z/zR)^2);
    P=atan(z/zR);
     
     
     
     
    vx=[];
    inf=-5;
    sup=5;
    pas=0.1;
     
    inte=[];
     
    for y=inf:pas:sup
     
     
        for x=inf:pas:sup
     
            X=(x+xo).*cos(a);
            Z=(x+xo).*sin(a);
     
            if isnan(R)
                Expo1=1;
                Expo2=1;
     
            else
                Expo1=exp(-i*k.*(X.^2+y.^2)./(2.*R));
                Expo2=exp(-i*k.*(x.^2+y.^2)./(2.*R));
     
            end
            clock
     
     
            A=sqrt(2/pi)*(1/w)*exp(-(X.^2+y.^2)/w.^2).*Expo1.*exp(-i*k*z+i.*P);
     
            Aprime=conj(A);
     
            B=sqrt(2/pi).*(1./w).*exp(-(x.^2+y.^2)./w.^2).*Expo2.*exp(-i*k*z+i.*P);
     
            C=Aprime.*B;
     
     
            vx=[vx x];
     
            inte1=sum(sum(abs(C)));
     
            inte=[inte inte1];
     
        end
    end
     
    t2=clock;

  2. #2
    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
    Quel est le problème ?
    Quelle est la question exactement ?
    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)

  3. #3
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    Tu peux supprimer toutes tes boucles. ca ira plus vite. Il te faut pour cela lancer les calculs sur le tableau entier et pas sur ses éléments un à un.
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

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