Класс, представляющий средство оценки нелинейности двоичного дерева для нелинейных моделей ARX
t=treepartition(Property1,Value1,...PropertyN,ValueN)
t=treepartition('NumberOfUnits',N)
treepartition
объект, который хранит двоичное дерево нелинейное средство оценки для оценки нелинейных моделей ARX. Объект задает нелинейную функцию , где F является кусочно-линейной (аффинной) функцией x, y является скаляром, и x является 1 m
вектор. Вычислите значение F с помощью evaluate(t,x)
, где t treepartition
объект в x.
t=treepartition(Property1,Value1,...PropertyN,ValueN)
создает объект средства оценки нелинейности двоичного дерева, заданный свойствами в treepartition Свойствах. Дерево имеет количество листов, равных 2^(J+1)-1
, где J
количество узлов в дереве и наборе свойством NumberOfUnits
. Значение по умолчанию NumberOfUnits
вычисляется автоматически и устанавливает верхний предел для фактического количества древовидных узлов, используемых средством оценки.
t=treepartition('NumberOfUnits',N)
создает объект средства оценки нелинейности двоичного дерева с N
условия в расширении двоичного дерева (количество узлов в дереве). Когда вы оцениваете модель, содержащую t
, значение NumberOfUnits
свойство, N
, в t
автоматически изменяется, чтобы показать фактическое количество используемых листов — который является самым большим целым числом формы 2^n-1
и меньше чем или равный N
.
Можно включать пары значения свойства в конструктора, чтобы задать объект.
После создания объекта можно использовать get
или запись через точку, чтобы получить доступ к значениям свойства объекта. Например:
% List all property values get(t) % Get value of NumberOfUnits property t.NumberOfUnits
Можно также использовать set
функционируйте, чтобы установить значение конкретных свойств. Например:
set(t, 'NumberOfUnits', 5)
set
должно быть имя переменной MATLAB®.PropertyName | Описание |
---|---|
NumberOfUnits | Целое число задает количество узлов в дереве. Когда вы оцениваете модель, содержащую Например: treepartition('NumberOfUnits',5) |
Parameters | Структура, содержащая следующие поля:
|
Options | Структура, содержащая следующие поля, которые влияют на первоначальную модель:
|
Использование treepartition
задавать нелинейное средство оценки в нелинейных моделях ARX. Например:
m=nlarx(Data,Orders,treepartition('num',5));
Следующие команды обеспечивают пример использования усовершенствованного treepartition
опции:
% Define the treepartition object. t=treepartition('num',100); % Set the Threshold, which is a field % in the Options structure. t.Options.Threshold=2; % Estimate the nonlinear ARX model. m=nlarx(Data,Orders,t);
F отображения задан двухместным разделом P x - пробел, такой, что на каждом элементе раздела Pk, F является линейным отображением. Когда x принадлежит Pk, F (x) дают:
где L 1 m вектором, и d является скаляром, характерным для всех элементов раздела. C k является 1 на (m +1) вектор.
Отображение F и сопоставленный раздел P x - пробел вычисляется можно следующим образом:
Учитывая значение J, двухместного дерева с уровнями J и N = 2J–1 узлы инициализируется.
Каждый узел на уровне 1 <j <J имеет двух потомков на уровне j + 1 и один родительский элемент на уровне j – 1.
Корневой узел на уровне 1 имеет двух потомков.
Узлы на уровне J отключает листы дерева и имеет один родительский элемент.
Один элемент раздела сопоставлен к каждому узлу k дерева.
Вектор из коэффициентов Ck вычисляется с помощью наблюдений относительно соответствующего элемента раздела Pk оштрафованным алгоритмом наименьших квадратов.
Когда узел, k не является завершающим работу листом, элемент раздела P k, сокращается в два, чтобы получить элементы раздела порожденных узлов. Сокращение задано полупространствами (1, x) Bk > 0 или <=0 (переместитесь к левому или правому потомку), где Bk выбран, чтобы улучшить устойчивость расчета наименьшего квадрата на разделах в порожденных узлах.
Когда значение отображения F, заданный treepartition
возразите, вычисляется в x, адаптивный алгоритм выбирает активный узел k дерева на ветви разделов, которые содержат x.
Когда Focus
опция в nlarxOptions
'prediction'
, treepartition
использует неитеративный метод для оценки параметров. Итеративные улучшения не возможны для моделей, содержащих это средство оценки нелинейности.
Вы не можете использовать treepartition
когда Focus
'simulation'
потому что эта нелинейность средства оценки не дифференцируема. Минимизация ошибки симуляции требует дифференцируемых нелинейных функций.