主要内容gydF4y2Ba

fseminfgydF4y2Ba

查找最少的半无限受限的多变量非线性功能gydF4y2Ba

方程gydF4y2Ba

查找最低问题所指定的问题gydF4y2Ba

闵gydF4y2Ba xgydF4y2Ba fgydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba 这样gydF4y2Ba {gydF4y2Ba 一个gydF4y2Ba ⋅gydF4y2Ba xgydF4y2Ba ≤.gydF4y2Ba bgydF4y2Ba ,gydF4y2Ba 一个gydF4y2Ba egydF4y2Ba 问gydF4y2Ba ⋅gydF4y2Ba xgydF4y2Ba =gydF4y2Ba bgydF4y2Ba egydF4y2Ba 问gydF4y2Ba ,gydF4y2Ba lgydF4y2Ba bgydF4y2Ba ≤.gydF4y2Ba xgydF4y2Ba ≤.gydF4y2Ba ugydF4y2Ba bgydF4y2Ba ,gydF4y2Ba cgydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba ≤.gydF4y2Ba 0gydF4y2Ba ,gydF4y2Ba cgydF4y2Ba egydF4y2Ba 问gydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba =gydF4y2Ba 0gydF4y2Ba ,gydF4y2Ba KgydF4y2Ba 我gydF4y2Ba (gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba wgydF4y2Ba 我gydF4y2Ba )gydF4y2Ba ≤.gydF4y2Ba 0gydF4y2Ba ,gydF4y2Ba 1gydF4y2Ba ≤.gydF4y2Ba 我gydF4y2Ba ≤.gydF4y2Ba ngydF4y2Ba .gydF4y2Ba

bgydF4y2Ba和gydF4y2Ba说真的gydF4y2Ba是载体,gydF4y2Ba一个gydF4y2Ba和gydF4y2BaAeqgydF4y2Ba是矩阵,gydF4y2BacgydF4y2Ba(gydF4y2BaxgydF4y2Ba),gydF4y2Ba量表信gydF4y2Ba(gydF4y2BaxgydF4y2Ba),gydF4y2BaKgydF4y2Ba我gydF4y2Ba(gydF4y2Bax, wgydF4y2Ba我gydF4y2Ba)返回载体的功能,以及gydF4y2BafgydF4y2Ba(gydF4y2BaxgydF4y2Ba)是返回标量的函数。gydF4y2BafgydF4y2Ba(gydF4y2BaxgydF4y2Ba),gydF4y2BacgydF4y2Ba(gydF4y2BaxgydF4y2Ba),gydF4y2Ba量表信gydF4y2Ba(gydF4y2BaxgydF4y2Ba)可以是非线性函数。vectors(或矩阵)gydF4y2BaKgydF4y2Ba我gydF4y2Ba(gydF4y2BaxgydF4y2Ba,gydF4y2BawgydF4y2Ba我gydF4y2Ba)≤0.gydF4y2Ba是两者的连续功能gydF4y2BaxgydF4y2Ba还有一组额外的变量gydF4y2BawgydF4y2Ba1gydF4y2Ba,gydF4y2BawgydF4y2Ba2gydF4y2Ba,......,gydF4y2BawgydF4y2BangydF4y2Ba.变量gydF4y2BawgydF4y2Ba1gydF4y2Ba,gydF4y2BawgydF4y2Ba2gydF4y2Ba,......,gydF4y2BawgydF4y2BangydF4y2Ba是最多长度的载体。gydF4y2Ba

xgydF4y2Ba,gydF4y2Ba磅gydF4y2Ba, 和gydF4y2BaUB.gydF4y2Ba可以作为向量或矩阵传递;看gydF4y2Ba矩阵论据gydF4y2Ba.gydF4y2Ba

语法gydF4y2Ba

x = fseminf(有趣,x0,ntheta,seminfcon)gydF4y2Ba
x = fseminf(有趣,x0, ntheta seminfcon, A, b)gydF4y2Ba
x = fseminf(有趣,x0, ntheta seminfcon, A, b, Aeq, beq)gydF4y2Ba
x = fseminf(fun,x0,ntheta,seminfcon,a,b,aeq,beq,lb,Ub)gydF4y2Ba
x = fseminf(有趣,x0, ntheta seminfcon, A, b, Aeq,说真的,磅,乌兰巴托,选项)gydF4y2Ba
x = fseminf(问题)gydF4y2Ba
[x,fval] = fseminf(...)gydF4y2Ba
[x, fval exitflag] = fseminf(…)gydF4y2Ba
[x, fval exitflag、输出]= fseminf(…)gydF4y2Ba
[x,fval,出口,输出,lambda] = fseminf(...)gydF4y2Ba

描述gydF4y2Ba

fseminfgydF4y2Ba从初始估计开始,发现最少有几个变量的半无限限制标量函数。目的是最小化gydF4y2BafgydF4y2Ba(gydF4y2BaxgydF4y2Ba)所以限制适用于所有可能的值gydF4y2BawgydF4y2Ba我gydF4y2Ba∈gydF4y2BaℜgydF4y2Ba1gydF4y2Ba(或gydF4y2BawgydF4y2Ba我gydF4y2Ba∈gydF4y2BaℜgydF4y2Ba2gydF4y2Ba).因为不可能计算所有可能的值gydF4y2BaKgydF4y2Ba我gydF4y2Ba(gydF4y2Bax, wgydF4y2Ba我gydF4y2Ba)gydF4y2Ba,必须选择一个地区gydF4y2BawgydF4y2Ba我gydF4y2Ba在其上计算适当采样的值集。gydF4y2Ba

请注意gydF4y2Ba

通过额外的参数gydF4y2Ba如有必要,如何将额外参数传递给客观函数和非线性约束函数。gydF4y2Ba

x = fseminf(有趣,x0,ntheta,seminfcon)gydF4y2Ba开始于gydF4y2BaX0.gydF4y2Ba并找到最少的功能gydF4y2Ba乐趣gydF4y2Ba受到gydF4y2BanthetagydF4y2Ba半无限约束定义gydF4y2BaseminfcongydF4y2Ba.gydF4y2Ba

x = fseminf(有趣,x0, ntheta seminfcon, A, b)gydF4y2Ba还试图满足线性不平等gydF4y2Baa *x≤bgydF4y2Ba.gydF4y2Ba

x = fseminf(有趣,x0, ntheta seminfcon, A, b, Aeq, beq)gydF4y2Ba最小化线性等分的影响gydF4y2Baaeq * x = beqgydF4y2Ba也是。放gydF4y2Baa = []gydF4y2Ba和gydF4y2Bab = []gydF4y2Ba如果没有不等式。gydF4y2Ba

x = fseminf(fun,x0,ntheta,seminfcon,a,b,aeq,beq,lb,Ub)gydF4y2Ba中的设计变量定义一组上下限gydF4y2BaxgydF4y2Ba,使解决方案始终在范围内gydF4y2Ba磅gydF4y2Ba≤.gydF4y2BaxgydF4y2Ba≤.gydF4y2BaUB.gydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

看到gydF4y2Ba迭代可以违反限制gydF4y2Ba.gydF4y2Ba

x = fseminf(有趣,x0, ntheta seminfcon, A, b, Aeq,说真的,磅,乌兰巴托,选项)gydF4y2Ba使用指定的优化选项最小化gydF4y2Ba选项gydF4y2Ba.使用gydF4y2BaoptimoptionsgydF4y2Ba设置这些选项。gydF4y2Ba

x = fseminf(问题)gydF4y2Ba求最小值gydF4y2Ba问题gydF4y2Ba, 在哪里gydF4y2Ba问题gydF4y2Ba结构描述在gydF4y2Ba输入参数gydF4y2Ba.gydF4y2Ba

[x,fval] = fseminf(...)gydF4y2Ba返回目标函数的值gydF4y2Ba乐趣gydF4y2Ba在解决方案gydF4y2BaxgydF4y2Ba.gydF4y2Ba

[x, fval exitflag] = fseminf(…)gydF4y2Ba返回一个值gydF4y2BaexitflaggydF4y2Ba描述退出条件。gydF4y2Ba

[x, fval exitflag、输出]= fseminf(…)gydF4y2Ba返回一个结构gydF4y2Ba输出gydF4y2Ba其中包含有关优化的信息。gydF4y2Ba

[x,fval,出口,输出,lambda] = fseminf(...)gydF4y2Ba返回一个结构gydF4y2Balambda.gydF4y2Ba其字段在解决方案中包含Lagrange乘法器gydF4y2BaxgydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

如果问题的指定输入边界不一致,则输出gydF4y2BaxgydF4y2Ba是gydF4y2BaX0.gydF4y2Ba和输出gydF4y2BafvalgydF4y2Ba是gydF4y2Ba[]gydF4y2Ba.gydF4y2Ba

输入参数gydF4y2Ba

函数输入参数gydF4y2Ba包含传入的参数的一般描述gydF4y2BafseminfgydF4y2Ba.本节提供特定于功能的详细信息gydF4y2Ba乐趣gydF4y2Ba,gydF4y2BanthetagydF4y2Ba,gydF4y2Ba选项gydF4y2Ba,gydF4y2BaseminfcongydF4y2Ba, 和gydF4y2Ba问题gydF4y2Ba:gydF4y2Ba

乐趣gydF4y2Ba

要最小化的函数。gydF4y2Ba乐趣gydF4y2Ba是一个接受向量的函数gydF4y2BaxgydF4y2Ba并返回标量gydF4y2BafgydF4y2Ba,目标函数的取值为gydF4y2BaxgydF4y2Ba.这个函数gydF4y2Ba乐趣gydF4y2Ba可以指定为文件的函数句柄gydF4y2Ba

x = fseminf (@myfun x0、ntheta seminfcon)gydF4y2Ba

在哪里gydF4y2Bamyfun.gydF4y2BaMATLAB是一种gydF4y2Ba®gydF4y2Ba功能如gydF4y2Ba

函数f = myfun(x)f = ...%compute函数值xgydF4y2Ba

乐趣gydF4y2Ba也可以是匿名功能的函数句柄。gydF4y2Ba

fun = @(x)sin(x''* x);gydF4y2Ba

如果是梯度gydF4y2Ba乐趣gydF4y2Ba也可以计算gydF4y2Ba和gydF4y2Ba的gydF4y2BaSpecifyObjectiveGradientgydF4y2Ba选项是gydF4y2Ba真的gydF4y2Ba,如图所示gydF4y2Ba

选择= optimoptions(‘fseminf’,‘SpecifyObjectiveGradient’,真的)gydF4y2Ba

然后是这个功能gydF4y2Ba乐趣gydF4y2Ba必须返回,在第二个输出参数中,梯度值gydF4y2BaggydF4y2Ba,矢量,在gydF4y2BaxgydF4y2Ba.gydF4y2Ba

nthetagydF4y2Ba

半无限约束的个数。gydF4y2Ba

选项gydF4y2Ba

选项gydF4y2Ba提供特定于功能的详细信息gydF4y2Ba选项gydF4y2Ba价值观。gydF4y2Ba

seminfcongydF4y2Ba

计算非线性不等式约束的向量的函数,gydF4y2BacgydF4y2Ba,非线性平等约束的矢量,gydF4y2Ba量表信gydF4y2Ba, 和gydF4y2BanthetagydF4y2Ba半无限约束(矢量或矩阵)gydF4y2BaK1gydF4y2Ba,gydF4y2BaK2gydF4y2Ba,gydF4y2Ba......gydF4y2Ba,gydF4y2Bakntheta.gydF4y2Ba在一个区间内计算gydF4y2Ba年代gydF4y2Ba在点gydF4y2BaxgydF4y2Ba.这个函数gydF4y2BaseminfcongydF4y2Ba可以指定为函数句柄。gydF4y2Ba

x = fseminf(@ myfun,x0,ntheta,@ myinfcon)gydF4y2Ba

在哪里gydF4y2Bamyinfcon.gydF4y2Ba是MATLAB函数之类的gydF4y2Ba

功能[c,ceq,k1,k2,...,kntheta,s] = myinfcon(x,s)%初始采样间隔如果是isnan(s(1,1)),s = ...%s有ntheta行和2列结束W1 = ...%计算样本集W2 = ...%计算样本集... WNTHETA = ...%计算样本SET K1 = ...%第1个半无限约束x和w k2=......% 2nd semi-infinite constraint at x and w ... Kntheta = ...% Last semi-infinite constraint at x and w c = ... % Compute nonlinear inequalities at x ceq = ... % Compute the nonlinear equalities at x

年代gydF4y2Ba是推荐的采样间隔,可能或可能不使用。返回gydF4y2Ba[]gydF4y2Ba为gydF4y2BacgydF4y2Ba和gydF4y2Ba量表信gydF4y2Ba如果没有存在这样的约束。gydF4y2Ba

载体或矩阵gydF4y2BaK1gydF4y2Ba,gydF4y2BaK2gydF4y2Ba,gydF4y2Ba......gydF4y2Ba,gydF4y2Bakntheta.gydF4y2Ba包含对独立变量的采样值的SEMI-Infinite约束评估gydF4y2BaW1.gydF4y2Ba,gydF4y2BaW2.gydF4y2Ba,gydF4y2Ba......gydF4y2Ba,gydF4y2BaWntheta.gydF4y2Ba,分别。两列矩阵,gydF4y2Ba年代gydF4y2Ba,包含值的推荐采样间隔gydF4y2BaW1.gydF4y2Ba,gydF4y2BaW2.gydF4y2Ba,gydF4y2Ba......gydF4y2Ba,gydF4y2BaWntheta.gydF4y2Ba,用于评估gydF4y2BaK1gydF4y2Ba,gydF4y2BaK2gydF4y2Ba,gydF4y2Ba......gydF4y2Ba,gydF4y2Bakntheta.gydF4y2Ba.这gydF4y2Ba我gydF4y2Bath排gydF4y2Ba年代gydF4y2Ba包含推荐的评估采样间隔gydF4y2BaKgydF4y2Ba我gydF4y2Ba.当gydF4y2BaKgydF4y2Ba我gydF4y2Ba是矢量,仅限使用gydF4y2BaS(I,1)gydF4y2Ba(第二列可以是所有零)。当gydF4y2BaKgydF4y2Ba我gydF4y2Ba是一个矩阵,gydF4y2Bas(我,2)gydF4y2Ba用于排行的采样gydF4y2BaKgydF4y2Ba我gydF4y2Ba,gydF4y2BaS(I,1)gydF4y2Ba的列的采样间隔gydF4y2BaKgydF4y2Ba我gydF4y2Ba(看gydF4y2Ba二维半无限约束gydF4y2Ba).在第一次迭代gydF4y2Ba年代gydF4y2Ba是gydF4y2Ba南gydF4y2Ba,因此必须由某些初始采样间隔确定gydF4y2BaseminfcongydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

因为最优化工具箱™函数只接受类型的输入gydF4y2Ba双倍的gydF4y2Ba,用户提供的目标和非线性约束函数必须返回类型的输出gydF4y2Ba双倍的gydF4y2Ba.gydF4y2Ba

通过额外的参数gydF4y2Ba解释如何参数化gydF4y2BaseminfcongydF4y2Ba,如有必要。gydF4y2Ba创建采样点的示例gydF4y2Ba包含一个一维和二维采样点的例子。gydF4y2Ba

问题gydF4y2Ba

客观的gydF4y2Ba

目标职能gydF4y2Ba

X0.gydF4y2Ba

初始点gydF4y2BaxgydF4y2Ba
nthetagydF4y2Ba 半无限约束的数量gydF4y2Ba
seminfcongydF4y2Ba 半无限约束函数gydF4y2Ba

Aineq.gydF4y2Ba

线性不等式约束的矩阵gydF4y2Ba

Bineq.gydF4y2Ba

线性不等式约束的矢量gydF4y2Ba

AeqgydF4y2Ba

线性平等约束的矩阵gydF4y2Ba

说真的gydF4y2Ba

线性等式约束的向量gydF4y2Ba
磅gydF4y2Ba 下界向量gydF4y2Ba
UB.gydF4y2Ba 上限矢量gydF4y2Ba

求解器gydF4y2Ba

'fseminf'gydF4y2Ba

选项gydF4y2Ba

选择的选项gydF4y2BaoptimoptionsgydF4y2Ba

输出参数gydF4y2Ba

函数输入参数gydF4y2Ba包含返回的参数的一般描述gydF4y2BafseminfgydF4y2Ba.本节提供特定于功能的详细信息gydF4y2BaexitflaggydF4y2Ba,gydF4y2Balambda.gydF4y2Ba, 和gydF4y2Ba输出gydF4y2Ba:gydF4y2Ba

exitflaggydF4y2Ba

整数标识算法终止的原因。以下列出了值的值gydF4y2BaexitflaggydF4y2Ba并且算法终止的相应原因。gydF4y2Ba

1gydF4y2Ba

功能融合到解决方案gydF4y2BaxgydF4y2Ba.gydF4y2Ba

4gydF4y2Ba

搜索方向的幅度小于指定的公差和约束违规小于gydF4y2Ba选项.ConstraintTolerance.gydF4y2Ba.gydF4y2Ba

5gydF4y2Ba

方向衍生物的幅度小于指定的公差和约束违规小于gydF4y2Ba选项.ConstraintTolerance.gydF4y2Ba.gydF4y2Ba

0gydF4y2Ba

超过迭代次数gydF4y2Baoptions.maxIterations.gydF4y2Ba或超过函数求值次数gydF4y2Baoptions.maxfunctionevaluations.gydF4y2Ba.gydF4y2Ba

-1gydF4y2Ba

算法由输出函数终止。gydF4y2Ba

-2gydF4y2Ba

没有发现可行的点。gydF4y2Ba

lambda.gydF4y2Ba

在解决方案中包含拉格朗日乘数的结构gydF4y2BaxgydF4y2Ba(由约束类型分开)。结构的域是gydF4y2Ba

较低的gydF4y2Ba

下限gydF4y2Ba磅gydF4y2Ba

上gydF4y2Ba

上限gydF4y2BaUB.gydF4y2Ba

ineqlin.gydF4y2Ba

线性不等式gydF4y2Ba

eqlin.gydF4y2Ba

线性平等gydF4y2Ba

Ineqnonlin.gydF4y2Ba

非线性不等式gydF4y2Ba

eqnonlin.gydF4y2Ba

非线性等分gydF4y2Ba

输出gydF4y2Ba

结构,包含关于优化的信息。结构的域是gydF4y2Ba

迭代gydF4y2Ba

迭代次数gydF4y2Ba

funcCountgydF4y2Ba

函数计算次数gydF4y2Ba

lssteplenthtgydF4y2Ba

线路搜索步骤的大小相对于搜索方向gydF4y2Ba

一步的大小gydF4y2Ba

最终流离失所gydF4y2BaxgydF4y2Ba

算法gydF4y2Ba

优化算法使用gydF4y2Ba

CONSTRVIOMATION.gydF4y2Ba

最大约束函数gydF4y2Ba

firstorderoptgydF4y2Ba

一阶最优性的度量gydF4y2Ba

消息gydF4y2Ba

退出消息gydF4y2Ba

选项gydF4y2Ba

使用优化选项gydF4y2BafseminfgydF4y2Ba.使用gydF4y2BaoptimoptionsgydF4y2Ba设置或更改gydF4y2Ba选项gydF4y2Ba.看到gydF4y2Ba优化选项参考gydF4y2Ba的详细信息。gydF4y2Ba

控件中缺少一些选项gydF4y2BaoptimoptionsgydF4y2Ba展示。这些选项在下表中显示在斜体中。有关详细信息,请参阅gydF4y2Ba视图选项gydF4y2Ba.gydF4y2Ba

CheckGradientsgydF4y2Ba

将用户提供的衍生物(客观或约束的梯度)进行有限差分衍生物。选择是gydF4y2Ba真的gydF4y2Ba或默认值gydF4y2Ba假gydF4y2Ba.gydF4y2Ba

为gydF4y2Ba优化集gydF4y2Ba, 名字是gydF4y2Ba衍生师傅gydF4y2Ba这些值是gydF4y2Ba“上”gydF4y2Ba或者gydF4y2Ba'离开'gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

约束特许gydF4y2Ba

判断限制违规的终止耐受,一个正标量。默认值是gydF4y2Ba1E-6gydF4y2Ba.看到gydF4y2Ba公差和停止标准gydF4y2Ba.gydF4y2Ba

为gydF4y2Ba优化集gydF4y2Ba, 名字是gydF4y2Batolcon.gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

诊断gydF4y2Ba

显示有关要最小化或解决的函数的诊断信息。选择是gydF4y2Ba“上”gydF4y2Ba或默认值gydF4y2Ba'离开'gydF4y2Ba.gydF4y2Ba

diffmaxchange.gydF4y2Ba

有限差分梯度(正标量)的变量最大变化。默认值是gydF4y2BaINF.gydF4y2Ba.gydF4y2Ba

差异gydF4y2Ba

有限差分梯度(正标量)的变量最小变化。默认值是gydF4y2Ba0gydF4y2Ba.gydF4y2Ba

展示gydF4y2Ba

显示水平(见gydF4y2Ba迭代显示gydF4y2Ba):gydF4y2Ba

  • '离开'gydF4y2Ba或者gydF4y2Ba“没有”gydF4y2Ba显示无输出。gydF4y2Ba

  • “通路”gydF4y2Ba在每次迭代时显示输出,并提供默认退出消息。gydF4y2Ba

  • “iter-detailed”gydF4y2Ba在每次迭代时显示输出,并提供技术退出消息。gydF4y2Ba

  • '通知'gydF4y2Ba仅在函数不收敛时显示输出,并给出默认退出消息。gydF4y2Ba

  • '通知 - 详细'gydF4y2Ba仅在函数不收敛时显示输出,并给出技术退出消息。gydF4y2Ba

  • '最终的'gydF4y2Ba(默认)仅显示最终输出,并提供默认退出消息。gydF4y2Ba

  • '最终详细'gydF4y2Ba仅显示最终输出,并提供技术退出消息。gydF4y2Ba

finitedifferencestepsize.gydF4y2Ba

用于有限差异的标量或矢量步长因子。当你设置时gydF4y2Bafinitedifferencestepsize.gydF4y2Ba向矢量gydF4y2BavgydF4y2Ba,前向的有限差异gydF4y2Ba三角洲gydF4y2Ba是gydF4y2Ba

delta = v。* sign'(x)。* max(abs(x),典型值);gydF4y2Ba

在哪里gydF4y2Ba符号“(x) =符号(x)gydF4y2Ba除了gydF4y2Ba标志'(0)= 1gydF4y2Ba.中央有限差异是gydF4y2Ba

delta = v。* max(abs(x),典型值);gydF4y2Ba

标量子gydF4y2Bafinitedifferencestepsize.gydF4y2Ba扩展到向量。默认值是gydF4y2Basqrt (eps)gydF4y2Ba用于前进有限差异,和gydF4y2Baeps ^ (1/3)gydF4y2Ba对于中心有限差分。gydF4y2Ba

为gydF4y2Ba优化集gydF4y2Ba, 名字是gydF4y2BaFinDiffRelStepgydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

finitedifferenceType.gydF4y2Ba

用于估计梯度的有限差分是gydF4y2Ba“前进”gydF4y2Ba(默认),或gydF4y2Ba'中央'gydF4y2Ba(以中心)。gydF4y2Ba'中央'gydF4y2Ba需要两倍的函数评估,但应该更准确。gydF4y2Ba

当估计两种类型的有限差异时,算法小心遵循界限。因此,例如,它可以追溯,而不是向前的差异,以避免在外部界限的点处评估。gydF4y2Ba

为gydF4y2Ba优化集gydF4y2Ba, 名字是gydF4y2Bafindifftype.gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

FunctionTolerancegydF4y2Ba

函数值终止差值,正标量。默认值是gydF4y2Ba1E-4gydF4y2Ba.看到gydF4y2Ba公差和停止标准gydF4y2Ba.gydF4y2Ba

为gydF4y2Ba优化集gydF4y2Ba, 名字是gydF4y2Ba塔尔芬gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

funvalcheck.gydF4y2Ba

检查目标函数和约束值是否有效。gydF4y2Ba“上”gydF4y2Ba当目标函数或约束返回值时显示错误gydF4y2Ba复杂的gydF4y2Ba,gydF4y2BaINF.gydF4y2Ba, 或者gydF4y2Ba南gydF4y2Ba.默认值gydF4y2Ba'离开'gydF4y2Ba没有错误。gydF4y2Ba

MaxFunctionEvaluationsgydF4y2Ba

允许的函数求值的最大数目,一个正整数。默认值是gydF4y2Ba100 * numberofvariables.gydF4y2Ba.看到gydF4y2Ba公差和停止标准gydF4y2Ba和gydF4y2Ba迭代和功能计数gydF4y2Ba.gydF4y2Ba

为gydF4y2Ba优化集gydF4y2Ba, 名字是gydF4y2BaMaxfunevals.gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

MaxIterationsgydF4y2Ba

允许的最大迭代次数,一个正整数。默认值是gydF4y2Ba400gydF4y2Ba.看到gydF4y2Ba公差和停止标准gydF4y2Ba和gydF4y2Ba迭代和功能计数gydF4y2Ba.gydF4y2Ba

为gydF4y2Ba优化集gydF4y2Ba, 名字是gydF4y2Bamaxiter.gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

MaxSQPItergydF4y2Ba

允许最大SQP迭代次数,一个正整数。默认值是gydF4y2Ba10 * max(Numberofvariables,numberofinequalities + numberofbounds)gydF4y2Ba.gydF4y2Ba

最优法gydF4y2Ba

终止耐受一阶最优性(正标量)。默认值是gydF4y2Ba1E-6gydF4y2Ba.看到gydF4y2Ba一阶最优测量gydF4y2Ba.gydF4y2Ba

为gydF4y2Ba优化集gydF4y2Ba, 名字是gydF4y2Ba塔尔芬gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

outputfcn.gydF4y2Ba

指定优化函数在每次迭代时调用的一个或多个用户定义函数。传递一个函数句柄或函数句柄的单元格数组。默认为none (gydF4y2Ba[]gydF4y2Ba).看到gydF4y2Ba输出功能和绘图函数语法gydF4y2Ba.gydF4y2Ba

PlotFcngydF4y2Ba

绘制算法执行时的各种进度度量;从预定义的情节中选择或编写您自己的。传递名称、函数句柄或由名称或函数句柄组成的单元格数组。对于定制的绘图函数,传递函数句柄。默认为none (gydF4y2Ba[]gydF4y2Ba):gydF4y2Ba

  • 'Optimplotx'gydF4y2Ba绘制当前点。gydF4y2Ba

  • 'OptimplotFunccount'gydF4y2Ba绘制函数计数。gydF4y2Ba

  • 'OptimplotFval'gydF4y2Ba绘制函数值。gydF4y2Ba

  • “optimplotfvalconstr”gydF4y2Ba绘制作为线绘图的最佳可行目标函数值。使用可行性公差,该曲线表现为红色,可行点和可行点。使用可行性公差gydF4y2Ba1E-6gydF4y2Ba.gydF4y2Ba

  • “optimplotconstrviolation”gydF4y2Ba绘制最大约束违规。gydF4y2Ba

  • 'OptimplotStepsize'gydF4y2Ba绘制步长。gydF4y2Ba

  • 'OptimplotFirstordopt'gydF4y2Ba绘制一阶的最优性措施。gydF4y2Ba

自定义绘图功能使用与输出功能相同的语法。看到gydF4y2Ba优化工具箱™的输出功能gydF4y2Ba和gydF4y2Ba输出功能和绘图函数语法gydF4y2Ba.gydF4y2Ba

为gydF4y2Ba优化集gydF4y2Ba, 名字是gydF4y2BaPlotFcnsgydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

RelLineSrchBndgydF4y2Ba

线路搜索步长的相对绑定(真实的非负标量值),使得总位移gydF4y2BaxgydF4y2Ba满足gydF4y2Ba|δ.gydF4y2BaxgydF4y2Ba(gydF4y2Ba我gydF4y2Ba)|≤relLineSrchBnd·max(| . b0gydF4y2BaxgydF4y2Ba(gydF4y2Ba我gydF4y2Ba)|,|gydF4y2Ba典型的gydF4y2Ba(gydF4y2Ba我gydF4y2Ba) |)gydF4y2Ba.此选项可提供对位移的幅度的控制gydF4y2BaxgydF4y2Ba对于求解器采取步骤的情况gydF4y2BafseminfgydF4y2Ba认为太大。默认值是无边界的(gydF4y2Ba[]gydF4y2Ba).gydF4y2Ba

Rellinesrchbndration.gydF4y2Ba

指定的界限的迭代次数gydF4y2BaRelLineSrchBndgydF4y2Ba应该是活动的(默认是gydF4y2Ba1gydF4y2Ba)gydF4y2Ba

SpecifyObjectiveGradientgydF4y2Ba

用户定义的目标函数的梯度。查看前面的描述gydF4y2Ba乐趣gydF4y2Ba来了解如何定义渐变gydF4y2Ba乐趣gydF4y2Ba.设置gydF4y2Ba真的gydF4y2Ba有gydF4y2BafseminfgydF4y2Ba使用客观函数的用户定义梯度。默认值gydF4y2Ba假gydF4y2Ba原因gydF4y2BafseminfgydF4y2Ba用有限差分估计梯度。gydF4y2Ba

为gydF4y2Ba优化集gydF4y2Ba, 名字是gydF4y2BaGradObjgydF4y2Ba这些值是gydF4y2Ba“上”gydF4y2Ba或者gydF4y2Ba'离开'gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

StepTolerance.gydF4y2Ba

终止宽容gydF4y2BaxgydF4y2Ba,一个正标量。默认值为gydF4y2Ba1E-4gydF4y2Ba.看到gydF4y2Ba公差和停止标准gydF4y2Ba.gydF4y2Ba

为gydF4y2Ba优化集gydF4y2Ba, 名字是gydF4y2Ba托克斯gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

Tolconsqp.gydF4y2Ba

终止容忍内部迭代SQP约束违规,一个正标量。默认值是gydF4y2Ba1E-6gydF4y2Ba.gydF4y2Ba

典型的gydF4y2Ba

典型的gydF4y2BaxgydF4y2Ba价值观。元素的数量gydF4y2Ba典型的gydF4y2Ba等于元素的个数gydF4y2BaX0.gydF4y2Ba,起点。默认值为gydF4y2Ba(Numberofvarialbles,1)gydF4y2Ba.gydF4y2BafseminfgydF4y2Ba用途gydF4y2Ba典型的gydF4y2Ba用于缩放有限差异的梯度估计。gydF4y2Ba

笔记gydF4y2Ba

优化例程gydF4y2BafseminfgydF4y2Ba可能会改变建议的采样间隔,gydF4y2Ba年代gydF4y2Ba,设置gydF4y2BaseminfcongydF4y2Ba,因为对于效率或鲁棒性而言,建议间隔以外的值可能更合适。还有有限区域gydF4y2BawgydF4y2Ba我gydF4y2Ba, 在之上gydF4y2BaKgydF4y2Ba我gydF4y2Ba(gydF4y2BaxgydF4y2Ba,gydF4y2BawgydF4y2Ba我gydF4y2Ba)gydF4y2Ba计算,允许在优化期间变化,条件是它不会导致局部最小值的数量发生重大变化gydF4y2BaKgydF4y2Ba我gydF4y2Ba(gydF4y2BaxgydF4y2Ba,gydF4y2BawgydF4y2Ba我gydF4y2Ba)gydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

全部收缩gydF4y2Ba

此示例最小化了功能gydF4y2Ba

(gydF4y2Ba xgydF4y2Ba -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba

受约束gydF4y2Ba

0gydF4y2Ba ≤.gydF4y2Ba xgydF4y2Ba ≤.gydF4y2Ba 2gydF4y2Ba

ggydF4y2Ba (gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba (gydF4y2Ba xgydF4y2Ba -gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba )gydF4y2Ba -gydF4y2Ba (gydF4y2Ba tgydF4y2Ba -gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba ≤.gydF4y2Ba 0gydF4y2Ba 对所有人gydF4y2Ba 0gydF4y2Ba ≤.gydF4y2Ba tgydF4y2Ba ≤.gydF4y2Ba 1gydF4y2Ba .gydF4y2Ba

无约束目标函数在gydF4y2Ba xgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba .但是,约束gydF4y2Ba

ggydF4y2Ba (gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ≤.gydF4y2Ba 0gydF4y2Ba 对所有人gydF4y2Ba 0gydF4y2Ba ≤.gydF4y2Ba tgydF4y2Ba ≤.gydF4y2Ba 1gydF4y2Ba

暗示gydF4y2Ba xgydF4y2Ba ≤.gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba .请注意,gydF4y2Ba (gydF4y2Ba tgydF4y2Ba - - - - - -gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba ≥gydF4y2Ba 0gydF4y2Ba , 所以gydF4y2Ba

最大限度gydF4y2Ba tgydF4y2Ba ggydF4y2Ba (gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba xgydF4y2Ba -gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba .gydF4y2Ba

所以,gydF4y2Ba

最大限度gydF4y2Ba tgydF4y2Ba ggydF4y2Ba (gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ≤.gydF4y2Ba 0gydF4y2Ba 什么时候gydF4y2Ba xgydF4y2Ba ≤.gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba .gydF4y2Ba

使用解决这个问题gydF4y2BafseminfgydF4y2Ba,将目标函数写为匿名功能。gydF4y2Ba

objfun = @(x)(x-1)^ 2;gydF4y2Ba

写半无限约束函数gydF4y2BaseminfcongydF4y2Ba,其中包括非线性约束(在这种情况下),初始采样间隔gydF4y2Ba tgydF4y2Ba (在本例中为0.01的0到1),以及半无限约束函数gydF4y2Ba ggydF4y2Ba (gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba tgydF4y2Ba )gydF4y2Ba .代码gydF4y2BaseminfcongydF4y2Ba功能出现在gydF4y2Ba此示例的结尾gydF4y2Ba.gydF4y2Ba

设定起始点gydF4y2Bax0 = 0.2gydF4y2Ba.gydF4y2Ba

x0 = 0.2;gydF4y2Ba

指定一个半无限约束。gydF4y2Ba

ntheta = 1;gydF4y2Ba

通过呼叫来解决问题gydF4y2BafseminfgydF4y2Ba并查看结果。gydF4y2Ba

x = fseminf(objfun,x0,ntheta,@ seminfcon)gydF4y2Ba
发现满足约束的本地最小值。优化完成,因为目标函数在可行的方向上不降低,到在最优性公差的值内,并且对约束公差的值满足约束。gydF4y2Ba
x = 0.5000gydF4y2Ba

下面的代码创建gydF4y2BaseminfcongydF4y2Ba函数。gydF4y2Ba

功能gydF4y2Ba[c,ceq,k1,s] = seminfcon(x,s)gydF4y2Ba%没有有限的非线性不等式和平等约束gydF4y2Bac = [];测查= [];gydF4y2Ba%样本集gydF4y2Ba如果gydF4y2Baisnan(s)gydF4y2Ba%初始采样间隔gydF4y2Bas = [0.01 0];gydF4y2Ba结束gydF4y2Bat = 0:s(1):1;gydF4y2Ba%评估半无限约束gydF4y2BaK1 =(x  -  0.5) - (t  -  0.5)。^ 2;gydF4y2Ba结束gydF4y2Ba

限制gydF4y2Ba

要最小化的功能,约束和半无限约束必须是连续的功能gydF4y2BaxgydF4y2Ba和gydF4y2BawgydF4y2Ba.gydF4y2BafseminfgydF4y2Ba可能只提供当地解决方案。金宝搏官方网站gydF4y2Ba

当问题不可行时,gydF4y2BafseminfgydF4y2Ba尝试最小化最大约束值。gydF4y2Ba

算法gydF4y2Ba

fseminfgydF4y2Ba使用立方和二次插值技术来估计半无限约束中的峰值。峰值值用于形成提供给SQP方法的一组约束,如gydF4y2Ba粉刺gydF4y2Ba函数。当约束的数量发生变化时,Lagrange乘法器将重新分配到新的约束集。gydF4y2Ba

推荐的采样间隔计算使用在数据集中出现的内插峰值和峰值之间的差值来估计功能是否需要更多或更少。该功能通过将曲线推断并将其与曲线中的其他点进行比较来评估插值的有效性。当峰值靠近约束边界时,即零,建议采样间隔减小。gydF4y2Ba

有关所使用的算法的更多详细信息以及所显示的过程类型gydF4y2Ba程序gydF4y2Ba朝前的时候gydF4y2Ba展示gydF4y2Ba选项设置为gydF4y2Ba“通路”gydF4y2Ba与gydF4y2BaoptimoptionsgydF4y2Ba,看到也gydF4y2BaSQP实施gydF4y2Ba.有关的详细资料gydF4y2BafseminfgydF4y2Ba算法,参见gydF4y2BaFseminf问题配方和算法gydF4y2Ba.gydF4y2Ba

在R2006A之前介绍gydF4y2Ba