Для комплексных данных мне трудно гарантировать, что ковариационная матрица является положительно определенной. Беря пример,
P =
10.0000 +10.0000i 0 0
0 10.0000 +10.0000i 0
0 0 10.0000 +10.0000i
Я могу проверить положительную определенность P, используя холецкий или собственные значения, описанные ниже.
(A)
[R1,p1] = chol(P)
R1 =
[]
p1 =
1
Поскольку p1 > 0, A не является положительно определенной
(B) Использование собственных значений: если собственные значения положительны, то P должен быть положительно определенным.
[r p]=eig(P)
r =
1 0 0
0 1 0
0 0 1
p =
10.0000 +10.0000i 0 0
0 10.0000 +10.0000i 0
0 0 10.0000 +10.0000i
Однако выполнение svd(P)
дает все положительные собственные значения !! Где я ошибаюсь и что мне делать, чтобы матрица P не стала не положительно определенной. Во время выполнения и в сценариях реального мира очень сложно обеспечить позитивную определенность P. Есть ли хак или выход? Спасибо большое