主要内容

sbioparamestim

进行参数估计

sbioparamestim将在将来的版本中删除。使用sbiofit代替。

统计和机器学习工具箱™,优化工具箱™,和全局优化工具箱建议用于此功能。

语法

[k, result]= sbioparamestim(modelObj, tspan, xtarget, observed_array, estimated_array)
___) = sbioparamestim (___, observed_array, estimated_array, k0)
___) = sbioparamestim (___, observed_array, estimated_array, k0, method)

参数

k 估计参数值的向量。适用于所有优化方法“fminsearch”时,参数被约束为大于或等于0。
结果 结构,其中的字段提供关于优化进度的信息。
modelObj

SimBiology®模型对象。

tspan n-by-1向量,表示目标数据的时间跨度xtarget
xtarget

n——- - - - - -矩阵,n是多少次采样和模拟期间要匹配的状态数。行数xtarget必须等于行数tspan

observed_array

下列任何一项:

  • 中的对象数组(物种、隔间或非常量参数)modelObj,在估计过程中需要匹配其值

  • 单元数组的字符向量或字符串向量,包含对象的名称(物种,隔间,或非常量参数)modelObj,在估计过程中需要匹配其值

请注意

如果任何种类或参数存在重复名称,请通过指定对象数组或限定名称的单元格数组来确保没有歧义,例如compartmentName.speciesNamereactionName.parameterName.例如,对于一个叫做sp1那是在一个叫做comp2,限定名为comp2.sp1

的长度observed_array必须等于里面的列数xtargetsbioparamestim假设元素的顺序observed_array和里面的列的顺序一样吗xtarget

estimated_array

下列任何一项:

  • 中对象(隔间、种类或参数)的数组modelObj应该估计谁的初始值

  • 单元数组的字符向量或字符串向量,包含对象的名称(隔间,物种,或参数)modelObj应该估计谁的初始值

请注意

如果存在任何分隔、物种或参数的重复名称,请通过指定对象数组或限定名称的单元格数组来确保没有歧义,例如compartmentName.speciesNamereactionName.parameterName.例如,对于名为param1作用范围为一个反应命名reaction1,限定名为reaction1.param1

k0 包含要估计的区室、物种或参数的初始值的数字向量。的长度k0必须等于estimated_array.如果您没有指定k0,或指定一个空向量k0,然后sbioparamestim获取的隔间、种类或参数的初始值modelObj,或者,如果有主动变异,sbioparamestim使用活动变量中指定的任何初始值。关于变体的详细信息请参见不同的对象
方法

在估计过程中使用的优化算法,由以下任意一个指定:

  • 指定下列函数之一的字符向量(或字符串):

    • “fminsearch”

    • “lsqcurvefit”

    • “lsqnonlin”

    • “fmincon”

    • “patternsearch”

    • “patternsearch_hybrid”

    • “遗传算法”

    • “ga_hybrid”

    • “particleswarm”

    • “particleswarm_hybrid”

    有关如何sbioparamestim使用前面的函数,请参见功能描述表格

  • 双元素单元格数组,第一个元素是前面的函数之一,第二个元素是一个选项结构或对象。为下面列出的每个方法使用适当的选项结构或对象。

    方法 结构或对象
    “fminsearch” optimset

    “fmincon”

    “lsqcurvefit”

    “lsqnonlin”

    “particleswarm”

    “particleswarm_hybrid”

    “patternsearch”

    “patternsearch_hybrid”

    “遗传算法”

    “ga_hybrid”

    optimoptions

    提示

    使用双元素单元格数组为优化算法提供自己的选项结构。

    如果您有并行计算工具箱™,您可以通过以下方式启用并行计算以更快地进行数据拟合:

    1. 打开MATLAB®工人池:

      parpool

    2. 设置名称-值对参数“UseParallel”真正的在选项结构或对象中。

功能描述

函数 描述
fminsearch

sbioparamestim的关联的默认选项结构fminsearch,除了:

Display = 'off'
TolFun = 1e-6*(目标函数初值)

请注意

“fminsearch”是一种无约束优化方法,可能导致参数为负值。

lsqcurvefit

需要优化工具箱。

sbioparamestim的关联的默认选项结构lsqcurvefit,除了:

Display = 'off'
FiniteDifferenceStepSize =的值SolverOptions。RelativeTolerance属性关联的配置集modelObj的最小值eps ^ (1/3)
功能公差= 1e-6*(目标函数初值)
TypicalX = 1e-6*(待估部件初值)
lsqnonlin

需要优化工具箱。

sbioparamestim的关联的默认选项结构lsqnonlin,除了:

Display = 'off'
FiniteDifferenceStepSize =的值SolverOptions。RelativeTolerance属性关联的配置集modelObj的最小值eps ^ (1/3)
功能公差= 1e-6*(目标函数初值)
TypicalX = 1e-6*(待估部件初值)
fmincon

需要优化工具箱。

sbioparamestim的关联的默认选项结构fmincon,除了:

算法= '内点'
Display = 'off'
FiniteDifferenceStepSize =的值SolverOptions。RelativeTolerance属性关联的配置集modelObj的最小值eps ^ (1/3)
功能公差= 1e-6*(目标函数初值)
TypicalX = 1e-6*(待估部件初值)
patternsearch

需要全局优化工具箱

sbioparamestim的关联的默认选项结构patternsearch,除了:

Display = 'off'
功能公差= 1e-6*(目标函数初值)
MeshTolerance = 1.0e-3
AccelerateMesh = true
patternsearch_hybrid

需要全局优化工具箱

sbioparamestim调用patternsearch函数带有附加选项SearchMethod = {@searchlhs,10,15}.此选项添加了一个使用拉丁超立方采样的额外搜索步骤。

sbioparamestim函数使用关联的默认选项结构patternsearch,除了:

Display = 'off'
功能公差= 1e-6*(目标函数初值)
MeshTolerance = 1.0e-3
AccelerateMesh = true
SearchMethod = {@searchlhs,10,15}
遗传算法

需要全局优化工具箱

sbioparamestim的关联的默认选项结构遗传算法,除了:

Display = 'off'
功能公差= 1e-6*(目标函数初值)
PopulationSize = 10
代数= 30
MutationFcn = @ mutationadaptviable
ga_hybrid

需要全局优化工具箱

sbioparamestim调用遗传算法函数带有附加选项HybridFcn = {@fmincon, fminopt},在那里fminopt默认选项是否相同sbioparamestim用途fmincon.该选项会在遗传算法步骤结束后导致额外的基于梯度的最小化。

sbioparamestim函数使用关联的默认选项结构遗传算法,除了:

Display = 'off'
功能公差= 1e-6*(目标函数初值)
PopulationSize = 10
代数= 30
MutationFcn = @ mutationadaptviable
HybridFcn = {@fmincon,fmincon的名称/值对结构
particleswarm

需要全局优化工具箱

sbioparamestim使用以下默认选项particleswarm(全局优化工具箱),除了:
Display = 'off';FunctionTolerance = 1e-6*[初始目标函数值]SwarmSize = 10;MaxIter = 30;

particleswarm_hybrid

需要全局优化工具箱

sbioparamestim调用particleswarm函数带有附加选项HybridFcn = {@objFcn, options}.目标函数,objFcn,是其中一个受支持的函数:金宝apppatternsearchfminsearchfminunc,或fmincon选项是这些函数及其值的选项结构。

Display = 'off';FunctionTolerance = 1e-6*[初始目标函数值]SwarmSize = 10;MaxIter = 30;HybridFcn = {@fmincon, [Fmincon选项,如上所述]}

请注意

sbioparamestim不支持设置金宝app矢量化选项“上”在支持此选项的算法中。金宝app

描述

[k, result]= sbioparamestim(modelObjtspanxtargetobserved_arrayestimated_array的初始值,物种和参数modelObj中指定的SimBiology模型对象estimated_array,以匹配所给出的物种和非常数参数的值observed_array对于目标状态,xtarget,其时间变化由时间跨度给出tspan.如果已安装“优化工具箱”,sbioparamestim使用lsqnonlin(优化工具箱)函数作为参数估计的默认方法。如果未安装“优化工具箱”,sbioparamestim使用MATLAB函数fminsearch作为参数估计的默认方法。

___) = sbioparamestim (___observed_arrayestimated_arrayk0中列出的分隔区、种类和参数的初始值estimated_array

___) = sbioparamestim (___observed_arrayestimated_arrayk0方法指定要使用的优化方法。

例子

给定一个模型和一些目标数据,在不显式指定任何初始值的情况下估计其所有参数:

  1. 从项目中加载模型,gprotein_norules.sbproj.该项目包含两个模型,一个用于野生型应变(存储在变量中)m1)和一个突变株(存储在变量平方米).加载野生型菌株的G蛋白模型。

    sbioloadprojectgprotein_norulesm1
  2. 将目标数据存储在一个变量中:

    Gt = 10000;Tspan = [0 10 30 60 110 210 300 450 600]';Ga_frac = [0 0.35 0.4 0.36 0.39 0.33 0.24 0.17 0.2]';xtarget = Ga_frac * Gt;
  3. 将所有模型参数存储在一个数组中:

    P_array = sbioselect(m1,“类型”“参数”);
  4. 存储与目标匹配的物种:

    Ga = sbioselect(m1,“类型”“物种”“名字”“遗传算法”);在本例中,只选择了一个物种。%匹配多个目标物种数据%替换为所选物种数组。
  5. 参数估计:

    [k, result] = sbioparamestim(m1, tspan, xtarget, Ga, p_array)
    K = 0.0100 0.0000 0.0004 4.0000 0.0040 1.0000 0.0000 0.1100 result = fval: 1.4193e+06 residual: [9x1 double] exitflag: 2 iterations: 2 funccount: 27 algorithm: 'trust-region-reflective' message: [1x413 char]

中指定的估算参数p_array对于物种遗传算法使用不同的算法。

[k1,r1] = sbioparamestim(m1,tspan,xtarget,Ga,p_array,...{},“fmincon”);[k2,r2] = sbioparamestim(m1,tspan,xtarget,Ga,p_array,...{},“patternsearch”);[k3,r3] = sbioparamestim(m1,tspan,xtarget,Ga,p_array,...{},“遗传算法”);[k4,r4] = sbioparamestim(m1,tspan,xtarget,Ga,p_array,...{},“particleswarm”);

中指定的估算参数p_array对于物种遗传算法,并将默认优化选项更改为使用用户指定的选项。

Myopt1 = optimoptions(“显示”“通路”);[k1,r1] = sbioparamestim(m1,tspan,xtarget,...Ga、p_array {}, {“fmincon”, myopt1});Myopt2 = optimoptions(“MeshTolerance”, 1.0的军医);[k2,r2] = sbioparamestim(m1,tspan,xtarget,...Ga、p_array {}, {“patternsearch”, myopt2});Myopt3 = optimoptions(“PopulationSize”25岁的“代”10);[k3,r3] = sbioparamestim(m1,tspan,xtarget,...Ga、p_array {}, {“遗传算法”, myopt3});Myopt4 = optimoptions(“particleswarm”“显示”“通路”);[k4,r4] = sbioparamestim(m1,tspan,xtarget,Ga,p_array,{},{“particleswarm”, myopt4});

算法

sbioparamestim通过尽量减少模拟结果和拟合数据之间的差异来估计参数。最小化使用以下优化算法之一:fminsearch(从MATLAB);lsqcurvefitlsqnonlinfit,或fmincon(从优化工具箱);或patternsearch遗传算法(从全局优化工具箱).所有的优化方法都需要一个目标函数作为输入。该目标函数将参数值向量作为输入,并返回模拟和数据之间差异的估计值。当使用lsqcurvefitlsqnonlinfit作为优化方法,该目标函数返回残差向量。对于其他优化方法,目标函数返回残差的2范数。

参考文献

[1] Yi, T-M。,Kitano, H., and Simon, M.I. (2003) A quantitative characterization of the yeast heterotrimeric G protein cycle. PNASOne hundred., 10764 - 10769。

版本历史

在R2006a中引入

另请参阅

|