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. The axes 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. The axes 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. The axes 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. The axes contains 2 objects of type bar. These objects represent Reaction1.c1, Reaction2.c2.

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

свернуть все

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

Введенный в R2008b