HigherOrderNetwork.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:Networks 作者: dencesun 项目源码 文件源码
def nfiedler(A=None, tol=1e-12):
    """
    :param A: motif adjacency matrix A
    :param tol: no uesd in this program
    :return: the fiedler vector of the normalized laplacian of A
             (fiedler vector: eigenvector corresponding to the second smallest eigenvalue)

    """
    if A is None:
        print('Error! matrix A is None..')
        return None

    L = nlaplacian(A)
    # print('L\n', L, '\n')
    n = A.shape[0]
    # print(n)
    eigvalue, eigvector = SLA.eigh(L + np.eye(n))

    # print('eigvalue\n', eigvalue)
    # print('eigvector\n', eigvector[:, 0], '\n\n', eigvector[:, 1])
    # print(L + np.eye(n))
    # print('eigvalues\n', eigvalue)
    # print('eigvalue\n', eigvalue[:2])
    # print('eigvector\n', eigvector[0:1])
    # print(eigvalue)

    x = eigvector[:, 1]

    # print('\n\nx\n', x, '\n')
    # print(x)

    x = x / (np.sqrt(np.sum(A, 1)).T)

    # x = x.T
    # print('\nx\n', x.T)

    eigvalue = eigvalue[1] - 1

    # print('\neigvalue\n', eigvalue)
    # print('\nnp.argsort(e+igvector[1])\n', np.argsort(eigvector[1]), '\n')
    # print('eigvector[1]\n', eigvector[1])
    # print('\nx\n', x)
    # print('\neigvalue\n', eigvalue)

    return x, eigvalue
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号