作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如何在 Python 中找到拉普拉斯算子 (L) 的守场员向量?
我可以使用以下方法获取特征值和特征向量:特征值,特征向量 = linalg.eig(L)
我假设 python 不会按顺序返回特征值。
我是否取第二大特征值然后将其与相应的特征向量匹配(在索引中匹配)?
对特征值进行排序时,如何处理负值?是否按绝对量级排序?
谢谢你的帮助
最佳答案
好吧,我不知道所涉及的数学,但我会尽力而为。
如果您检查 documentation , linalg.eig
实际上确实以与其对应的特征值相同的顺序返回特征向量。
我可能会这样做:
w, v = linalg.eig(L)
seen = {}
unique_eigenvalues = []
for (x, y) in zip(w, v):
if x in seen:
continue
seen[x] = 1
unique_eigenvalues.append((x, y))
fiedler = sorted(unique_eigenvalues)[1][1]
默认情况下,Python 按第一个元素对元组进行排序,然后是第二个元素,依此类推,并且数字按照您期望的方式排序(-2 < -1 等)。这当然假设您的特征值并不复杂。
此外,我假设可能存在重复的特征值,并且 Fiedler 向量是与第二小的唯一特征值关联的特征向量。
关于python - 在 Python 中计算 Fiedler 向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10924966/
如何在 Python 中找到拉普拉斯算子 (L) 的守场员向量? 我可以使用以下方法获取特征值和特征向量:特征值,特征向量 = linalg.eig(L) 我假设 python 不会按顺序返回特征值。
我想在我的游戏中使用 artemis ( https://github.com/junkdog/artemis-odb)。 最近我读到了 Glenn Fiedler 的游戏循环: http://gaf
我是一名优秀的程序员,十分优秀!