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 :

Double intégrale et dérivée d'une fonction


Sujet :

MATLAB

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 18
    Par défaut Double intégrale et dérivée d'une fonction
    bonjour,
    J'ai un problème de double intégrale et dérivé d'une fonction.j'ai tenté déjà de programmer et voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    clear all;
    d=1.7*10^-6;
    A=6.327;
    w=5; 
    epsilon0=8.86*10^-12;
     
    f=inline('epsilon0*A/d-w');
    c=int(int(f(A,d,w),0,6.327),0,6.327);
    j'aimerais savoir comment programmer le dérivé (dA) en matlab. La fonction (voir fichier attachée).

    Merci pour toute réponse.
    Meilleures salutations.
    Images attachées Images attachées  

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

    dA ne correspond pas à une dérivée, mais à la variation infinitésimale de ta surface, tout comme dx dans Nom : Intégrale.jpg
Affichages : 286
Taille : 1,4 Ko
    Quelles sont ici les variables d'intégration et la géométrie?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 18
    Par défaut
    Salut Winjerome,
    Mon but est d’étudier la déflexion d’une membrane carré lorsqu’on applique une pression
    L’équation de ce système est une équation aux dérivées partielles de Lagrange d’ordre 4 est en dessous (voir les images)
    ∝_Si : Le coefficient d’anisotropie est constant
    La géométrie (la structure) est en dessous (voir les images)
    h : l’épaisseur de la membrane
    d : distance entre les deux armatures
    L : la longueur de la membrane (dans mon cas c’est « a »)
    A : est la surface de l’électrode
    La relation de la capacité est en dessous (voir les images)
    w(x,y,p) la déflexion bidimensionnelle de la membrane en fonction de la pression appliquée P au point des coordonnées cartésiennes (x,y) de la membrane.
    L’expression de la déflexion de la membrane de forme carrée en dessous (voir les images)
    W0 : déflexion de la membrane au centre
    D, K, Kij : sont des constants
    P : pression appliquée
    J’ai tenté déjà de programmer et voici 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
    clear all;
     
    h=50*10^-6;
    d=1.7*10^-6;
    A=6.327;
    a=sqrt(A);
    eps=8.86*10^-12;
    nu=0.22;
    E=210*10^6;
    K=0.0220; 
    P=2;
     
    % Lorsqu'on applique une pression P
     
    D=(E*h^3)/(12*(1-nu^2));
     
    k02=0.2140;
    k20=0.2140;
    k22=0.2700;
    k40=-0.0062;
    k04=-0.0062;
    k42=0.0980;
    k24=0.0980;
    k44=-0.103;
     
     
    for x=1:a
        for y=1:a
     
            w(x,y)=(P*a^4*K/16*D*((1-(2*x/a)^2)^2)*((1-(2*y/a)^2)^2))*(1+(k02*(2*y/a)^2)+(k20*(2*x/a)^2)+(k22*(2*x/a)^2*(2*y/a)^2)+(k40*(2*x/a)^4)+(k04*(2*y/a)^4)+(k42*(2*x/a)^4*(2*y/a)^2)+(k24*(2*x/a)^2*(2*y/a)^4)+(k44*(2*x/a)^4*(2*y/a)^4));
        end
    end
     
    f=inline('eps/d-w(x,y)');
    c=int(int(f(d,w),0,6.327),0,6.327);
     
    plot(P,c,'--rs');
    grid on;
    ylabel('capacité (pF)');
    xlabel('pression (bar)');
    title('capacité en fonction de la pression');
    J’aimerais savoir le problème de cette erreur :
    ??? Error using ==> inline.subsref at 14
    Not enough inputs to inline function.
    Error in ==> capts2 at 36
    c=int(int(f(d,w),0,6.327),0,6.327);
    
    Et comment programmer l’équation aux dérivées partielles de Lagrange d’ordre 4 en MATLAB

    Merci pour toute réponse.
    Meilleures salutations.
    Images attachées Images attachées      

  4. #4
    Invité
    Invité(e)
    Par défaut
    Alors concernant ton erreur: ta fonction inline est définie telle que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    f=inline('eps/(d-w(x,y))')
    
    f =
    
         Inline function:
         f(d,x,y) = eps/(d-w(x,y))
    Qui accepte 3 paramètres d'entrées: d, x et y et non seulement 2 comme tu le fais à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c=int(int(f(d,w),0,6.327),0,6.327);
    Autre chose importante: eps est le nom d'une fonction MATLAB, et la définition telle que tu la donnes l’interprète en tant que telle. Reviens-en donc à epsilon0 ou n'importe quel autre nom non déjà utilisé par MATLAB (voir ceci).

    Ensuite, ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for x=1:a
        for y=1:a
            w(x,y)=(P*a^4*K/16*D*((1-(2*x/a)^2)^2)*((1-(2*y/a)^2)^2))*(1+(k02*(2*y/a)^2)+(k20*(2*x/a)^2)+(k22*(2*x/a)^2*(2*y/a)^2)+(k40*(2*x/a)^4)+(k04*(2*y/a)^4)+(k42*(2*x/a)^4*(2*y/a)^2)+(k24*(2*x/a)^2*(2*y/a)^4)+(k44*(2*x/a)^4*(2*y/a)^4));
        end
    end
    Ne te serviront à rien dans ce calcul symbolique, il te faudra utiliser une fonction.

    >> Ton calcul étant numérique, je te conseille de justement utiliser ces lignes et la fonction doc trapz. Une petite recherche sur le forum te donnera des exemples.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 18
    Par défaut
    Les variables d'intégration -a/2 jusqu'à +a/2
    j'ai essayé de programmer
    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;
     
    h=50*10^-6;
    d=1.7*10^-6;
    A=6.327;
    a=sqrt(A);
    epsilon0=8.86*10^-12;
    nu=0.22;
    E=210*10^6;
    K=0.0220; 
    P=2;
     
    % Lorsqu'on applique une pression P
     
    D=(E*h^3)/(12*(1-nu^2));
     
    k02=0.2140;
    k20=0.2140;
    k22=0.2700;
    k40=-0.0062;
    k04=-0.0062;
    k42=0.0980;
    k24=0.0980;
    k44=-0.103;
     
     
    for x=1:a
        for y=1:a
     
    w(x,y)=(P*a^4*K/16*D*((1-(2*x/a)^2)^2)*((1-(2*y/a)^2)^2))*(1+(k02*(2*y/a)^2)+(k20*(2*x/a)^2)+(k22*(2*x/a)^2*(2*y/a)^2)+(k40*(2*x/a)^4)+(k04*(2*y/a)^4)+(k42*(2*x/a)^4*(2*y/a)^2)+(k24*(2*x/a)^2*(2*y/a)^4)+(k44*(2*x/a)^4*(2*y/a)^4));
        end
    end
     
    Y=epsilon0/(d-w(x,y));
    X=-a/2:1:a/2;
    Z=trapz(X,Y);
     
    plot(P,Z,'--rs');
    grid on;
    ylabel('capacité (pF)');
    xlabel('pression (bar)');
    title('capacité en fonction de la pression');
    J’aimerais savoir le problème de cette erreur :
    ??? Error using ==> permute
    ORDER contains an invalid permutation index
    
    Error in ==> trapz at 44
      y = permute(y,perm);
    
    Error in ==> capts3 at 37
    Z=trapz(X,Y);
    Et comment programmer l’équation aux dérivées partielles de Lagrange d’ordre 4 en MATLAB?

    Merci pour toute réponse.
    Meilleures salutations.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Regarde les dimensions de tes variables X et Y, à priori, elles devraient être les mêmes.

Discussions similaires

  1. calcul de dérivée d'une fonction
    Par maria2013 dans le forum R
    Réponses: 3
    Dernier message: 03/08/2013, 03h08
  2. Dérivée d'une fonction
    Par arbas dans le forum MATLAB
    Réponses: 2
    Dernier message: 21/01/2012, 12h47
  3. Dérivée d'une fonction à deux dimensions f(x,y)
    Par an1981 dans le forum MATLAB
    Réponses: 4
    Dernier message: 12/02/2008, 10h29
  4. dériveé d'une fonction
    Par speedcore dans le forum C
    Réponses: 3
    Dernier message: 09/04/2006, 15h49
  5. codage du calcul de dérivée d'une fonction mathématique
    Par pispa2005 dans le forum Mathématiques
    Réponses: 5
    Dernier message: 08/01/2005, 21h54

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