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: 32203
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)))
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. — Brian W. Kernighan
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