繁体   English   中英

8×8矩阵的特征向量和特征值

[英]Eigenvector and Eigenvalue of 8 X 8 matrix

我有一个8 x 8的浮点数矩阵,需要从中计算特征向量和特征值。 这是为了使用PCA(主成分分析)减少功能,如果通过传统方法完成,这是一项耗时的工作。 我尝试使用幂方法,因为Y = C * X,其中X是我的8×8矩阵。

                float[,] XMatrix = new float[8, 1];
                float[,] YMatrix = new float[8, 1];
                float max = 0;
                XMatrix[0, 0] = 1;



                for (int i = 0; i < 8; i++)
                {
                    for (int j = 0; j < 1; j++)
                    {

                        for (int k = 0; k < 8; k++)
                        {
                            YMatrix[i, j] += C[i, k] * XMatrix[k, j];
                            if (YMatrix[i, j] > max)
                                max = YMatrix[i, j];
                        }

                    }
                }

我知道这是不正确的,但无法弄清楚。 我需要帮助来使用幂方法或者更有效的计算方法。

提前致谢。

对于任何大小(密集)矩阵,以有效的方式(即快速!)检索特征值/特征向量并不是完全无关紧要的。 我建议你使用类似QR算法的东西(虽然这可能是一次性计算单个8x8矩阵的过度杀伤)。

QR算法计算矩阵的Schur分解。 它肯定是特征值计算中最重要的算法之一。 但是,它仅适用于密集矩阵(如上所述)。

QR算法由两个独立的阶段组成。 首先,通过相似变换,原始矩阵在有限数量的步骤中转换为Hessenberg形式或 - 在Hermitian /对称情况下 - 转换为真实的三对角形式。 该算法的第一阶段准备其第二阶段,即应用于Hessenberg或三对角矩阵的实际QR迭代。

算法的总体复杂度(浮点数)为O(n3)。 有关此算法的详细说明, 请参见此处 或者在Google中搜索特征值算法应该为您提供许多计算所需特征值/向量的替代方法。

另外,我没有详细研究过这个问题,但Math.NET免费图书馆可以帮助你...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM