gpt4 book ai didi

python - 在 Python 中计算 Fiedler 向量

转载 作者:太空狗 更新时间:2023-10-30 01:16:47 24 4
gpt4 key购买 nike

如何在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com