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