Как рассчитать определитель в PCA?
Я собираюсь запрограммировать PCA, но для этого мне нужно вычислить собственный вектор и собственное значение.
Мой вопрос в том, чтобы вычислить собственное значение, мы должны вычислить определитель матрицы, которая все (диагональное значение - лямда).
В этом случае мы можем рассмотреть количество лямд в зависимости от размера матрицы.
Я могу запрограммировать его вручную для матриц перед тем, как лямда вычтет диагональ.
А для диагонали после вычитания по лямде как вычислить??
Потому что, в конце концов, мы должны сделать факторизацию, чтобы получить лямду (x1,x2,..,xn).
Вот пример:
Matriks =[ 3 5 6
5 7 4
3 8 9]
Затем мы должны вычесть диагональное значение из собственного значения, в этом случае, поскольку мы не знаем его, мы будем рассматривать его как x.
Matrix_New=[ 3-x 5 6
5 7-x 4
3 8 9-x]
И определитель является (3-х)(7-х)(9-х).
Я уже пытался умножить его, но Matlab дает ошибку. Знаете ли вы, как сделать расчет (3-х)(7-х)(9-х)??
Я знаю, что есть функция Matlab, но я не могу использовать ее!
Я действительно ценю любую помощь:)
1 ответ
Вы можете использовать символический набор инструментов, если у вас есть.
http://www.mathworks.com/help/symbolic/mupad_ref/linalg-det.html
Тогда вам нужно найти корни многочлена.
Если у вас нет символического набора инструментов, я думаю, что вы должны сделать свою программу самостоятельно. Одним из вариантов является использование незначительного расширения.
PS: Кстати, значение вашего детерминанта не оценивается правильно.