Ковариация параметров идентифицированной модели
возвращает необработанную ковариацию параметров идентифицированной модели.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 - Идентифицированная модельidtf, 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.