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 :

Explication de la fonction "Jacobi"


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Explication de la fonction "Jacobi"
    Bonjour,
    Je viens juste de commencer à utiliser Matlab et à vrai dire je ne comprend pas grand chose sachant que je n'ai jamais fais de programmation.
    Par conséquent pouvez vous à m'aider à déchiffrer la fonction "jacobi".
    Je précise que je ne dispose pas de Matlab sur mon ordinateur, du coup je ne peux utiliser la commande Help .

    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
    function [distance,residu,message,kj]=jacobi(A,B,X0,Epsil,Nmax) définition de la fonction «jacobi»
    distance = zeros(Nmax,1);
    residu = zeros(Nmax,1);
    N=length(A); permet de savoir le nombre de colonne de la matrice A
    X=zeros(N,1);
    X=X0;
    distance(1) = 1;
    residu(1)=norm(A*X-B);
    k=1;
    D=diag(diag(A),0);
    E=-tril(A,-1);
    F=-triu(A,1);
    message='test';
    tic;
    distance(1)=10;
    while (k<=Nmax) & (distance(k)>Epsil) tant que k est inférieur à Nmax et la distance de k supérieur à Epsil alors
        k= k+1;
        Y=D\(B+(E+F)*X);
        distance(k) = norm(X-Y,inf);
        residu(k)=norm(A*X-B);
        X=Y;
    end fin
    t_jac=toc;
    kj=k;
    if k==Nmax +1 si
        message ='itération maximale atteinte' affichage du texte «itération maximale atteinte»
        %residu=norm(A*X-B);
        
    else alors
        message ='précision obtenue'
    
    end fin
    semilogy([1:k],distance(1:k,1),'+b',[1:k],residu(1:k,1),'xr')

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Qu'est ce que tu ne comprends pas dans cette fonction?

    Tout d'abord, sais-tu à quoi elle sert, à quoi correspondent les variables d'entrées/sorties?

    La documentation de matlab est disponible en ligne :
    R2010b MathWorks Documentation
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par magelan Voir le message
    Bonjour,

    Qu'est ce que tu ne comprends pas dans cette fonction?

    Tout d'abord, sais-tu à quoi elle sert, à quoi correspondent les variables d'entrées/sorties?

    La documentation de matlab est disponible en ligne :
    R2010b MathWorks Documentation
    Il me semble que les variables d'entrées/sorties sont des matrices.

    Merci pour le lien de la documentation, cela va bien m'aider.

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