Bonjour,
je sais comment créer une matrice creuse diagonale; mais je ne parviens pas à créer une matrice creuse diagonale par blocs :
Il y a une erreur à la ligne où je définis A,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 % Création de la matrice B U = ones(n,1); B = spdiags([-U,4*U,-U],-1:1,n,n); display(full(B)); % Création de la matrice A V = eye(n,n); display(-V); A = spdiags([-V,B,-V],-1:1,n*n,n*n); display(full(A));
En lisant l'aide j'ai bien vu que spdiags ne permet pas (ou alors je ne vois pas comment) de créer une matrice diagonale à l'aide de blocs, alors je vous sollicite si vous avez une idée !Index exceeds matrix dimensions.
Ce que je cherche à avoir, c'est que la diagonale par bloc principale de A contienne les blocs B, et la sur et sous diagonale les blocs -V.
Merci d'avance !
Partager