Получите 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-на-1 числовой вектор или массив ячеек. m - количество временных точек.
r
- Данные о чувствительностиДанные о чувствительности, возвращенные как m -by- n -by- p массив ячеек. m - количество временных точек, n - количество выходов чувствительности, а p - количество входов чувствительности.
The outputFactors
выходной аргумент помечает второе измерение r
и inputFactors
подписывает третью размерность r
. Для примера, r(:,i,j)
- временной курс чувствительности состояния outputFactors{i}
в вход inputFactor{j}
.
Функция возвращает только данные чувствительности уже в SimData
объект. Он не вычисляет чувствительности. Для получения дополнительной информации о настройке и выполнении вычисления чувствительности смотрите Локальный анализ чувствительности (LSA). Во время настройки можно также задать, как нормализовать данные о чувствительности.
outputFactors
- Имена выходов чувствительностиИмена выходов чувствительности, возвращенные как n-на-1 массив ячеек. n - количество выходов чувствительности.
Выходными факторами являются состояния, для которых вы вычисляли чувствительности. Другими словами, выходы чувствительности являются числителями. Для получения дополнительной информации смотрите Анализ локальной чувствительности (LSA).
inputFactors
- Имена входов чувствительностиИмена входов чувствительности, возвращенные как p-на-1 массив ячеек. p - количество входа факторов.
Входными факторами являются состояния, относительно которых вы вычисляли чувствительности. Другими словами, входы чувствительности являются знаменателями, как объяснено в Локальном Анализе Чувствительности (LSA).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.