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 :

Elements finis


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Février 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Février 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Elements finis
    Bonjour, Je demande vos aide s'il vous plait à propos d'un problème dans lequel j'ai eu des problèmes dans le code mais je ne peux pas fixer l'erreur
    voilà le code Matlab en pièce jointe et Merci
    le code a coriigé
    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
    101
    102
    103
    104
    105
    106
    107
    108
    109
    %%%%%%%%%%%
    %   EF1D  %
    %%%%%%%%%%%
    % programme Elements finis P1 1D
    % pour l'équation -\epsi^2 u"+\p(x) u=\lambda u avec des conditions de Dirichlet aux bords
    %
    clear all; % effacer toutes les variables
    clc; % effacer l'ecran matlab
    close all; % fermer toutes les figures
    format long; % double precision
    % la valeur de p(x)
    p=1;
    K=8;
    %la valeur de epsilon
    epsi=0.8;
    % on recupere le numero et l'abscisse de chaque noeud (sommet)
    coor=load('coor.dat');
    % on recupere le numero de l'element et les numeros 
    % des sommets de l'élément
    elem=load('elem.dat');
    [ndlt nul]=size(coor);% ndlt : Nombre de degres de liberte total
    dim=nul-1;
    [nelem nul]=size(elem);% nelem Nombre d'eléments
    ndll=nul-2; % Nombre de degrés de liberté local (par élément)
    %%%%% Construction des matrices élémentaires
    % Ki matrice de regidite locale
    % Ki=(phi1',phi2')^t . (phi1',phi2')
    % avec phi1(x)=1-x et phi2(x)=x pour x\in [0,1]
    Ki=zeros(ndll,ndll);
    Ki(1,1)=1;
    Ki(1,2)=-1;
    Ki(2,1)=Ki(1,2);% par symétrie
    Ki(2,2)=1;
    % Mi matrice de masse locale
    % Mi=(phi1,phi2)^t . (phi1,phi2)
    Mi=zeros(ndll,ndll);
    Mi(1,1)=1/3;
    Mi(1,2)=1/6;
    Mi(2,1)=Mi(1,2);% par symétrie
    Mi(2,2)=1/3;
    % Matrice globale
    K=sparse(ndlt,ndlt);% Matrice de regidite globale ; sparse pour matrice creuse
    M=sparse(ndlt,ndlt); % Matrice de masse globale ; sparse pour matrice creuse
    X=zeros(ndlt,1); %Le vecteur des abscisses des sommets
    X(1)=coor(elem(1,2),2);
    hM=-1;%initialisation (car on doit determiner h=max(h_i))
    %%%%%%%%%%%%%%%
    % ASSEMBLAGE
    %%%%%%%%%%%%%%%
    for i=1:nelem
        %On parcourt les sommets de l'élément
        I=elem(i,2);
        J=elem(i,3);
        % Les abscisses des sommets
        Xs1=coor(I,2);
        Xs2=coor(J,2);
        % Le pas d'espace
        h=Xs2-Xs1;
        hM=max(h,hM);
        X(i+1)=X(i)+h;
        %Assemblage :
        % Matrice de regidite
        % A FAIRE
        K(I,I)=K(I,I)+(1/h)*Ki(1,1);
        K(I,J)=K(I,J)+(1/h)*Ki(1,2);
        K(J,I)=K(I,J); % par symétrie
        K(J,J)=K(J,J)+(1/h)*Ki(2,2);
        % Matrice de masse
        % A FAIRE
        %*p(ref)
        M(I,I)=M(I,I)+h*Mi(1,1);
        M(I,J)=M(I,J)+h*Mi(1,2);
        M(J,I)=M(I,J); % par symétrie
        M(J,J)=M(J,J)+h*Mi(2,2);
    end % Fin de l'assemblage
    A=epsi^2.*K+p.*M;
    % CONDITION AUX LIMITES DE DIRICHLET
    % A FAIRE
    % RESOUDRE LE SYSTEME LINEAIRE
    A(1,:)=0;
    A(:,1)=0;
    A(1,1)=1;
    A(ndlt,:)=0;
    A(:,ndlt)=0;
    A(ndlt,ndlt)=1;
    % Second Membre
    R=chol(M);
    T=A*R;
    [U lambda]=eigPower(T,X,ndlt);
    clear Ki Mi % effacer de la mémoire les matrice elementaires
     
    figure(1)% Figure numéro 1
    % Solution exacte
    lambdap=p+epsi^2*K^2*pi^2;
    Up=sin(K*pi*X);
    plot(X,U,X,Up)
    % A FAIRE
    % TRACER SUR LA MEME FIGURE LA SOLUTION EXACTE ET LA SOLUTION APPROCHEE
     
    legend('solution numérique','solution exacte')
    %figure(2) % Figure numéro 2
    % A FAIRE
    % TRACER LA VALEUR ABSOLUE DE L'ERREUR ENTRE LA SOLUTION 
    % EXACTE ET LA SOLUTION APPROCHEE
    %E=U-Up;
    %plot(X,E)
     
    %legend('erreur')
    % CALCULER LA NORME INFINIE DE L4ERREUR

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 881
    Points : 3 429
    Points
    3 429
    Par défaut
    bonjour

    c'est quoi l'erreur ?

    Fabien

Discussions similaires

  1. A propos des elements finis
    Par yann_m dans le forum Mathématiques
    Réponses: 11
    Dernier message: 05/01/2012, 00h55
  2. [Débutant] créer un maillage sans PDETool en elements finis
    Par nykhola42000 dans le forum MATLAB
    Réponses: 3
    Dernier message: 08/07/2010, 15h23
  3. Réponses: 0
    Dernier message: 07/07/2010, 10h20
  4. Ajouts d'élements dans un modèle d'elements finis
    Par matt394 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 24/07/2007, 11h10

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