Posez votre question Signaler

Matrices sur Matlab

cycy - Dernière réponse le 10 avril 2008 à 19:15
Bonjour,
je travaille en ce moment sur Matlab et je cherche à créer une matrice S carrée n*n de la forme suivante:
Par exemple pour n=4,
S=[K 1 0 0;1 K 1 0;0 0 1 K];
j'aimerais écrire cette matrice pour des nombres n élevés (>7).
En fait, j'ai écrit :
S=zeros(n);
pour i=j,
S(i,i)=K;
pour i>j,
S(i,j)=triu(eye(n));
pour i<j
S(i,j)=tril(eye(n));
Mais ce n'est pas bon car en utilisant les fonctions triu et tril je remplace ma grande diagonale définie pour i=j à chaque fois par la grande diagonale de la matrice identité alors que je veux que la grande diagonale reste S(i,i)=K. Je ne sais pas si c'est très clair ce que j'ai dit mais j'espère que vous pourrez m'aider à en voir plus clair.
P.S: je ne suis pas très douée en Matlab!!
Merci d'avance.
Lire la suite 

Matrices sur Matlab »

2 réponses
Réponse
+0
moins plus
Salut,

Je sais pas si j'ai bien compris la forme de ta matrice mais essaye ce simple bout de code.

S = K*eye(n)

for i=1:n-1
S(i,i+1) =1;
S(i+1,i) =1;
end


T'obtiens pour n =5 : S=
|K 1 0 0 0|
|1 K 1 0 0|
|0 1 K 1 0|
|0 0 1 K 1|
|0 0 0 1 K|

C'est bien ça la forme de la matrice?

A+
cycy - 10 avril 2008 à 19:15
oui c'est bien ca. Merci beaucoup pour ton aide!
Ajouter un commentaire
Ce document intitulé « matrices sur Matlab » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?