Выполните Гибридную Оптимизацию Используя sbiofit

В этом примере показано, как сконфигурировать sbiofit выполнять гибридную оптимизацию первым выполнением глобального решателя particleswarm, сопровождаемый другой функцией минимизации, fmincon.

Загрузка данных

Загрузите выборочные данные, чтобы соответствовать. Данные хранятся как таблица с переменными ID, Время, CentralConc и PeripheralConc. Эти синтетические данные представляют ход времени плазменных концентраций, измеренных в восьми различных моментах времени и для центральных и для периферийных отсеков после капельного внутривенного введения для трех индивидуумов. Суммарная доза составляет 100 миллиграммов, и мощность дозы составляет 50 миллиграммов/час.

clear all
load('data10_32R.mat')
gData = groupedData(data);
gData.Properties.VariableUnits = {'','hour','milligram/liter','milligram/liter'};
sbiotrellis(gData,'ID','Time',{'CentralConc','PeripheralConc'},'Marker','+',...
            'LineStyle','none');

Создайте модель

Создайте модель 2D отсека с капельным внутривенным введением.

pkmd                 = PKModelDesign;
pkc1                 = addCompartment(pkmd,'Central');
pkc1.DosingType      = 'Infusion';
pkc1.EliminationType = 'linear-clearance';
pkc1.HasResponseVariable = true;
pkc2                 = addCompartment(pkmd,'Peripheral');
model                = construct(pkmd);
configset            = getconfigset(model);
configset.CompileOptions.UnitConversion = true;
dose             = sbiodose('dose','TargetName','Drug_Central');
dose.StartTime   = 0;
dose.Amount      = 100;
dose.Rate        = 50;
dose.AmountUnits = 'milligram';
dose.TimeUnits   = 'hour';
dose.RateUnits   = 'milligram/hour';
responseMap = {'Drug_Central = CentralConc','Drug_Peripheral = PeripheralConc'};

Задайте параметры, чтобы оценить

Используйте estimatedInfo объект задать предполагаемые параметры.

paramsToEstimate   = {'log(Central)','log(Peripheral)','Q12','Cl_Central'};
estimatedParam     = estimatedInfo(paramsToEstimate,'InitialValue',[1 1 1 1],...
                                   'Bounds',[0 10]);

Задайте опции для гибридной оптимизации

Задайте опции для глобального решателя и гибридного решателя. Поскольку параметры ограничены, убедитесь, что вы используете совместимую гибридную функцию для ограниченной оптимизации, такой как fmincon. Используйте optimset задавать опции для fminsearch. Используйте optimoptions задавать опции для fminunc, patternsearch, и fmincon.

rng('default');
globalMethod = 'particleswarm';
options = optimoptions(globalMethod);
hybridMethod = 'fmincon';
hybridopts = optimoptions(hybridMethod,'Display','none');
options = optimoptions(options,'HybridFcn',{hybridMethod,hybridopts});

Подходящие данные

Оцените параметры модели. Включите ProgressPlot видеть живую обратную связь на состоянии подбора кривой. Первая строка графиков является качественными графиками меры для глобального решателя. Вторые графики строки для гибридной функции. Для получения дополнительной информации см. График Прогресса.

unpooledFit =  sbiofit(model,gData,responseMap,estimatedParam,dose,globalMethod,...
                       options,'Pooled',false,'ProgressPlot',true);

Постройте результаты

plot(unpooledFit);

Смотрите также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте