gpt4 book ai didi

c++ - 如何在 C++ 中计算列随机矩阵的特征向量

转载 作者:行者123 更新时间:2023-11-30 04:35:16 25 4
gpt4 key购买 nike

我有一个列随机矩阵 A(n×n 实数非负矩阵),想用 C++ 求解以下方程:Ax=x

我假设我需要找出一个特征向量 x,其中特征值必须为 1(对吗?),但我无法在 C++ 中计算出来。到目前为止,我已经检查了一些数学库,例如 Seldon、CPPScaLapack、Eigen...其中,Eigen 似乎是一个不错的选择,但我不明白如何利用它们中的任何一个来求解上面的方程。

你能给我一些解决方程式的建议/代码片段或想法吗?非常感谢任何帮助。

谢谢。

最佳答案

由于随机矩阵 $M$ 的最大特征向量是单位,因此您可以通过迭代找到该特征向量(除非您真的不擅长猜测初始值)。

从一些随机选择的初始 vector $v_1$ 开始,其值(概率)总和为 1。将 $M$ 应用于 $v_1$ 以获得 $Mv_1$。现在重新归一化这个新 vector $Mv_1$,即除以它的元素之和得到$v_2$。这是一个新的概率 vector ,它将更接近所需的特征向量(除非您的初始猜测恰好与特征向量正交)。

重复这个过程直到 $v_k$ 接近稳定。根据需要,这应该是 $Mv_k = v_k$ 的 vector 。

关于c++ - 如何在 C++ 中计算列随机矩阵的特征向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5440289/

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