Bonjour,
Merci de regarder comment peut on introduire cette matrice, en utilisant toeplitz matrix ou sparse matrix. je souhaite après augmenter la taille de cette matrice en conservant la meme structure sparse.
Bonjour,
Merci de regarder comment peut on introduire cette matrice, en utilisant toeplitz matrix ou sparse matrix. je souhaite après augmenter la taille de cette matrice en conservant la meme structure sparse.
Je ne pense pas que toeplitz fonctionne ici.
Sans tenir compte de la nécessité de générer des matrices de tailles plus grandes, la matrice A peut être créée comme ceci (sans le facteur 1/h²) :
Une autre version qui prend partiellement en compte la taille des matrices :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 A = [-49/9 3/2 -3/20 ; 3/2 -49/9 3/2 ; -3/20 3/2 -49/9]; B = diag([3/2 3/2 3/2]); C = diag([-3/20 -3/20 -3/20]); A = [A B C ; B A B ; C B A];
Bref tout ceci ne répond sans doute pas parfaitement à la question. Il nous faudrait plus de précision que :
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 M = [-49/9 3/2 -3/20 ; 3/2 -49/9 3/2 ; -3/20 3/2 -49/9]; sizeM = 3; numBlocks = 3; A = zeros(sizeM*numBlocks, sizeM*numBlocks); for n = 1: numBlocks idx = (n-1)*sizeM+1:n*sizeM; A(idx,idx) = M; end k = sizeM:sizeM:(numBlocks*sizeM)-1; for n = 1:numel(k) v = diag(A,k(n)); if k(n)==3 v(:) = 3/2; else v(:) = -3/20; end A = A+diag(v,k(n))+diag(v,-k(n)); end
Partager