Ковариация параметра идентифицированной модели
возвращает необработанную ковариацию параметров идентифицированной модели.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,...)
.
Получите идентифицированную модель.
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=2×1 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=2×1 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');
sys
— Модель Identifiedidtf
, idss
, idgrey
, idpoly
, idproc
, idnlarx
, idnlhw
, или idnlgrey
возразите | массив моделейcov_type
— Тип ковариации'value'
(значение по умолчанию) | 'factors'
Ковариация возвращает тип в виде любого 'value'
или 'factors'
.
Если cov_type
'value'
, затем cov_data
возвращен как матрица (необработанная ковариация).
Если cov_type
'factors'
, затем cov_data
возвращен как структура, содержащая факторы ковариационной матрицы.
Используйте эту опцию для выборки данных о ковариации, если ковариационная матрица содержит неличные значения, не положительна определенный, или плохо обусловливается. Можно вычислить неопределенность ответа с помощью факторов ковариации вместо численно невыгодной ковариационной матрицы.
Эта опция не предлагает числового преимущества в следующих случаях:
Типы данных: char
cov_data
— Ковариация параметра sys
Ковариация параметра 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,...)
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.