Как рассчитать определитель в 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: Кстати, значение вашего детерминанта не оценивается правильно.

Другие вопросы по тегам