【发布时间】:2020-12-03 10:15:03
【问题描述】:
我有一个向量和矩阵 H 的特征向量,我想在 V1 上找到数组中每个向量的点积。
我想将向量 PhiZero 与为 H 计算的每个特征向量相乘
import numpy as np
import scipy.linalg as la
import math
import networkx as nx
Alpha = []
n=3
p=0.5
G = nx.gnp_random_graph(n,p)
A = nx.to_numpy_matrix(G)
w = np.zeros(shape=(n,n))
w[1,2] = 1
gamma = 1/(n*p)
H = (-w) - (gamma * A)
我在 w 中选择了一个随机位置,
evals, evecs = la.eig(H)
PhiZero = np.reciprocal(math.sqrt(n)) * np.ones((n,1), dtype=int)
我尝试了两种方法,第一种方法,我得到一个 3x3 矩阵
Alpha = np.dot(PhiZero.transpose(), evecs)
另一种方式,我用for循环尝试:
for y in evecs:
alphaJ = np.dot(PhiZero.transpose(), evecs)
Alpha.append(alphaJ)
我采用了转置 PhiZero 以使尺寸与 evecs (1x3 & 3x1) 对齐
【问题讨论】:
-
你能提供代码来生成一个典型的 w 吗?值无关紧要,尺寸无关紧要。
标签: python networkx eigenvector