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 double (fonctions de Wigner à n-modes)


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 30
    Points : 38
    Points
    38
    Par défaut Calcul d'intégrale double (fonctions de Wigner à n-modes)
    Bonjour,

    je suis entrain de programmer avec matlab les fonctions de wigner à n-modes

    Comment je peut faire une intégration double et triple ??

    merci de votre collaboration

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Slt.
    une intégation double et triple ???
    Calcul symbolique ou numérique ?

  3. #3
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    C'est dans la doc : dblquad et triplequad
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 30
    Points : 38
    Points
    38
    Par défaut Integrale double numérique méthode numérique
    Bonjour,

    Je voudrais savoir quelle est la méthode numérique utilisée pour la commande (dblquad) : est-ce la méthode de trapèze si non j'aime savoir son algortihme

    Comment je peux avoir le code source d'une fonction exemple le code de la fonction (dblquad) pour que je puisse savoir le type de la méthode d'intégration

    Merci

  5. #5
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Note : toutes les fonctions de MATLAB ne sont pas forcément éditables, certains sont cryptées et ne peuvent donc pas êtres lues.
    Règles du Forum

    Adepte de la maïeutique

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 30
    Points : 38
    Points
    38
    Par défaut de l'aide SVP pour corriger un code
    j'ai cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    F=exp(A.*(-(q-moyenne_Q0).^2/(2*delta_Q0^2)-(p-...
    moyenne_P0).^2/(2*delta_P0^2))).*exp(B.*(-((q01-q)-...
    moyenne_Q0).^2/(2*delta_Q0^2)-((p01-p)-...
    moyenne_P0).^2/(2*delta_P0^2))*

    elle est en fonction de p et q

    j'ai voulu faire une integration double suivant p et q avec la fonction (dblquad)

    mais pas de resultat

    voila ma proposition de code
    est-il possible de m'aider a corriger ce code


    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
        N0=1;
        Z=1/(2*pi*N0);
        rendement=0.9;
        t=sqrt(rendement);
        r=sqrt(1-rendement);
        A=1/sqrt(1-rendement);
        B=1/rendement;
        eta=1/rendement*(1-rendement);
     
        i=0; 
    for q01=0:10, 
           i=i+1; 
           j=0;
           for p01=0:10,
           j=j+1;
             F=dblquad(exp(A.*(-(q-moyenne_Q0).^2/(2*delta_Q0^2)-(p-moyenne_P0).^2/(2*delta_P0^2))).*exp(B.*(-((q01-q)-moyenne_Q0).^2/(2*delta_Q0^2)-((p01-p)-moyenne_P0).^2/(2*delta_P0^2)))),-10,10,-10,10);
     
        out=eta*Z*Z.*F;
     
        end,
    end,

  7. #7
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    Salut,

    Voici un exemple :

    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
     
    % Exemple f(x) = a*(x^2) + y
     
    %-- Variables
    a = 2;
     
    %-- Fonction
    myFun = @(x,y)(a*(x.^2) + y);
     
    %-- Intergration
    varIntegral = dblquad(myFun,0,2,1,2)
     
     
    % Su tu veux changer MYFUN dans une boucle FOR : 
    varIntegral = [];
    for u =1:10
        a = u; 
        myFun = @(x,y)(a*(x.^2) + y); % MYFUN sera mise à jour
        varIntegral(u) = dblquad(myFun,0,2,1,2);
    end
    ++ bonne chance
    AlloSchool, votre école sur internet.

  8. #8
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 30
    Points : 38
    Points
    38
    Par défaut encor de l'aide SVP pour corriger un code
    j'ai suivit vos conseil
    voila le code de la double integration mais pas de resultat
    il ne faut pas oublier que j'ai deux variables q01 et p01.
    svp aider moi


    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    clear all
    close all
     
    N0=1;
    Z=1/(2*pi*N0);
     
    % transmission = t
    % reflection = r
     
    rendement=0.9;
    t=sqrt(rendement);
    r=sqrt(1-rendement);
    a=r^2+t^2;
    A=1/sqrt(1-rendement);
    B=1/rendement;
    eta=1/rendement*(1-rendement);
     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    delta_P0=1;
    delta_Q0=N0/delta_P0;
    moyenne_Q0=1;
    moyenne_P0=1;
     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    delta_P1=1;
    delta_Q1=N0/delta_P0;
    moyenne_Q1=2;
    moyenne_P1=2;
     
    %%%%%%%%%%%%%% 1 er mode  %%%%
     
    i=0; 
    for q=0:0.1:5, 
        i=i+1; 
        j=0;
     
        for p=0:0.1:5,
        j=j+1;
        X01=(q-moyenne_Q0).^2/(2*delta_Q0^2);
        X00=(p-moyenne_P0).^2/(2*delta_P0^2);
        w0(i,j)=r.*Z.*exp(-X00-X01);
     
        end,
    end,
    %%%%%%%%%%% 2 ieme mode %%
     
    i=0; 
    for q=0:0.1:5, 
        i=i+1; 
        j=0;
     
        for p=0:0.1:5,
     
        j=j+1;
        X11=(q-moyenne_Q1).^2/(2*delta_Q1^2);
        X10=(p-moyenne_P1).^2/(2*delta_P1^2);
        w1(i,j)=t.*Z.*exp(-X10-X11);
     
        end,
    end,
    %%%%%%% double integration %%%%%
     
     
    qmin=-10;
    qmax=10;
    pmin=-10;
    pmax=10;
     
    varIntegral = [];
     
    for q01=-10:10,
     
    %     q01=q1;
     
        for p01=-10:10,
     
    %     p01=p1;
     
    myfun=@(p,q)(exp(A*(-(q-moyenne_Q0)^2/(2*delta_Q0^2)-(p-moyenne_P0)^2/(2*delta_P0^2)))*exp(B.*(-((q01-q)-moyenne_Q1)^2/(2*delta_Q1^2)-((p01-p)-moyenne_P1)^2/(2*delta_P1^2))));
     
    varIntegral(q01,p01)=dblquad(myfun,qmin,qmax,pmin,pmax);
     
    w01=varIntegral.*Z^2.*X;
     
        end,
    end,
     
    %%%%%%%%%%  graphique  %%%%%%%%%%
     
    q=0:0.1:5;
    p=0:0.1:5;
    mesh(q,p,w)
    figure(1)        
    imagesc(q,p,w1),grid
    figure(2)
    imagesc(q,p,w0),grid
    figure(3)
    imagesc(q,p,w01),grid

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 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
  2. [Débutant] Je cherche à calculer une intégrale double
    Par Philou29200 dans le forum MATLAB
    Réponses: 2
    Dernier message: 15/04/2009, 22h01
  3. calcul de l'intégral double
    Par casper84 dans le forum MATLAB
    Réponses: 2
    Dernier message: 18/02/2008, 17h54
  4. 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