Получите 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);
![Figure contains an axes object. The axes object with title States versus Time contains 6 objects of type line. These objects represent y1, y2, d[y1]/d[Reaction1.c1], d[y2]/d[Reaction1.c1], d[y1]/d[Reaction2.c2], d[y2]/d[Reaction2.c2].](../../examples/simbio/win64/CalculateSensitivitiesUsingSimFunctionSensitivityObjectExample_03.png)
Можно также построить матрицу чувствительности использование интеграла времени для расчетной чувствительности 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.