Демонстрационная ошибка на основе ошибочной модели и добавляет шум в данные моделирования
добавляет шум в данные моделирования sdN
= sbiosampleerror(sd
,errormodel
,errorparam
)sd
использование одной или нескольких ошибочных моделей errormodel
и параметры ошибок errorparam
.
Этот пример добавляет шум (или ошибка) к данным моделирования из радиоактивной модели затухания с реакцией первого порядка: , где x
и z
разновидности и c
постоянный форвардный курс.
Загрузите демонстрационный проект, содержащий radiodecay модель m1
.
sbioloadproject radiodecay;
Симулируйте модель.
[t,sd,names] = sbiosimulate(m1);
Постройте результаты симуляции.
plot(t,sd); legend(names,'AutoUpdate','off'); hold on
Добавьте шум в результаты симуляции с помощью постоянной ошибочной модели с набором параметра ошибок к 20.
sdNoisy = sbiosampleerror(sd,'constant',20);
Постройте шумные данные моделирования.
plot(t,sdNoisy);
Этот пример задает пользовательскую ошибочную модель использование указателя на функцию и добавляет шум в данные моделирования радиоактивной модели затухания с реакцией первого порядка, где x
и z
разновидности и c
постоянный форвардный курс.
Загрузите демонстрационный проект, содержащий radiodecay модель m1
.
sbioloadproject radiodecay;
Предположим, что у вас есть простая пользовательская ошибочная модель со стандартным средним нулем и модульным отклонением (Гауссова) нормальная переменная e
, результаты симуляции f
, и два параметра p1
и p2
:
Задайте указатель на функцию, который представляет ошибочную модель.
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);
sd
— Результаты симуляцииSimData object
| матрицаРезультаты симуляции в виде a SimData
object
или матрица.
errormodel
— Модель ErrorМодель (модели) Error в виде вектора символов, строки, указателя на функцию, представляет в виде строки вектор, массив ячеек из символьных векторов или массив ячеек, содержащий смесь векторов символов и указателей на функцию.
Если это - векторный массив строки или массив ячеек, его длина должна совпадать с количеством столбцов (ответы) в sd
, и каждая ошибочная модель применяется к соответствующему столбцу в sd
. Если это - односимвольный вектор, строка или указатель на функцию, та же ошибочная модель применяется ко всем столбцам в sd
.
Первый аргумент указателя на функцию должен быть матрицей результатов симуляции. Последующие аргументы являются параметрами ошибочной модели, предоставленной в errorparam
входной параметр. Выход указателя на функцию должен быть матрицей одного размера с первым входным параметром (результаты симуляции).
Например, предположите, что у вас есть пользовательская ошибочная модель со стандартным средним нулем и модульным отклонением (Гауссова) нормальная переменная e, результаты симуляции f и два параметра p1 и p2: . Можно задать соответствующий указатель на функцию можно следующим образом.
em = @(y,p1,p2) y+p1+p2*randn(size(y));
y
матрица результатов симуляции и p1
и p2
параметры ошибок. Выход указателя на функцию должен быть одного размера с y
, который совпадает с результатами симуляции, заданными в sd
входной параметр. Параметры p1
и p2
заданы в errorparam
аргумент.
Существует четыре встроенных ошибочных модели. Каждая модель задает ошибку стандартный средний нуль и переменная (Gaussian) модульного отклонения e, результаты симуляции f и один или два параметра a и b. Модели:
'constant'
:
'proportional'
:
'combined'
:
'exponential'
:
errorparam
— Ошибочный параметр моделиОшибочный параметр (параметры) модели в виде скаляра, вектора или массива ячеек. Если 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};
sdN
— Результаты симуляции с добавленным шумомРезультаты симуляции с добавленным шумом, возвращенным как вектор из SimData
объекты или числовая матрица. Если sd
вектор из SimData
объекты, sdN
также вектор из SimData
объекты и ошибка добавляются к каждому столбцу в sd.Data
свойство. Если sd
задан как матрица, sdN
матрица, и ошибка добавляется к каждому столбцу в матрице.
sbiosampleparameters
| createSimFunction
| SimFunction object
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.