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 :

suite de matrices


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut suite de matrices
    Bonjour,

    Je veux étudier une suite récurrente de matrice définie ainsi:

    U(n+1) = 1/3 * M * U(n) + M

    avec M=[2 -3/4 ; 2 -1/2] et U(0) = M

    et calculer U(100) et U(1000).

    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    M=[2 -3/4;2 -1/2]
    U(0)=M;
    for i=0:1000
      U(i+1)=(1/3)*M*U(i)+M;
    end
    U(100)
    U(1000)
    L'erreur est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    U(0)=M;
           !--error 21
    invalid index
    Je pense que le code que j'ai fait est bon pour des scalaires, mais alors on fait comment avec des matrices?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Le premier indice est 1 et non pas 0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    M=[2 -3/4;2 -1/2]
    U(1)=M;
    for i=1:1000
      U(i+1)=(1/3)*M*U(i)+M;
    end

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut
    Bonjour.
    Si tu veux mettre les calculs en mémoire, il faut un indice de plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    clear
    M=[2 -3/4;2 -1/2];
    N=1000;
    U=zeros(2,2,N);
    U(1:2,1:2,1)=M;
    for i=2:N
    U(1:2,1:2,i)=1/3*M*U(1:2,1:2,i-1)+M;
    end
    U(:,:,1)
    U(:,:,10)
    U(:,:,100)

  4. #4
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Le programme est à reprendre par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    clear all ;
    clc ;
    M=[2 -3/4 ; 2 -1/2] ;
    U(:,:,1)=M ;
     
     for i=1:1000
       U(:,:,i+1)=(1/3)*M*U(:,:,i)+M;
     end
     
     
     disp('U(100)')  ; disp(U(:,:,100));
     disp('U(1000)') ; disp(U(:,:,1000));

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut
    Merci beaucoup les développeurs!

  6. #6
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Laquelle des solution tu as adapté, ou donne la solution que tu as implementé, ça sercvira aux autres !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/10/2012, 19h48
  2. Réponses: 11
    Dernier message: 17/03/2010, 18h42
  3. suite de matrices
    Par wnxbcv dans le forum MATLAB
    Réponses: 3
    Dernier message: 31/08/2009, 15h10
  4. Remplir une matrice à partir d'un vecteur (Suite)
    Par amarion dans le forum MATLAB
    Réponses: 5
    Dernier message: 17/03/2008, 09h23
  5. Réponses: 8
    Dernier message: 14/12/2007, 11h23

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