sbiosampleerror

Демонстрационная ошибка на основе ошибочной модели и добавляет шум в данные моделирования

Описание

пример

sdN = sbiosampleerror(sd,errormodel,errorparam) добавляет шум в данные моделирования sd использование одной или нескольких ошибочных моделей errormodel и параметры ошибок errorparam.

Примеры

свернуть все

Этот пример добавляет шум (или ошибка) к данным моделирования из радиоактивной модели затухания с реакцией первого порядка: dzdt=cx, где x и z разновидности и c постоянный форвардный курс.

Загрузите демонстрационный проект, содержащий radiodecay модель m1.

sbioloadproject radiodecay;

Симулируйте модель.

[t,sd,names] = sbiosimulate(m1);

Постройте результаты симуляции.

plot(t,sd);
legend(names,'AutoUpdate','off');
hold on

Figure contains an axes. The axes contains 2 objects of type line. These objects represent x, z.

Добавьте шум в результаты симуляции с помощью постоянной ошибочной модели с набором параметра ошибок к 20.

sdNoisy = sbiosampleerror(sd,'constant',20);

Постройте шумные данные моделирования.

plot(t,sdNoisy);

Figure contains an axes. The axes contains 4 objects of type line. These objects represent x, z.

Этот пример задает пользовательскую ошибочную модель использование указателя на функцию и добавляет шум в данные моделирования радиоактивной модели затухания с реакцией первого порядка${{dz} \over {dt}} = c \cdot x$, где x и z разновидности и c постоянный форвардный курс.

Загрузите демонстрационный проект, содержащий radiodecay модель m1.

sbioloadproject radiodecay;

Предположим, что у вас есть простая пользовательская ошибочная модель со стандартным средним нулем и модульным отклонением (Гауссова) нормальная переменная e, результаты симуляции f, и два параметра p1 и p2: $y = f + p1 + p2 * e$

Задайте указатель на функцию, который представляет ошибочную модель.

em = @(y,p1,p2) y+p1+p2*randn(size(y));

Симулируйте модель.

[t,sd,names] = sbiosimulate(m1);

Постройте результаты симуляции и содержите график.

plot(t,sd);
legend(names,'AutoUpdate','off');
hold on

Произведите ошибку ранее заданная пользовательская функция с двумя наборами параметров к 0,5 и 30, соответственно.

sdNoisy = sbiosampleerror(sd,em,{0.5,30});

Постройте шумные данные моделирования.

plot(t,sdNoisy);

Можно также применить различную ошибочную модель к каждому состоянию, которое является столбцом в sd. Предположим, что вы хотите применить пользовательскую ошибочную модель (em) к первому столбцу (разновидности x данные) и пропорциональная ошибочная модель к второму столбцу (разновидности z данные.

hold off
sdNoisy = sbiosampleerror(sd,{em,'proportional'},{{0.5,30},0.3});
plot(t,sd);
legend(names,'AutoUpdate','off');
hold on
plot(t,sdNoisy);

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

свернуть все

Результаты симуляции в виде a SimData object или матрица.

Модель (модели) Error в виде вектора символов, строки, указателя на функцию, представляет в виде строки вектор, массив ячеек из символьных векторов или массив ячеек, содержащий смесь векторов символов и указателей на функцию.

Если это - векторный массив строки или массив ячеек, его длина должна совпадать с количеством столбцов (ответы) в sd, и каждая ошибочная модель применяется к соответствующему столбцу в sd. Если это - односимвольный вектор, строка или указатель на функцию, та же ошибочная модель применяется ко всем столбцам в sd.

Первый аргумент указателя на функцию должен быть матрицей результатов симуляции. Последующие аргументы являются параметрами ошибочной модели, предоставленной в errorparam входной параметр. Выход указателя на функцию должен быть матрицей одного размера с первым входным параметром (результаты симуляции).

Например, предположите, что у вас есть пользовательская ошибочная модель со стандартным средним нулем и модульным отклонением (Гауссова) нормальная переменная e, результаты симуляции f и два параметра p1 и p2: y=f+p1+p2e. Можно задать соответствующий указатель на функцию можно следующим образом.

em = @(y,p1,p2) y+p1+p2*randn(size(y));
где y матрица результатов симуляции и p1 и p2 параметры ошибок. Выход указателя на функцию должен быть одного размера с y, который совпадает с результатами симуляции, заданными в sd входной параметр. Параметры p1 и p2 заданы в errorparam аргумент.

Существует четыре встроенных ошибочных модели. Каждая модель задает ошибку стандартный средний нуль и переменная (Gaussian) модульного отклонения e, результаты симуляции f и один или два параметра a и b. Модели:

  • 'constant': y=f+ae

  • 'proportional': y=f+b|f|e

  • 'combined': y=f+(a+b|f|)e

  • 'exponential': y=fexp(ae)

Ошибочный параметр (параметры) модели в виде скаляра, вектора или массива ячеек. Если errormodel 'constant', 'proportional', или 'exponential', затем errorparam задан в виде числа. Если это - 'combined', затем errorparam задан как вектор-строка с двумя элементами [a b].

Если errormodel массив ячеек, затем errorparam должен быть массив ячеек той же длины. Другими словами, errorparam должен содержать элементы N, где N является количеством ошибочных моделей в errormodel. Каждый элемент должен иметь правильное количество параметров для соответствующей ошибочной модели.

Например, предположите, что у вас есть три столбца в sd, и вы применяете различную ошибочную модель (constant, proportional, и exponential ошибочные модели с параметрами ошибок 0.1, 0.2, и 0.5, соответственно) к каждому столбцу, затем errormodel и errorparam должны быть массивы ячеек с тремя элементами можно следующим образом.

errormodel = {'constant','proportional','exponential'};
errorparam = {0.1,0.2,0.5};

Выходные аргументы

свернуть все

Результаты симуляции с добавленным шумом, возвращенным как вектор из SimData объекты или числовая матрица. Если sd вектор из SimData объекты, sdN также вектор из SimData объекты и ошибка добавляются к каждому столбцу в sd.Data свойство. Если sd задан как матрица, sdN матрица, и ошибка добавляется к каждому столбцу в матрице.

Введенный в R2014a