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.
Version imprimable
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:
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:
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