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 :

Représentation d'un champ électrique


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    chercheur
    Inscrit en
    Février 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Représentation d'un champ électrique
    bonsoir ,
    mes amis j'ai besoin de votre aide . J’ai trouvé quelques problèmes pour représenter une fonction sur matlab
    J'aimerais représenter la fonction suivante d'un champ électrique par intervalle
    E=0 si x= [0,a1]
    E=-sin(p*pi*(x-a1)/w) si x = [a1,a2]
    E=0 si x=[a2,a3]
    avec p qui varie entre 2 et 10
    et avec a1,a2,a3 et w des constantes
    Le problème c'est que je ne sais pas par où commencer, si je dois utiliser surf,plot,meshgrid etc.
    Je voulais dans un premier temps représenter cette fonction

    Dans l’attente d’une réponse que j’espère sera favorable, veuillez agréer, l’expression de mes salutations distinguées.
    bonne soirée

  2. #2
    Membre habitué
    Profil pro
    Doctorant
    Inscrit en
    Mars 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 147
    Points : 196
    Points
    196
    Par défaut
    Fixe d'abord tes constantes.
    Fais une boucle avec ton p.
    Définis ton x en fonction de comment il varie (par exemple, x=[3:0.1:5] -> x = [3,3.1,3.2,3.3....,4.8,4.9,5]
    Tu écris tes conditions et tu les testes avec le x et donc toutes les valeurs définies

    Tu as donc E en fonction des valeus de x et de p.
    Une fonction de plot3 peut donc convenir.
    Commence par fixer p et tracer E en fonction de x.

    Matersss

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    chercheur
    Inscrit en
    Février 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut champ
    bonjour
    merci de ma avoir répondu ,mais
    voila le code qui j'ai crée mais

    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
     a=22.9e-3
       b=11.16e-3 
       w=a/1.27
       a1=2.44e-3
       a2=a1+w
       a3=a-a2
     
    for p=1
       for x=[0:0.1e-3:a];
     
     if x==[0:0.1e-3:a1]
      Ee(1,p)=0   
     elseif x==[a1:0.1e-3:a2]
         Ee(1,p)=-sqrt(2/a*b)*sin(p*pi*(x-a1)/w);
     else x=[a2:0.1e-3:a]
         Ee(1,p)=0
     end
     
    end
    end
     
    figure,plot(x,abs(Ee),'x');
    grid on
    ylabel('|Ee|');
    xlabel('x');
    le programme donne une image Ee =0 sur tous l'intervalle
    mais je veux que Ee =0 sur [0:0.1e-3:a1] et Ee=-sqrt(2/a*b)*sin(p*pi*(x-a1)/w)sur [a1:0.1e-3:a2] et Ee =0 sur [a2:0.1e-3:a]

    et merci par avance

  4. #4
    Membre habitué
    Homme Profil pro
    Doctorant LNE Trappes
    Inscrit en
    Mai 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant LNE Trappes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 64
    Points : 174
    Points
    174
    Par défaut
    Solution assez grossière, j'ai augmenté le pas en x. J’espère que ça te satisfera.

    Code m : 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
    clear;clc;
    a=22.9e-3;
    b=11.16e-3;
    w=a/1.27;
    a1=2.44e-3;
    a2=a1+w;
    a3=a-a2;
    p=(2:10)';
     
    Ee=[zeros(size(p,1),size(0:0.1e-6:a1-0.1e-6,2)) -sqrt(2/a*b)*sin(p*pi*(a1:0.1e-6:a2)/w) zeros(size(p,1),size(a2:0.1e-6:a,2))];
     
    for i=1:8
        figure
        plot(0:0.1e-6:a,Ee(i,:),'.b')
        xlabel('x','fontSize',17);ylabel('E(eV)','fontSize',17);str = sprintf('phase %f pi ',p(i));title(str,'fontSize',17);
    end

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    chercheur
    Inscrit en
    Février 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut demande de l'aide2
    bon jour
    j'ai un autre problème pour tracer le champ électrique en fonction x mais cette avec d'autres expression:

    Ee= -sin(p*pi*x/a1) si x= [0,a1]
    Ee=0 si x = [a1,a2]
    Ee=-sin(p*p(x-a2)/(a-a2)) si x=[a1,a]


    avec a1,a2,a et w des constantes et le p varie entre 2 et 10
    voila le code que développe mais toujours donne E =0 sur tous x

    mes cher amis ,s'il vous plait donne moi de l'aide en gorrige ce code ou bien me donne un autre simple
    et merci d'avance


    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
    clear;clc;
    a=22.9e-3;
    b=11.16e-3;
    w=a/1.27;
    a1=2.44e-3;
    a2=a1+w;
    a3=a-a2;
    p=(2:10)';
     
    Ee=[ -*sin(p*pi*(0:0.1e-6:a1)/a1) zeros(size(p,1),size(a1:0.1e-6:a2,2))   -*sin(p*pi*(a2:0.1e-6:a)-a2/(a-a2) ];
     
    for i=1:8
        figure
        plot(0:0.1e-6:a,Ee(i,:),'.b')
        xlabel('x','fontSize',17);ylabel('E(eV)','fontSize',17);str = sprintf('phase %f pi ',p(i));title(str,'fontSize',17);
    end

  6. #6
    Membre habitué
    Homme Profil pro
    Doctorant LNE Trappes
    Inscrit en
    Mai 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant LNE Trappes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 64
    Points : 174
    Points
    174
    Par défaut
    Tiens :

    Code m : 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
    clear;clc;
    a=22.9e-3;
    b=11.16e-3;
    w=a/1.27;
    a1=2.44e-3;
    a2=a1+w;
    a3=a-a2;
    p=(2:10)';
     
    Ee=[ -sin(p*pi*(0:0.1e-6:a1)/a1) zeros(size(p,1),size(a1+0.1e-6:0.1e-6:a2,2)) -sin(p*pi*((a2:0.1e-6:a)-a2)/(a-a2))];
     
    for i=1:8
    figure
    plot(0:0.1e-6:a,Ee(i,:),'.b')
    xlabel('x','fontSize',17);ylabel('E(V/x)','fontSize',17);str = sprintf('phase %f pi ',p(i));title(str,'fontSize',17);
    end

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    chercheur
    Inscrit en
    Février 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut remerciement
    merci pour l'aide mes chères amis

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    chercheur
    Inscrit en
    Février 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut demande de l'aide3
    bonjour mes chères amis ,j'espère que tout le monde va bien .
    Alors mes amis au aujourd’hui j'ai trouver une autre problème le voila je cherche a tracer la fonction xp en fonction de x
    xp = (1/Z)*A
    avec:
    A=<gq,E0> avec p varie entre 1 et 100
    Z=<gq,fm0> zmn <fm0,gq> avec p varie entre 1 et 50 et m varie entre 1 et 300

    les expressions:
    E0=-sqrt(2/a*b)*sin(pi*x/a)
    gp=-sin(p*pi*x/a1) sur intervalle [0,a1] et gp=-sin(p*pi(x-a2)/(a-a2)) sur intervalle [a2,a]

    zmn=1i*nu0*omega/(sqrt((m*pi/a)^2-k0^2))

    les constants de mon problème
    a=22.9e-3; b=10.16e-3 ;w=a/9; a1=6.8e-3; a2=a1+w; a3=a-(a1+a2) nu0=4*pi*1e-7 f=1e9; e0=1/(36*pi)*1e-9; c=1/sqrt(e0*nu0); omega=2*pi*f;
    e k0=omega/c

    j'ai crée cette code mais ne donne pas de résultats , s'ils vos plait les amis donne moi de l'aide, soit me corrige le code ou bien me une autre code simple

    je compte sur vous mes chers amis
    voila le 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    clear all
    clc;
    a=22.9e-3;
    b=10.16e-3 ;
    w=a/9;
    a1=6.8e-3;
    a2=a1+w;
    a3=a-(a1+a2)
    nu0=4*pi*1e-7;
    f=1e9;
    e0=1/(36*pi)*1e-9;
    c=1/sqrt(e0*nu0);
    omega=2*pi*f;
    k0=omega/c
    P=10;
    M=2;
     
    xx=[0:0.1e-3:22.9e-3];
    for s=1:length(xx)
        x=xx(s);
     
        for m=2:M
     
            for p=1:P
                A(p,1)=sqrt(2/a*b)*quad(@(x)sin(pi*x/a).*sin(p*pi*x/a1),0,a1)+sqrt(2/a*b)*quad(@(x)sin(pi*x/a).*sin(p*pi*(x-a2)/(a-a2)),a2,a);
                Fm0_gp(p,1)= sqrt(2/a*b)*quad(@(x)sin(m*pi*x/a).*sin(p*pi*x/a1),0,a1)+sqrt(2/a*b)*quad(@(x)sin(m*pi*x/a).*sin(p*pi*(x-a2)/(a-a2)),a2,a);
     
     
            end
     
            ZTE=1i*nu0*omega/(sqrt((m*pi/a)^2-k0^2));
            B= Fm0_gp*ZTE* Fm0_gp';
            xp(1,s)=inv(B)*A;
            X(1,s)=x;
            s
        end
     
    end
    plot(X,abs(xp),'.');
    grid on
    ylabel('xp');
    xlabel('X');

    et merci d'avance

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    chercheur
    Inscrit en
    Février 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut aide moi
    bonjours les amis ,
    hier j'ai pose un problème ,mais jus cas présent je pas reçu une repense .s'il vous plait mes amis aide moi a dépasse ce problème ,parce que je suis bloque a ce stade .
    et merci

  10. #10
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2014
    Messages : 1
    Points : 4
    Points
    4
    Par défaut
    A et B n'ont pas la même dimension. Faut que tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inv(B)*repmat(A,1,size(B,2));
    Après à toi de voir comment tu crées ta matrice xp pour ensuite générer la courbe.

    Utilise peut être reshape pour créer qu'une seule ligne et tu incrémentes à fur et mesure dans ta boucle for.

Discussions similaires

  1. Représentation Champ de Vecteur
    Par funjam dans le forum MATLAB
    Réponses: 3
    Dernier message: 28/06/2010, 12h52
  2. Réponses: 0
    Dernier message: 29/04/2010, 15h04
  3. Réponses: 4
    Dernier message: 19/10/2009, 15h23
  4. Comment représenter des intervalles de valeurs pour un champ?
    Par dedelem dans le forum Modélisation
    Réponses: 1
    Dernier message: 14/04/2008, 17h50
  5. VBA - variable représentant un champ texte
    Par cyraile dans le forum Access
    Réponses: 13
    Dernier message: 04/01/2007, 17h19

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