主要内容

使用sbiofit执行混合优化

本示例展示如何配置sbiofit首先运行全局求解器来执行混合优化particleswarm,然后是另一个最小化函数,fmincon

加载数据

加载样本数据以适应。数据存储为带有变量的表ID时间CentralConc,PeripheralConc.这一合成数据代表了三个人在输注剂量后,在中央和外周室的八个不同时间点测量的血浆浓度的时间过程。剂量为100毫克,剂量率为50毫克/小时。

负载(“data10_32R.mat”) gData = groupedData(data);gData.Properties.VariableUnits = {“小时”毫克/升的毫克/升的};sbiotrellis (gData“ID”“时间”, {“CentralConc”“PeripheralConc”},“标记”“+”...“线型”“没有”);

图中包含4个轴对象。标题ID为1的axis对象1包含2个类型为line的对象。这些对象表示CentralConc, PeripheralConc。标题ID为3的坐标轴对象2包含2个line类型的对象。标题ID为2的坐标轴对象3包含2个line类型的对象。坐标轴对象4为空。

创建模型

按注射剂量建立一个两室模型。

pkmd = PKModelDesign;pkc1 = add隔间(pkmd,“中央”);pkc1。DosingType =“注入”;pkc1。EliminationType =“linear-clearance”;pkc1。HasResponseVariable = true;pkc2 = add隔间(pkmd,“外围”);Model = construct(pkmd);Configset = getconfigset(模型);configset.CompileOptions.UnitConversion = true;剂量= sbiodose(“剂量”“TargetName”“Drug_Central”);剂量。StartTime = 0;剂量。金额= 100;剂量。费率= 50;剂量。AmountUnits =毫克的;剂量。时间Units =“小时”;剂量。RateUnits =“毫克/小时”;responseMap = {'Drug_Central = CentralConc''Drug_Peripheral = PeripheralConc'};

定义要估计的参数

使用estimatedInfo对象来定义估计的参数。

paramsToEstimate = {“日志(中央)”的日志(外围)“12”“Cl_Central”};estimatedParam = estimatedInfo(paramsToEstimate,“InitialValue”,[1 1 1 1 1],...“界限”10 [0]);

定义混合优化的选项

定义全局求解器和混合求解器的选项。因为参数是有界的,所以要确保使用兼容的混合函数进行有约束的优化,例如fmincon.使用optimset定义的选项fminsearch.使用optimoptions定义的选项fminuncpatternsearch,fmincon

rng (“默认”);globalMethod =“particleswarm”;options = optimoptions(globalMethod);hybridMethod =“fmincon”;hybridopts = optimoptions(混合方法,“显示”“没有”);选项= optimoptions(选项,“HybridFcn”, {hybridMethod, hybridopts});

合适的数据

估计模型参数。打开ProgressPlot查看现场对装配状态的反馈。第一行图是全局求解器的质量度量图。第二行图是用于混合函数的。详细信息请参见情节进展

unpooledFit = sbiofit(模型,gData,responseMap,estimatedParam,剂量,globalMethod,...选项,“池”假的,“ProgressPlot”,真正的);

{

阴谋的结果

情节(unpooledFit);

图中包含4个轴对象。坐标轴对象1为空。带有标题3的坐标轴对象2包含4个line类型的对象。带有标题2的坐标轴对象3包含4个line类型的对象。标题为1的坐标轴对象4包含4个line类型的对象。

另请参阅

相关的话题