使用scipy.sparse的三角形块矩阵

问题描述:

我需要使用scipy稀疏构建块三对角矩阵的帮助。使用scipy.sparse的三角形块矩阵

我的意思是对方阵B,

我需要创建

[[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]] 

现在,我想这是编程完成,因为矩阵的大小可能会有所不同。

谢谢!

解决了!

我刚刚将scipy.sparse.bmat与列表解析结合使用。

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') 

其中Bnxn矩阵。