分块对角矩阵的逆矩阵,相似于对角矩阵嘛,分块对角矩阵的逆矩阵,相似于对角矩阵对吗

  分块对角矩阵的逆矩阵,相似于对角矩阵嘛,分块对角矩阵的逆矩阵,相似于对角矩阵对吗

  我想像这样生成分区对角矩阵A

  给出矩阵B

  B=-np.diag(np.ones(n - 2),-1) - np.diag(np.ones(n - 2),1) 4 * np.diag(np.ones(n - 1))

  例如,

  有没有一种方法可以不使用循环?

  抱歉,第一次错误地上传了矩阵A和B的图形。

  解决方法:

  您可以将构建块堆叠到查找表中,然后通过在其中建立索引来构建答:

  从科学计算导入稀疏

  n=5

  B=sparse.diags([-1,4,-1],[-1,0,1],(n-1,n-1),dtype=int).A

  A=sparse.diags([1,2,1],[-1,0,1],(n-1,n-1),dtype=int).A

  # 0表示0 0 0.

  # 1表示我

  # 2表示B

  #下一行构建查找表(使用堆栈)

  #进行查找.[A]

  #并展平交换后产生的4D阵列

  #中间轴;交换对条目进行重新排序

  #垂直,水平,垂直,水平到垂直,垂直,水平,水平

  A=np.stack([np.zeros_like(B),-np.identity(n-1,int),B])[A].交换(1,2)。整形((n-1)*(n-1),-1)

  A

  数组([[ 4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,

  [-1, 4, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  [ 0, -1, 4, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0],

  [ 0, 0, -1, 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0],

  [-1, 0, 0, 0, 4, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0],

  [ 0, -1, 0, 0, -1, 4, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0],

  [ 0, 0, -1, 0, 0, -1, 4, -1, 0, 0, -1, 0, 0, 0, 0, 0],

  [ 0, 0, 0, -1, 0, 0, -1, 4, 0, 0, 0, -1, 0, 0, 0, 0],

  [ 0, 0, 0, 0, -1, 0, 0, 0, 4, -1, 0, 0, -1, 0, 0, 0],

  [ 0, 0, 0, 0, 0, -1, 0, 0, -1, 4, -1, 0, 0, -1, 0, 0],

  [ 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 4, -1, 0, 0, -1, 0],

  [ 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 4, 0, 0, 0, -1],

  [ 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 4, -1, 0, 0],

  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 4, -1, 0],

  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 4, -1],

  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 4]])

  请注意,稀疏构造函数仅出于其便利性而使用。稀疏矩阵将立即转换为密集矩阵(使用A属性).

  标签:python,numpy

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: