Получите 3-D матрицу чувствительности от SimData
объект
[
возвращает время t
,r
,outputFactors
,inputFactors
] = getsensmatrix(simdata
)t
и данные о чувствительности r
а также весь outputFactors
и inputFactors
(чувствительность выходные параметры и входные параметры) от SimData
объект simdata
.
[
возвращает данные о чувствительности только для выходных параметров и вводит заданный t
,r
,outputFactors
,inputFactors
] = getsensmatrix(simdata
,outputFactorNames
,inputFactorNames
)outputFactorNames
и inputFactorNames
, соответственно.
SimFunctionSensitivity
ОбъектВ этом примере показано, как вычислить чувствительность некоторых разновидностей в модели Лотки-Вольтерры с помощью SimFunctionSensitivity
объект.
Загрузите демонстрационный проект.
sbioloadproject lotka;
Задайте входные параметры.
params = {'Reaction1.c1', 'Reaction2.c2'};
Задайте наблюдаемые разновидности, которые являются выходными параметрами симуляции.
observables = {'y1', 'y2'};
Создайте SimFunctionSensitivity
объект. Установите чувствительность выходные факторы на все разновидности (y1
и y2
) заданный в observables
аргумент и входные факторы тем в params
аргумент (c1
и c2
) путем установки аргумента пары "имя-значение" 'all'
.
f = createSimFunction(m1,params,observables,[],'SensitivityOutputs','all','SensitivityInputs','all','SensitivityNormalization','Full')
f = SimFunction Parameters: Name Value Type ________________ _____ _____________ {'Reaction1.c1'} 10 {'parameter'} {'Reaction2.c2'} 0.01 {'parameter'} Observables: Name Type ______ ___________ {'y1'} {'species'} {'y2'} {'species'} Dosed: None Sensitivity Input Factors: Name Type ________________ _____________ {'Reaction1.c1'} {'parameter'} {'Reaction2.c2'} {'parameter'} Sensitivity Output Factors: Name Type ______ ___________ {'y1'} {'species'} {'y2'} {'species'} Sensitivity Normalization: Full
Вычислите чувствительность путем выполнения объекта с c1
и c2
установите на 10 и 0.1, соответственно. Установите выходные времена от 1 до 10. t
содержит моменты времени, y
содержит данные моделирования и sensMatrix
матрица чувствительности, содержащая чувствительность y1
и y2
относительно c1
и c2
.
[t,y,sensMatrix] = f([10,0.1],[],[],1:10);
Получите информацию о чувствительности в моменте времени 5.
temp = sensMatrix{:}; sensMatrix2 = temp(t{:}==5,:,:); sensMatrix2 = squeeze(sensMatrix2)
sensMatrix2 = 2×2
37.6987 -6.8447
-40.2791 5.8225
Строки sensMatrix2
представляйте выходные факторы (y1
и y2
). Столбцы представляют входные факторы (c1
и c2
).
Установите время остановки на 15, не задавая выходные времена. В этом случае выходные времена являются моментами времени решателя по умолчанию.
sd = f([10,0.1],15);
Получите расчетную чувствительность из SimData
объект sd
.
[t,y,outputs,inputs] = getsensmatrix(sd);
Постройте чувствительность разновидностей y1
и y2
относительно c1
.
figure; plot(t,y(:,:,1)); legend(outputs); title('Sensitivities of species y1 and y2 with respect to parameter c1'); xlabel('Time'); ylabel('Sensitivity');
Постройте чувствительность разновидностей y1
и y2
относительно c2
.
figure; plot(t,y(:,:,2)); legend(outputs); title('Sensitivities of species y1 and y2 with respect to parameter c2'); xlabel('Time'); ylabel('Sensitivity');
В качестве альтернативы можно использовать sbioplot
.
sbioplot(sd);
Можно также построить матрицу чувствительности использование интеграла времени для расчетной чувствительности y1
и y2
. График показывает y1
и y2
более чувствительны к c1
чем c2
.
[~, in, out] = size(y); result = zeros(in, out); for i = 1:in for j = 1:out result(i,j) = trapz(t(:),abs(y(:,i,j))); end end figure; hbar = bar(result); haxes = hbar(1).Parent; haxes.XTick = 1:length(outputs); haxes.XTickLabel = outputs; legend(inputs,'Location','NorthEastOutside'); ylabel('Sensitivity');
simdata
— Данные моделированияSimData
возразите | массив SimData
объектыДанные моделирования в виде SimData
объект или массив SimData
объекты. Если simdata
массив объектов, выходные параметры являются массивами ячеек, в которых каждая ячейка содержит данные для соответствующего объекта в SimData
массив.
outputFactorNames
— Имена чувствительности выходные параметры[]
(значение по умолчанию) | вектор символов | представляет в виде строки | вектор строки | массив ячеек из символьных векторовИмена чувствительности выходные параметры в виде пустого массива []
, вектор символов, строка, представляет в виде строки вектор или массив ячеек из символьных векторов.
По умолчанию функция использует пустой массив []
возвратить данные о чувствительности для всего выхода включает simdata
.
inputFactorNames
— Имена входных параметров чувствительности[]
(значение по умолчанию) | вектор символов | представляет в виде строки | вектор строки | массив ячеек из символьных векторовИмена чувствительности вводят в виде пустого массива []
, вектор символов, строка, представляет в виде строки вектор или массив ячеек из символьных векторов.
По умолчанию функция использует пустой массив []
возвратить данные о чувствительности по всему входу включает simdata
.
t
— Точки времени симуляцииВремя симуляции указывает для данных о чувствительности, возвращенных как m-by-1 числовой векторный массив или массив ячеек. m является количеством моментов времени.
r
— Данные о чувствительностиДанные о чувствительности, возвращенные как m-by-n-by-p массив или массив ячеек. m является количеством моментов времени, n является количеством чувствительности выходные параметры, и p является количеством входных параметров чувствительности.
outputFactors
выходной аргумент помечает второе измерение r
и inputFactors
помечает третью размерность r
. Например, r(:,i,j)
курс времени для чувствительности outputFactors{i}
состояния к входу
inputFactor{j}
.
Функция уже возвращает только данные о чувствительности в SimData
объект. Это не вычисляет чувствительность. Для получения дополнительной информации при подготовке и выполнении вычисления чувствительности, смотрите Локальный анализ чувствительности (LSA). Во время настройки можно также задать, как нормировать данные о чувствительности.
outputFactors
— Имена чувствительности выходные параметрыИмена чувствительности выходные параметры, возвращенные как n-by-1 массив ячеек. n является количеством чувствительности выходные параметры.
Выходными факторами являются состояния, для которых вы вычислили чувствительность. Другими словами, чувствительность выходные параметры является числителями. Для получения дополнительной информации смотрите Локальный анализ чувствительности (LSA).
inputFactors
— Имена входных параметров чувствительностиИмена входных параметров чувствительности, возвращенных как p-by-1 массив ячеек. p является количеством входных факторов.
Входными факторами являются состояния, относительно которых вы вычислили чувствительность. Другими словами, входные параметры sensivity являются знаменателями, как объяснено в Локальном анализе чувствительности (LSA).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.