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 :

simulation de Jacobi sous matlab


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 0
    Points
    0
    Par défaut simulation de Jacobi sous matlab
    bonjour,

    j'ai essayé de simuler sous matlab l'algorithme itératif de Jacobi.
    Mais j'ai pas pu encadrer l'erreur entre deux itérations succéssives pour atteindre la convergence.

    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
     
    %algorithme de Jacobi
    nit_max=1000;
    x=zeros(n,1);
    x0=zeros(n,1);
    x1=zeros(n,1);
    k=1;
    while k<nit_max
        for i=1:n
        s=0;
            for j=1:i-1
             s=s+a(i,j)*x0(j);
            end
            for j=i+1:n
             s=s+a(i,j)*x0(j);  
            end
            x1(i,1)=(b(i)-s)\a(i,i);
        end       
     
        err=norm(x1-x0);     ---------->je veux appliquer ici err=norm(x(:,k+1)-x(:,k))mais j'ai pas su le faire
        if err<eps
            break;
        end  
        k=k+1;
        x0=x1;
    end
    Merci pour votre aide.

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    As-tu consulté le tutoriel consacré à la résolution des systèmes linéaires que j'ai écrit et qui est accessible sur ce site?
    Jean-Marc Blanc

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Salut!
    As-tu consulté le tutoriel consacré à la résolution des systèmes linéaires que j'ai écrit et qui est accessible sur ce site?
    Jean-Marc Blanc

    oui, j'ai trouvé qu'on travaille avec les matrices triangulaires L et U..
    j'ai réglé le truc avec ces matrices.
    je veux faire la même résolution des systèmes, tout en calculant les termes du vecteur solution. mais j'ai pas su comment faire encore?

    Merci d'avoir répondu.

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 0
    Points
    0
    Par défaut simulation de Jacobi sous matlab
    j'ai implémenté l'algorithme de Jacobi en utilisant le résidu "r" pour voir la convergence.
    ce programme m'affiche le nombre d'itérations faites. Mais il ne converge pas vers la solution désirée.
    je ne sais pas pourquoi.

    J'attends votre aide. 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
     
     
    %algorithme de Jacobi
    nit_max=1000;
    x=zeros(n,1);
    x0=zeros(n,1);
    x1=zeros(n,1);
    r=b-a*x0;
    r0=norm(r);
    err=norm(r);
    x=x0;
    k=1;
    for p=1:1
    while k<nit_max & err>eps(p)
        k=k+1;
        for i=1:n
        s=0;
            for j=1:i-1
             s=s+a(i,j)*x(j);
            end
            for j=i+1:n
             s=s+a(i,j)*x(j);  
            end
            x1(i,1)=(b(i)-s)\a(i,i);
        end
    x=x1;
    r=b-a*x;
    err=norm(r)\r0; 
    end
    end

  5. #5
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    D'où provient ta matrice? Est-tu sur qu'elle est à diagonale dominante?
    Jean-Marc Blanc

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Salut!
    D'où provient ta matrice? Est-tu sur qu'elle est à diagonale dominante?
    Jean-Marc Blanc
    oui ma matrice est diagonale strictement dominante symétrique aussi.

Discussions similaires

  1. Simulation corde de piano sous MATLAB
    Par Headwyn dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 30/11/2013, 01h14
  2. le code de simulation sous MATLAB
    Par almorabeti dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 10/03/2013, 17h30
  3. Simulation de signal de parole sous MATLAB
    Par almorabeti dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 07/03/2013, 00h56
  4. Réponses: 0
    Dernier message: 01/09/2011, 11h14
  5. simulation d'un amortisseur sous matlab
    Par khaled0001 dans le forum Mathématiques
    Réponses: 9
    Dernier message: 13/04/2010, 13h27

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