cholcov

Подобное Холесскому разложение ковариации

Синтаксис

T = cholcov(SIGMA)
[T,num] = cholcov(SIGMA)
[T,num] = cholcov(SIGMA,0)

Описание

T = cholcov(SIGMA) вычисляет T, таким образом что SIGMA = T'*T. SIGMA должен быть квадратным, симметричным, и положительный полуопределенный. Если SIGMA положителен определенный, то T является квадратный, верхний треугольный Фактор Холесского. Если SIGMA не положителен определенный, T вычисляется из разложения собственного значения SIGMA. T является не обязательно треугольным или квадратным в этом случае. Любые собственные вектора, соответствующее собственное значение которых близко к нулю (в маленьком допуске) не использованы. Если какие-либо остающиеся собственные значения отрицательны, T пуст.

[T,num] = cholcov(SIGMA) возвращает номер num отрицательных собственных значений SIGMA, и T пуст, если num положителен. Если num является нулем, SIGMA положителен полуопределенный. Если SIGMA не является квадратным и симметричным, num является NaN, и T пуст.

[T,num] = cholcov(SIGMA,0) возвращает num, равный нулю, если SIGMA положителен определенный, и T является Фактор Холесского. Если SIGMA не положителен определенный, num является положительным целым числом, и T пуст. [...] = cholcov(SIGMA,1) эквивалентен [...] = cholcov(SIGMA).

Примеры

Следующая ковариационная матрица 4 на 4 имеет неполный ранг:

C1 = [2 1 1 2;1 2 1 2;1 1 2 2;2 2 2 3]
C1 =
     2     1     1     2
     1     2     1     2
     1     1     2     2
     2     2     2     3
rank(C1)
ans =
     3

Используйте cholcov, чтобы учесть C1:

T = cholcov(C1)
T =
   -0.2113    0.7887   -0.5774         0
    0.7887   -0.2113   -0.5774         0
    1.1547    1.1547    1.1547    1.7321

C2 = T'*T
C2 =
    2.0000   1.0000   1.0000   2.0000
    1.0000   2.0000   1.0000   2.0000
    1.0000   1.0000   2.0000   2.0000
    2.0000   2.0000   2.0000   3.0000

Используйте T, чтобы сгенерировать случайные данные с заданной ковариацией:

C3 = cov(randn(1e6,3)*T)
C3 =
    1.9973    0.9982    0.9995    1.9975
    0.9982    1.9962    0.9969    1.9956
    0.9995    0.9969    1.9980    1.9972
    1.9975    1.9956    1.9972    2.9951

Расширенные возможности

Смотрите также

|

Представленный в R2007a

Для просмотра документации необходимо авторизоваться на сайте