精华内容
下载资源
问答
  • 对角矩阵如何计算
    千次阅读
    2020-07-29 09:36:08

    在使用pytorch编写神经网络时,可能会用到创建对角阵(例如图邻接矩阵的度矩阵)。最简单的方法是创建一个随机的矩阵然后循环赋值,但在数据量较大时可能会比较慢,此时可以先获得对角阵对角线上的值构成的向量,然后将该向量拉成对角阵。例如,有一邻接矩阵A,现在要求其度矩阵D(对角阵,每一行的对角元是A中对应节点的度),举例如下:

    import torch
    
    A=torch.ones(3,3)
    print(A)
    d=torch.sum(A,dim=1)
    print(d)
    D=torch.diag(d)
    print(D)
    

    对应的输出

    tensor([[1., 1., 1.],
            [1., 1., 1.],
            [1., 1., 1.]])
    tensor([3., 3., 3.])
    tensor([[3., 0., 0.],
            [0., 3., 0.],
            [0., 0., 3.]])
    
    更多相关内容
  • 矩阵对角化的计算

    2018-10-12 21:19:05
    每个方阵都对应一个线性变换,矩阵对角化的本质是找线性变化的特征值和特征向量。线性变换可以代表一种操作(如坐标系的转动)或者代表一个力学量(如量子力学中的动量、角动量等),运用非常广泛。
  • 在 Lapack 中,双对角化用于通过例程 zgebrd 和 zungbr 计算矩阵的 SVD。 请参阅http://www.netlib.org/lapack/lug/node53.html但是,Matlab 不支持将双向例程作为独立样式。 因此,此提交帮助人们使用矩阵的双对角...
  • 在matlab上利用追赶法求解普通三对角矩阵
  • 解三对角矩阵

    2018-09-27 08:56:54
    解三对角矩阵,样条曲线解法中的关键步骤。C++实现。易于学习和复制。
  • 解三对角矩阵以及循环三对角矩阵的数值计算方法 内含有三种方法的算法原理以及Python代码
  • python-Numpy分区对角矩阵

    千次阅读 2020-12-08 20:16:26
    我想像这样生成分区对角矩阵A给出矩阵BB = -np.diag(np.ones(n - 2), -1) - np.diag(np.ones(n - 2), 1) + 4 * np.diag(np.ones(n - 1))例如,有没有一种方法可以不使用循环?抱歉,第一次错误地上传了矩阵A和B的图形....

    我想像这样生成分区对角矩阵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的图形.

    解决方法:

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

    >>> from scipy import sparse

    >>>

    >>> 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 means 0 0 0 ...,

    # 1 means -I

    # 2 means B

    >>>

    # next line builds the lookup table (using np.stack)

    # does the lookup ...[A]

    # and flattens the resulting 4D array after swapping

    # the middle axes; the swap reorders the entries from

    # Vert, Horz, vert, horz to Vert, vert, Horz, horz

    >>> A = np.stack([np.zeros_like(B), -np.identity(n-1, int), B])[A].swapaxes(1, 2).reshape((n-1)*(n-1), -1)

    >>> A

    array([[ 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, -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

    展开全文
  • C语言 实现3X3矩阵对角线和副对角线求和,输入矩阵,输出主对角线和副对角线,欢迎下载,桌面系统VS环境直接运行
  • 量子力学中的一项基本假定是代表力学量的算符是Hermite算符,由力学量算符的本征方程解出的全部本征值,就是相应力学量的...本文先从数学上严格证明了Hermite矩阵可以酉相似对角化,然后结合物理实例分析了其物理意义。
  • 云计算-基于异构系统的多对角矩阵并行计算研究.pdf
  • C#窗体程序 n乘n矩阵计算对角线之和,输入n*n矩阵,然后点击计算就可以计算对角先之和。
  • 关于matlab中的diag函数(矩阵对角元素的提取和创建对角阵)diag函数功能:矩阵对角元素的提取和创建对角阵设以下X为方阵,v为向量1、X = diag(v,k)当v是一个含有n个元素的向量时,返回一个n+abs(k)阶方阵X,向量v在...

    关于matlab中的diag函数(矩阵对角元素的提取和创建对角阵)

    diag函数功能:矩阵对角元素的提取和创建对角阵

    设以下X为方阵,v为向量

    1、X = diag(v,k)

    当v是一个含有n个元素的向量时,返回一个n+abs(k)阶方阵X,向量v在矩阵X中的第k个对角线上,k=0表示主对角线,k>0表示在主对角线上方,k<0表示在主对角线下方。

    例1:

    v=[1 2 3];

    diag(v, 3)

    ans =

    0 0 0 1 0 0

    0 0 0 0 2 0

    0 0 0 0 0 3

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    注:从主对角矩阵上方的第三个位置开始按对角线方向产生数据的

    例2:

    v=[1 2 3];

    diag(v, -1)

    ans =

    0 0 0 0

    1 0 0 0

    0 2 0 0

    0 0 3 0

    注:从主对角矩阵下方的第一个位置开始按对角线方向产生数据的

    2、X = diag(v)

    向量v在方阵X的主对角线上,类似于diag(v,k),k=0的情况。

    例3:

    v=[1 2 3];

    diag(v)

    展开全文
  • 通过用求解带有不同边界条件的差分方程的办法来求解特殊三对角矩阵的特征值,并将三对角矩阵的特殊性归结为边界条件的不同,由此给出三对角矩阵特征值的计算公式,并研究其在偏微分方程数值解数值格式稳定性中的应用.
  • 在matlab上求解具有两个挂角的三对角矩阵
  • 直接法求三对角矩阵,利用直接法求解线性方程组Ax=b的解,解法运算快,高效
  • 云计算-五对角Toeplitz矩阵计算.pdf
  • 在matlab上求解具有一个挂角的三对角矩阵
  • # 题目:求一个3*3矩阵对角线元素之和。
  • Matlab对角矩阵

    千次阅读 2021-04-18 16:12:08
    1、正对角>> v = [1 2 3 4 5 6 7 8 9]v =1 2 3 4 5 6 7 8 9>> diag(v)ans =1 0 0 0 0 0 0 0 00 2 0 0 0 0 0 ...

    1、正对角

    >> v = [1 2 3 4 5 6 7 8 9]

    v =

    1 2 3 4 5 6 7 8 9

    >> diag(v)

    ans =

    1 0 0 0 0 0 0 0 0

    0 2 0 0 0 0 0 0 0

    0 0 3 0 0 0 0 0 0

    0 0 0 4 0 0 0 0 0

    0 0 0 0 5 0 0 0 0

    0 0 0 0 0 6 0 0 0

    0 0 0 0 0 0 7 0 0

    0 0 0 0 0 0 0 8 0

    0 0 0 0 0 0 0 0 9

    2、上对角

    >> v = [1 2 3 4 5 6 7 8 9]

    v =

    1 2 3 4 5 6 7 8 9

    >> diag(v,1)

    ans =

    0 1 0 0 0 0 0 0 0 0

    0 0 2 0 0 0 0 0 0 0

    0 0 0 3 0 0 0 0 0 0

    0 0 0 0 4 0 0 0 0 0

    0 0 0 0 0 5 0 0 0 0

    0 0 0 0 0 0 6 0 0 0

    0 0 0 0 0 0 0 7 0 0

    0 0 0 0 0 0 0 0 8 0

    0 0 0 0 0 0 0 0 0 9

    0 0 0 0 0 0 0 0 0 0

    3、下对角

    >> v = [1 2 3 4 5 6 7 8 9]

    v =

    1 2 3 4 5 6 7 8 9

    >> diag(v,-1)

    ans =

    0 0 0 0 0 0 0 0 0 0

    1 0 0 0 0 0 0 0 0 0

    0 2 0 0 0 0 0 0 0 0

    0 0 3 0 0 0 0 0 0 0

    0 0 0 4 0 0 0 0 0 0

    0 0 0 0 5 0 0 0 0 0

    0 0 0 0 0 6 0 0 0 0

    0 0 0 0 0 0 7 0 0 0

    0 0 0 0 0 0 0 8 0 0

    0 0 0 0 0 0 0 0 9 0

    展开全文
  • 利用递归方法,将高阶分块周期三对角矩阵的求逆转化为低阶分块周期三对角矩阵的求逆,给出了求分块周期三对角矩阵的逆矩阵的一种新算法。通过算法的计算量的比较,新算法比直接求逆算法的计算量小。新算法的算法...
  • 分块对角矩阵求逆

    千次阅读 2021-11-07 17:02:40
    假设矩阵A和B都为方阵,且二者都可逆,则分块对角矩阵的逆矩阵为:
  • 云计算-上双对角阵的Moore-Penrose逆的并行计算.pdf
  • 您为该函数提供了三个3D阵列,3D阵列的每一层代表一个主要,次要或超对角的块. (这意味着块必须具有相同的大小.)结果将是一个稀疏矩阵,因此它在内存方面应该是相当有效的.一个示例用法是:As = bsxfun(@times,ones(3),...
  • matlab求解三对角矩阵,利用追赶法求解,程序中给了简便的例子
  • R语言产生各种类型的矩阵矩阵运算R语言产生一般的矩阵R语言产生单位R语言产生次对角阵R语言矩阵的常见运算 R语言产生一般的矩阵 # 依行排列,产生3行5列的矩阵 A = matrix(c(1:15),3,5,byrow=T) R语言产生单位...
  • 重学数据结构:三对角矩阵公式推导过程

    千次阅读 多人点赞 2021-04-21 14:23:46
    文章目录三对角矩阵概念公式推导过程(下标为1的情况) 三对角矩阵概念 公式推导过程(下标为1的情况) k=2i+j-3推导过程: 当i=1时,只有两个元素。当i=2~i-1时,每一行都有三个元素。在最后的i行,有j-i+1个元素。 ...
  • C++如何创建对角矩阵

    2020-08-12 22:12:56
    问题描述 如题所述 解决方案 #define SIZE 3 int eye[SIZE][SIZE] = {0}; int main() { for (int i = 0; i < SIZE ; ++i) { eye[i][i] = 1;...Initialize an “eye” (identity) matrix array in C
  • 矩阵对角化(Diagonalizing a Matrix)

    千次阅读 2022-01-22 11:09:43
    矩阵对角化(Diagonalizing a Matrix)1.1 对角矩阵的优点1.2 求解一般矩阵的特征值和特征向量1.3 矩阵对角化1.4 计算 AkA^kAk1.5 矩阵对角化的注意事项 1.矩阵对角化(Diagonalizing a Matrix) 笔记参考来源:...
  • 矩阵算法 对角阵 导纳算法 矩阵算法 对角阵 导纳算法 矩阵算法 对角阵 导纳算法
  • 矩阵联合对角化的ARD算法。超级经典。超级简单。超级好用。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 196,968
精华内容 78,787
热门标签
关键字:

对角矩阵如何计算