生成n-n矩阵 对角线为1 python,python n阶矩阵

  生成n*n矩阵 对角线为1 python,python n阶矩阵

  本文主要介绍python如何生成任意阶N次三对角矩阵,具有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。

  00-1010如何生成任意n阶三对角矩阵python矩阵分为上三角、下三角和对角矩阵。

  

目录

  数学需要共轭梯度法的算法。

  题目中的矩阵A是n=400/500/600的三对角矩阵。

  在网上查阅资料失败后,自己解决了。

  将numpy作为np导入

  定义生成_矩阵(n):

  #添加对角矩阵得到三对角矩阵a。

  数组a=np.diag([-2] * n)

  array=np.diag([1] * (n-1))

  a=np.zeros((n-1))

  b=np.zeros(n)

  Array _ b=np.insert (array,0,values=a,axis=0) #添加一行

  Array _ b=np.insert (array _ b,(n-1),values=b,axis=1) #添加一列

  array_c=np.insert(array,(n-1),values=a,axis=0)

  array_c=np.insert(array_c,0,值=b,轴=1)

  矩阵A=数组A数组b数组c

  打印(数组_a)

  打印(数组_b)

  打印(array_c)

  打印(matrix_A)

  #按下槽中的绿色按钮运行脚本。

  if __name__==__main__:

  n=5

  生成矩阵(n)

  输出:

  c : \ Users \ 87167 \ anaconda 3 \ envs \ TF \ python . exe c :/Users/87167/PycharmProjects/GongETiDuFa/main . py

  [[-2 0 0 0 0]

  [ 0 -2 0 0 0]

  [ 0 0 -2 0 0]

  [ 0 0 0 -2 0]

  [ 0 0 0 0 -2]]

  [[0 0 0 0 0]

  [1 0 0 0 0]

  [0 1 0 0 0]

  [0 0 1 0 0]

  [0 0 0 1 0]]

  [[0 1 0 0 0]

  [0 0 1 0 0]

  [0 0 0 1 0]

  [0 0 0 0 1]

  [0 0 0 0 0]]

  [[-2 1 0 0 0]

  [ 1 -2 1 0 0]

  [ 0 1 -2 1 0]

  [ 0 0 1 -2 1]

  [ 0 0 0 1 -2]]

  

如何生成任意n阶的三对角矩阵

  斜的

  返回指定的对角线。

  诊断平台

  以展平的输入作为对角线创建一个二维数组。

  微量

  沿着对角线求和。

  抽取上三角阵

  数组的上三角形。

  tril

  数组的下三角形。

  先说提取一个方阵对角线下的下三角矩阵和对角线上的上三角矩阵(如果只需要上三角矩阵和下三角矩阵,去掉tril/triu中的第二个参数)

  上代码(这里使用tril和triu都是返回array形式,还需使用mat转换回矩阵):

  m=np.mat(1,2,3;4,5,6;7,8,9)

  m

  矩阵([[1,2,3],

  [4, 5, 6],

  [7, 8, 9]])

  L=np.tril(m,-1)

  L

  数组([[0,0,0],

  [4, 0, 0],

  [7, 8, 0]])

  U=np.triu(m,1)

  U

  数组([[0,2,3],

  [0, 0, 6],

  [0, 0, 0]])

  有两种方法提取对角元素作为矩阵:

  1、运用np.diag两次,再使用mat转换回矩阵:

  D=np.diag(np.diag(m))

  D

  数组([[1,0,0],

  [0, 5, 0],

  [0, 0, 9]])

  D=np.mat(D)

  D

  矩阵([[1,0,0],

  [0, 5, 0],

  [0, 0, 9]])

  2、运用下三角矩阵减去次下三角矩阵(即对角线下的下三角阵):

  D=np.tril(m) - L

  D

  数组([[1,0,0],

  [0, 5, 0],

  [0, 0, 9]])

  D=np.mat(D)

  D

  矩阵([[1,0,0],

  [0, 5, 0],

  [0, 0, 9]])

  以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。

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

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