getcov

Ковариация параметра идентифицированной модели

Синтаксис

cov_data = getcov(sys)
cov_data = getcov(sys,cov_type)
cov_data = getcov(sys,cov_type,'free')

Описание

пример

cov_data = getcov(sys) возвращает необработанную ковариацию параметров идентифицированной модели.

  • Если sys является одной моделью, то cov_data является np-by-np матрица. np является количеством параметров sys.

  • Если sys является образцовым массивом, то cov_data является массивом ячеек размера, равного размеру массивов sys.

    cov_data(i,j,k,...) содержит данные о ковариации для sys(:,:,i,j,k,...).

пример

cov_data = getcov(sys,cov_type) возвращает ковариацию параметра или как матрицу или как структуру, в зависимости от типа ковариации, который задан.

пример

cov_data = getcov(sys,cov_type,'free') возвращает данные о ковариации только свободных параметров модели.

Примеры

свернуть все

Получите идентифицированную модель.

load iddata1 z1
sys = tfest(z1,2);

Получите необработанную ковариацию параметра для модели.

cov_data = getcov(sys)
cov_data = 5×5

    1.2131   -4.3949   -0.0309   -0.5531         0
   -4.3949  115.0838    1.8598   10.6660         0
   -0.0309    1.8598    0.0636    0.1672         0
   -0.5531   10.6660    0.1672    1.2433         0
         0         0         0         0         0

cov_data содержит ковариационную матрицу для вектора параметра [sys.Numerator,sys.Denominator(2:end),sys.IODelay].

sys.Denominator(1) зафиксирован к 1 и не обработан в качестве параметра. Записи ковариационной матрицы, соответствующие параметру задержки (пятая строка и столбец), являются нулем, потому что задержка не была оценена.

Получите идентифицированный образцовый массив.

load iddata1 z1;
sys1 = tfest(z1,2);
sys2 = tfest(z1,3);
sysarr = stack(1,sys1,sys2);

sysarr 2 1 массив непрерывно-разовых, идентифицированных передаточных функций.

Получите необработанную ковариацию параметра для моделей в массиве.

cov_data = getcov(sysarr)
cov_data = 2x1 cell array
    {5x5 double}
    {7x7 double}

cov_data является 2 1 массивом ячеек. cov_data{1} и cov_data{2} являются необработанными ковариационными матрицами параметра для sys1 и sys2.

Загрузите данные об оценке.

load iddata1 z1
z1.y = cumsum(z1.y);

Оцените модель.

init_sys = idtf([100 1500],[1 10 10 0]);
init_sys.Structure.Numerator.Minimum = eps;
init_sys.Structure.Denominator.Minimum = eps;
init_sys.Structure.Denominator.Free(end) = false;
opt = tfestOptions('SearchMethod','lm');
sys = tfest(z1,init_sys,opt);

sys является моделью idtf с шестью параметрами, четыре из которых оцениваются.

Получите ковариационную матрицу для предполагаемых параметров.

cov_type = 'value';
cov_data = getcov(sys,cov_type,'free')
cov_data = 4×4
105 ×

    0.0269   -0.1237   -0.0001   -0.0017
   -0.1237    1.0221    0.0016    0.0133
   -0.0001    0.0016    0.0000    0.0000
   -0.0017    0.0133    0.0000    0.0002

cov_data является ковариационной матрицей 4x4 с записями, соответствующими четырем предполагаемым параметрам.

Получите идентифицированную модель.

load iddata1 z1
sys = tfest(z1,2);

Получите учтенную ковариацию параметра для модели.

cov_type = 'factors';
cov_data = getcov(sys,cov_type);

Получите идентифицированный образцовый массив.

load iddata1 z1
sys1 = tfest(z1,2);
sys2 = tfest(z1,3);
sysarr = stack(1,sys1,sys2);

sysarr 2 1 массив непрерывно-разовых, идентифицированных передаточных функций.

Получите учтенную ковариацию параметра для моделей в массиве.

cov_type = 'factors';
cov_data = getcov(sysarr,cov_type)
cov_data = 2x1 struct array with fields:
    R
    T
    Free

cov_data 2 1 массив структур. cov_data(1) и cov_data(2) являются учтенными структурами ковариации для sys1 и sys2.

Загрузите данные об оценке.

load iddata1 z1
z1.y = cumsum(z1.y);

Оцените модель.

init_sys = idtf([100 1500],[1 10 10 0]);
init_sys.Structure.Numerator.Minimum = eps;
init_sys.Structure.Denominator.Minimum = eps;
init_sys.Structure.Denominator.Free(end) = false;
opt = tfestOptions('SearchMethod','lm');
sys = tfest(z1,init_sys,opt);

sys, модель idtf, имеет шесть параметров, четыре из которых оцениваются.

Получите учтенную ковариацию для предполагаемых параметров.

cov_type = 'factors';
cov_data = getcov(sys,cov_type,'free');

Входные параметры

свернуть все

Идентифицированная модель, заданная как idtf, idss, idgrey, idpoly, idproc, idnlarx, idnlhw, или модель idnlgrey или массив таких моделей.

Команда getcov возвращает cov_data как [] для моделей idnlarx и idnlhw, потому что эти модели не хранят данные о ковариации параметра.

Ковариация возвращает тип, заданный или как 'value' или как 'factors'.

  • Если cov_type является 'value', то cov_data возвращен как матрица (необработанная ковариация).

  • Если cov_type является 'factors', то cov_data возвращен как структура, содержащая факторы ковариационной матрицы.

    Используйте эту опцию для выборки данных о ковариации, если ковариационная матрица содержит неличные значения, не положительна определенный, или плохо обусловливается. Можно вычислить неуверенность ответа с помощью факторов ковариации вместо численно невыгодной ковариационной матрицы.

    Эта опция не предлагает числового преимущества в следующих случаях:

    • sys оценивается с помощью определенных инструментальных методов переменной, таких как iv4.

    • Вы явным образом задали ковариацию параметра sys с помощью свойства модели CovarianceMatrix устаревшего.

Типы данных: char

Выходные аргументы

свернуть все

Ковариация параметра sys, возвращенного как матрица, массив ячеек матриц, структуры или массива ячеек структур. cov_data является [] для моделей idnlarx и idnlhw.

  • Если sys является одной моделью, и cov_type является 'value', то cov_data является np-by-np матрица. np является количеством параметров sys.

    Значение ненулевых элементов этой матрицы равно sys.Report.Parameters.FreeParCovariance, когда sys получен через оценку. Записи строки и столбца, которые соответствуют фиксированным параметрам, являются нулем.

  • Если sys является одной моделью, и cov_type является 'factors', то cov_data является структурой с полями:

    • R Обычно верхняя треугольная матрица.

    • T Матрица преобразования.

    • Free — Логический вектор длины np, указывая, ли параметр модели свободен (оцененный) или нет. np является количеством параметров sys.

    Получить ковариационную матрицу с помощью учтенной формы, введите:

    Free = cov_factored.Free; 
    T = cov_factored.T;
    R = cov_factored.R;
    np = nparams(sys); 
    cov_matrix = zeros(np);
    cov_matrix(Free, Free) = T*inv(R'*R)*T';

    Для числовой точности вычислите T*inv(R'*R)*T' как X*X', где X = T/R.

  • Если sys является образцовым массивом, то cov_data является массивом ячеек размера, равного размеру массивов sys.

    cov_data(i,j,k,...) содержит данные о ковариации для sys(:,:,i,j,k,...).

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