Этот пример показывает, как неявно создать модель рассеянного пространства состояний, которая содержит регрессионый компонент в уравнении наблюдения. Модель состояния содержит состояние ARMA (1,1) и случайную прогулку.
Написание функции, которая задает, как параметры в params
сопоставить с матрицами модели пространства состояний, с начальными значениями состояний и с типом состояния. Задайте регрессионный компонент путем сдувания наблюдений внутри функции. Символически модель является:
% Copyright 2015 The MathWorks, Inc. function [A,B,C,D,Mean0,Cov0,StateType,DeflateY] = diffuseRegressionParamMap(params,y,z) % Diffuse state-space model with a regression component parameter mapping % function example. This function maps the vector params to the state-space % matrices (A, B, C, and D) and indicates the type of states (StateType). % The state model contains an ARMA(1,1) model and a random walk. varu1 = exp(params(3)); % Positive variance constraint vare1 = exp(params(5)); A = [params(1) params(2); 0 0]; B = [sqrt(varu1) 0; 1 0]; C = [varu1 0]; D = sqrt(vare1); Mean0 = []; % Let software infer Mean0 Cov0 = []; % Let software infer Cov0 StateType = [0 0 2]; DeflateY = y - params(6)*z; end
Сохраните этот код как файл с именем diffuseRegressionParamMap.m
в папку в пути MATLAB ®.
Создайте модель рассеянного пространства состояний путем прохождения diffuseRegressionParamMap
как указатель на функцию, чтобы dssm
.
Mdl = dssm(@(params)diffuseRegressionParamMap(params,y,z));
dssm
неявно создает модель рассеянного пространства состояний. Обычно вы не можете проверить неявно определенные модели пространства состояний.
Перед созданием модели убедитесь, что переменные y
и z
существует в рабочей рабочей области.