Matrices sur Matlab

Fermé
cycy - 10 avril 2008 à 17:30
 cycy - 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.

1 réponse

damlegone32 Messages postés 74 Date d'inscription lundi 11 septembre 2006 Statut Membre Dernière intervention 31 mai 2011 29
10 avril 2008 à 18:57
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+
0
oui c'est bien ca. Merci beaucoup pour ton aide!
0