Bonjour,
est ce quelqu un connait comment on construit une matrice tridiagonale par bloc en fortran?
merci pour votre aide
Bonjour,
est ce quelqu un connait comment on construit une matrice tridiagonale par bloc en fortran?
merci pour votre aide
Salut!
Tout dépend de ce que tu veux mettre dedans.
Jean-Marc Blanc
C est à dire ?
C est logique, c est une matrice qui vient d une méthode de difference finis ou elements finis 2D
Salut!
Ce n'est pas logique du tout: si tu appliques la méthode des différences finies à un domaine rectangulaire, tu obtiens sur la diagonale principale des matrices qui sont elles-même tridiagonales et toutes de même taille, et de part et d'autre des matrices carrées et diagonales; en revanche, si tu appliques la méthode des éléments finis à un domaine de forme quelconque, tu peux, par un maillage judicieux, obtenir sur la diagonale des matrices de tailles diverses, et de part et d'autre des matrices rectangulaires, ce qui est totalement différent. Alors, il faut savoir exactement ce que tu veux.C est logique, c est une matrice qui vient d une méthode de difference finis ou elements finis 2D
Jean-Marc Blanc
supposons que je travail avec difference finis (2D), alors coment tu programme ta matrice?
Salut!
Supposons que ta grille comporte m rangées de k noeuds, soit au total m * k noeuds. Tu dois d'abord te demander si ta matrice tiendra en mémoire vive ou si tu dois la stocker sur disque. Tu as
- m matrices k * k sur la diagonale principale; comme ces matrices sont symétriques définies positives, il suffit de stocker un triangle de chacune, soit m * k * (k + 1) / 2 termes.
- m - 1 matrices k * k au-dessus ou au-dessous; au départ, ces matrices sont diagonales, mais, lors de la résolution, elles se remplissent peu à peu, pour devenir finalement triangulaires; elles comportent donc au total (m - 1) * k * (k + 1) / 2 termes.
A toi donc de calculer la place dont tu as besoin et de voir si tu disposes de suffisamment de mémoire.
Jean-Marc Blanc
Partager