Blockdiagonalmatrix

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
götze1988
User
Beiträge: 13
Registriert: Samstag 6. August 2016, 13:02

Blockdiagonalmatrix

Beitragvon götze1988 » Freitag 26. August 2016, 14:45

Hi,

ich würde gerne eine Blockdiagonalmatrix H (Dimension (P-1)*(N-1)x(P-1)*(N-1)) bauen , die P-1 mal den Matrixblock T (Dimension (N-1)x(N-1)) auf der "diagonalen" enthält,d.h

H=block_diag(T,...,T) (P-1 mal).

Jetzt könnte ich mir diese Matrix auch mit ner Schleife bauen, aber würde es lieber effizienter mit dem block_diag Befehl machen. Weiss jemand, wie ich die Matrix T P-1 mal in die Klammer befinde, kann man das irgendwie mit ner Schleife in der Klammer lösen vllt?

Lg und Viele Grüße
Benutzeravatar
BlackJack
Moderator
Beiträge: 31663
Registriert: Dienstag 25. Januar 2005, 23:29
Wohnort: Berlin
Kontaktdaten:

Re: Blockdiagonalmatrix

Beitragvon BlackJack » Freitag 26. August 2016, 15:07

Ungetestet:
  1. H = block_diag(*([T] * (P - 1)))
“A lesson I've learned over and over is that computer programs live far longer than you expect. It pays to do 'em better at the beginning, 'cause you're likely to live with them quite a while.” — Cameron Laird in c.l.p
götze1988
User
Beiträge: 13
Registriert: Samstag 6. August 2016, 13:02

Re: Blockdiagonalmatrix

Beitragvon götze1988 » Freitag 26. August 2016, 16:11

Hi,

danke schonmal. Ich habe das jetzt so probiert, aber bekomme nen memory error, da die dimension zu hoch ist. Hab dann probiert ne sparse matrix zu machen , also

H = sparse.block_diag(*([T] * (P - 1)))


dann bekomme ich jedoch den fehler "block_diag() takes at most 3 arguments". Jedoch ist T doch als Liste aufgeführt, deswegen verstehe ich den Fehler nicht..

Lg
götze1988
User
Beiträge: 13
Registriert: Samstag 6. August 2016, 13:02

Re: Blockdiagonalmatrix

Beitragvon götze1988 » Freitag 26. August 2016, 16:13

Ok, habs selber gelöst mit
H = sparse.block_diag(([T]*(P-1))).

Danke

Zurück zu „Wissenschaftliches Rechnen“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder