2017-06-20 1 views
0

Ich brauche Hilfe beim Aufbau einer Block Tridiagonal Matrix mit scipy sparse.Tridiagonale Blockmatrix mit scipy.sparse

Was ich damit meine, für eine quadratische Matrix B ist,

brauche ich

[[B I 0 0 0] 
[I B I 0 0] 
[0 I B I 0] 
[0 0 I B I] 
[0 0 0 I B]] 

Jetzt zu schaffen, möchte ich dies programmatisch, da die Größe der Matrix durchgeführt werden kann variieren.

Danke!

Antwort

1

Gelöst es!

Ich habe gerade scipy.sparse.bmat in Verbindung mit List Comprehensions verwendet.

A = sparse.bmat([[B if i == j else np.eye(n) if abs(i-j)==1 
       else None for i in range(n)] 
       for j in range(n)], format='bsr') 

Wo B eine nxn Matrix ist.

Verwandte Themen