getsensmatrix

Получите 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 объект.

Загрузите демонстрационный проект.

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).

sensMatrix2=[y1c1y2c1y1c2y2c2]

Установите время остановки на 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');

Figure contains an axes object. The axes object with title Sensitivities of species y1 and y2 with respect to parameter c1 contains 2 objects of type line. These objects represent y1, y2.

Постройте чувствительность разновидностей 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');

Figure contains an axes object. The axes object with title Sensitivities of species y1 and y2 with respect to parameter c2 contains 2 objects of type line. These objects represent y1, y2.

В качестве альтернативы можно использовать 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].

Можно также построить матрицу чувствительности использование интеграла времени для расчетной чувствительности 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');

Figure contains an axes object. The axes object contains 2 objects of type bar. These objects represent Reaction1.c1, Reaction2.c2.

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

свернуть все

Данные моделирования в виде SimData объект или массив SimData объекты. Если simdata массив объектов, выходные параметры являются массивами ячеек, в которых каждая ячейка содержит данные для соответствующего объекта в SimData массив.

Имена чувствительности выходные параметры в виде пустого массива [], вектор символов, строка, представляет в виде строки вектор или массив ячеек из символьных векторов.

По умолчанию функция использует пустой массив [] возвратить данные о чувствительности для всего выхода включает simdata.

Имена чувствительности вводят в виде пустого массива [], вектор символов, строка, представляет в виде строки вектор или массив ячеек из символьных векторов.

По умолчанию функция использует пустой массив [] возвратить данные о чувствительности по всему входу включает simdata.

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

свернуть все

Время симуляции указывает для данных о чувствительности, возвращенных как m-by-1 числовой векторный массив или массив ячеек. m является количеством моментов времени.

Данные о чувствительности, возвращенные как m-by-n-by-p массив или массив ячеек. m является количеством моментов времени, n является количеством чувствительности выходные параметры, и p является количеством входных параметров чувствительности.

outputFactors выходной аргумент помечает второе измерение r и inputFactors помечает третью размерность r. Например, r(:,i,j) курс времени для чувствительности outputFactors{i} состояния к входу inputFactor{j}.

Функция уже возвращает только данные о чувствительности в SimData объект. Это не вычисляет чувствительность. Для получения дополнительной информации при подготовке и выполнении вычисления чувствительности, смотрите Локальный анализ чувствительности (LSA). Во время настройки можно также задать, как нормировать данные о чувствительности.

Имена чувствительности выходные параметры, возвращенные как n-by-1 массив ячеек. n является количеством чувствительности выходные параметры.

Выходными факторами являются состояния, для которых вы вычислили чувствительность. Другими словами, чувствительность выходные параметры является числителями. Для получения дополнительной информации смотрите Локальный анализ чувствительности (LSA).

Имена входных параметров чувствительности, возвращенных как p-by-1 массив ячеек. p является количеством входных факторов.

Входными факторами являются состояния, относительно которых вы вычислили чувствительность. Другими словами, входные параметры sensivity являются знаменателями, как объяснено в Локальном анализе чувствительности (LSA).

Представленный в R2008b