У меня есть матрица 8 x 8 чисел с плавающей запятой, и мне нужно вычислить из нее собственный вектор и собственное значение. Это делается для уменьшения количества функций с использованием PCA (анализ основных компонентов) и является чертовски трудоемкой работой, если выполнять ее традиционными методами. Я попытался использовать силовой метод: Y = C * X, где X — моя матрица 8 X 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];
}
}
}
Я знаю, что это неправильно, но не могу понять. Мне нужна помощь в использовании степенного метода или, возможно, более эффективного способа его расчета.
Заранее спасибо.