LagOp

Создайте полином оператора задержки

Описание

Создайте p - степень, m - размерный полином оператора задержки A (<reservedrangesplaceholder3>) = <reservedrangesplaceholder2> 0 + <reservedrangesplaceholder1> 1 <reservedrangesplaceholder0>1 + <reservedrangesplaceholder1> 2 <reservedrangesplaceholder0>2 +... + <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0>p путем определения матриц коэффициентов A 0,..., A p и, опционально, соответствующие лаги. L является lag (или backshift) оператором, таким что Lj<reservedrangesplaceholder4> <reservedrangesplaceholder3> = <reservedrangesplaceholder2> <reservedrangesplaceholder1> – j.

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

Чтобы подогнать динамическую модель, содержащую полиномы оператора задержки к данным, создайте соответствующий объект модели, а затем подгоните его к данным. Для одномерных моделей см. arima и estimate; для многомерных моделей см varm и estimate. Для последующего анализа можно создать LagOp объект из полученных оценочных коэффициентов.

Создание

Описание

пример

A = LagOp(coefficients) создает полином оператора задержки A с коэффициентами coefficients, и устанавливает свойство Coefficients.

пример

A = LagOp(coefficients,Name,Value) задает дополнительные опции, используя один или несколько аргументы пары "имя-значение". Для примера, LagOp(coefficients,'Lags',[0 4 8],'Tolerance',1e-10) связывает коэффициенты с лагами 0, 4, и 8, и устанавливает допуск включения задержки на 1e-10.

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

расширить все

Полиномиальные коэффициенты оператора Lag, заданные в виде числового вектора, m -by m квадратную числовую матрицу или вектор камеры m -by m квадратные числовые матрицы.

ЗначениеПолином, возвращенный LagOp
Числовой вектор длины p + 1A p -степень, 1-D полином оператора задержки, где коэффициент (j) - коэффициент задержки j – 1
m -by m квадратная числовая матрицаПолином оператора 0- m-D с задержкой, где coefficient A 0, коэффициент задержки 0
Длина p + 1 вектор камеры m -by m квадратные числовые матрицыA p -degree m -D полином оператора задержки, где коэффициент (j) - матрица коэффициентов задержки j – 1

Пример: LagOp(1:3) создает полином A (L) = 1 + 2 L1 + 3 L2.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Lags',[4 8],'Tolerance',1e-10 связывает коэффициенты с лагами 4 и 8, и устанавливает допуск величины коэффициента равным 1e-10.

Лаги, сопоставленные с полиномиальными коэффициентами, заданные как разделенная разделенными запятой парами, состоящая из 'Lags' и вектор уникальных, неотрицательных целых чисел. Lags должно иметь numcoeff элементы, где numcoeff является одним из следующих:

  • Если coefficients - числовой вектор или вектор камеры, numcoeff = numel(coefficients). Коэффициент задержки Lags (j) - коэффициенты (j).

  • Если coefficients является матрицей, numcoeff = 1.

Пример: 'Lags',[0 4 8 12]

Допуск включения задержки, заданный как разделенная разделенными запятой парами, состоящая из 'Tolerance' и неотрицательный числовой скаляр.

Позвольте c быть элементом коэффициента j с наибольшей величиной. Если cTolerance, LagOp удаляет коэффициент j от полинома. Следовательно, MATLAB® выполняет следующие действия:

  • Удалите соответствующую задержку из вектора в свойстве Lags.

  • Замените соответствующий коэффициент массива в свойстве Cofficients на нули (m).

  • Если удаленная задержка является конечной задержкой в полиноме, MATLAB уменьшает степень полинома до степени следующей наибольшей задержки, присутствующей в полиноме. Для примера, если MATLAB удаляет лаги 3 и 4 из полинома степени 4, потому что их величины коэффициентов ниже Toleranceполученный полином имеет степень 2.

Пример: 'Tolerance',1e-10

Свойства

расширить все

Полиномиальные коэффициенты оператора Lag, заданные как массив ячеек с индексацией задержек из числовых скаляров или m -by - m матриц. Коэффициенты {j} - коэффициент задержки j, где целое число j0. Для примера, A.Coefficients{0} сохраняет коэффициент задержки 0 A.

The Lags свойство сохраняет индексы ненулевых коэффициентов Coefficients.

Это свойство доступно только для чтения.

p полиномиальной степени, заданная как неотрицательный числовой скаляр. Degree = max(Lags), наибольшая задержка, связанная с ненулевым коэффициентом.

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

Это свойство доступно только для чтения.

Полиномиальная размерность m, заданная как положительный числовой скаляр. Можно применить полином A только к m переменной временных рядов -D.

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

Это свойство доступно только для чтения.

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

Для работы со значением Lagsпреобразуйте его в стандартный вектор MATLAB путем ввода следующего кода.

lags = A.Lags;

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

Функции объекта

filterПримените полином оператора задержки для фильтрации временных рядов
isEqLagOpОпределите, два LagOp объекты являются одинаковыми математическими полиномами
isNonZeroНайдите лаги, сопоставленные с ненулевыми коэффициентами LagOp объекты
isStableОпределите стабильность полинома оператора задержки
minusПолиномиальное вычитание оператора задержки
mldivideПолиномиальное левое деление оператора задержки
mrdivideПолиномиальное правое деление оператора задержки
mtimesУмножение полиномов оператора задержки
plusПолиномиальное сложение оператора задержки
reflectОтражайте полиномиальные коэффициенты оператора задержки вокруг нуля задержки
toCellArrayПреобразуйте полиномиальный объект оператора задержки в массив ячеек

Примеры

свернуть все

Создайте LagOp объект, который представляет полином оператора задержки

A(L)=1-0.6L+0.08L2.

A = LagOp([1 -0.6 0.08])
A = 
    1-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [1 -0.6 0.08]
                Lags: [0 1 2]
              Degree: 2
           Dimension: 1

Отобразите коэффициент задержки 0.

a0 = A.Coefficients{0}
a0 = 1

Присвойте ненулевой коэффициент третьей задержке:

A.Coefficients{3} = 0.5
A = 
    1-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [1 -0.6 0.08 0.5]
                Lags: [0 1 2 3]
              Degree: 3
           Dimension: 1

Полиномиальная степень увеличивается до 3.

Создайте LagOp объект, который представляет полином оператора задержки

A(L)=1+0.25L4+0.1L8+0.05L12.

nonzeroCoeffs = [1 0.25 0.1 0.05];
lags = [0 4 8 12];
A = LagOp(nonzeroCoeffs,'Lags',lags)
A = 
    1-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [1 0.25 0.1 0.05]
                Lags: [0 4 8 12]
              Degree: 12
           Dimension: 1

Извлеките коэффициенты из полинома оператора задержки и отобразите все коэффициенты из лагов с 0 по 12.

allCoeffs = toCellArray(A);         % Extract coefficients
allCoeffs = cell2mat(allCoeffs');
allLags = 0:A.Degree;               % Prepare lags for display

table(allCoeffs,'RowNames',"Lag " + string(allLags))
ans=13×1 table
              allCoeffs
              _________

    Lag 0          1   
    Lag 1          0   
    Lag 2          0   
    Lag 3          0   
    Lag 4       0.25   
    Lag 5          0   
    Lag 6          0   
    Lag 7          0   
    Lag 8        0.1   
    Lag 9          0   
    Lag 10         0   
    Lag 11         0   
    Lag 12      0.05   

Создайте LagOp объект, который представляет полином оператора задержки

A(L)=[0.50001000-0.5]+[10.250.1-0.51-0.50.15-0.21]L4.

Phi0 = [0.5 0   0;... 
        0   1   0;...
        0   0   -0.5];

Phi4 = [1       0.25    0.1;...
        -0.5    1       -0.5;...
        0.15    -0.2    1];

Phi = {Phi0 Phi4};
lags = [0 4];

A = LagOp(Phi,'Lags',lags)
A = 
    3-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [Lag-Indexed Cell Array with 2 Non-Zero Coefficients]
                Lags: [0 4]
              Degree: 4
           Dimension: 3

Создайте многомерный полином оператора задержки

Создайте 2-D, полином оператора задержки 3 степени

A(L)=[1001]+[0.50.25-0.10.4]L+[0.050.025-0.010.04]L3.

m = 2;
A0 = eye(m);
A1 = [0.5 0.25; -0.1 0.4];
A3 = 0.1*A1;
Coeffs = {A0 A1 A3};
lags = [0 1 3];

A = LagOp(Coeffs,'Lags',lags)
A = 
    2-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [Lag-Indexed Cell Array with 3 Non-Zero Coefficients]
                Lags: [0 1 3]
              Degree: 3
           Dimension: 2

Определите полиномиальную стабильность

Полином оператора задержки стабилен, если величины всех собственных значений его характеристического полинома меньше 1.

Определите, является ли полином стабильным, и верните собственные значения его характеристического полинома.

[tf,evals] = isStable(A)
tf = logical
   1

evals = 6×1 complex

  -0.5820 + 0.1330i
  -0.5820 - 0.1330i
   0.0821 + 0.2824i
   0.0821 - 0.2824i
   0.0499 + 0.2655i
   0.0499 - 0.2655i

Инвертный полином

Вычислите обратную переменную A(L) правом, делящим матрицу тождеств 2 на 2 на A(L).

Ainv = mrdivide(eye(A.Dimension),A)
Ainv = 
    2-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [Lag-Indexed Cell Array with 10 Non-Zero Coefficients]
                Lags: [0 1 2 3 4 5 6 7 8 9]
              Degree: 9
           Dimension: 2

Ainv является LagOp объект, представляющий обратную A(L), полином оператора со степенью 9 задержки. В теории обратная матрица полинома оператора задержки имеет бесконечную степень, но mrdivide коэффициент-амплитуда допусков усечения полинома.

Умножиться A(L) и его обратный.

checkinv = Ainv*A
checkinv = 
    2-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [Lag-Indexed Cell Array with 4 Non-Zero Coefficients]
                Lags: [0 10 11 12]
              Degree: 12
           Dimension: 2

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

Временные ряды фильтров

Создайте 2-D временные ряды yt=A(L)et=A0et+A1et-1+A2et-2+A3et-3 путем фильтрации 2-D ряда 100 случайных стандартных Гауссовых отклонений etчерез полином.

T = 100;
e = randn(T,m);
y = filter(A,e);
plot((A.Degree + 1):T,y)
title('Filtered Series')

Figure contains an axes. The axes with title Filtered Series contains 2 objects of type line.

y - матрица 97 на 2, представляющая собой yt. y имеет p меньше наблюдений, чем e потому что filter требуется первый p наблюдения за e инициализация динамического ряда при производстве y(1:4,:).

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