主要内容gydF4y2Ba

fseminfgydF4y2Ba

求半无限约束多变量非线性函数的最小值gydF4y2Ba

描述gydF4y2Ba

fseminfgydF4y2Ba是一个非线性规划求解器,找到问题的最小值指定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矩阵。gydF4y2Ba

  • cgydF4y2Ba(gydF4y2BaxgydF4y2Ba),gydF4y2Ba量表信gydF4y2Ba(gydF4y2BaxgydF4y2Ba),gydF4y2BaKgydF4y2Ba我gydF4y2Ba(gydF4y2Bax, wgydF4y2Ba我gydF4y2Ba)是返回向量的函数。gydF4y2Ba

  • fgydF4y2Ba(gydF4y2BaxgydF4y2Ba)是一个返回标量的函数。gydF4y2Ba

fgydF4y2Ba(gydF4y2BaxgydF4y2Ba),gydF4y2BacgydF4y2Ba(gydF4y2BaxgydF4y2Ba),gydF4y2Ba量表信gydF4y2Ba(gydF4y2BaxgydF4y2Ba)可以是非线性函数。向量(或矩阵)gydF4y2BaKgydF4y2Ba我gydF4y2Ba(gydF4y2BaxgydF4y2Ba,gydF4y2BawgydF4y2Ba我gydF4y2Ba)≤0gydF4y2Ba两者都是连续函数吗gydF4y2BaxgydF4y2Ba还有一组额外的变量gydF4y2BawgydF4y2Ba1gydF4y2Ba,gydF4y2BawgydF4y2Ba2gydF4y2Ba、……gydF4y2BawgydF4y2BangydF4y2Ba.的变量gydF4y2BawgydF4y2Ba1gydF4y2Ba,gydF4y2BawgydF4y2Ba2gydF4y2Ba、……gydF4y2BawgydF4y2BangydF4y2Ba是长度最多为2的向量。gydF4y2Ba

xgydF4y2Ba,gydF4y2Ba磅gydF4y2Ba,gydF4y2Ba乌兰巴托gydF4y2Ba可以作为向量或矩阵传递;看到gydF4y2Ba矩阵的参数gydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

xgydF4y2Ba= fseminf (gydF4y2Ba有趣的gydF4y2Ba,gydF4y2Bax0gydF4y2Ba,gydF4y2BanthetagydF4y2Ba,gydF4y2BaseminfcongydF4y2Ba)gydF4y2Ba起价gydF4y2Bax0gydF4y2Ba然后求函数的最小值gydF4y2Ba有趣的gydF4y2Ba受到gydF4y2BanthetagydF4y2Ba中定义的半无限约束gydF4y2BaseminfcongydF4y2Ba.gydF4y2Ba

xgydF4y2Ba= fseminf (gydF4y2Ba有趣的gydF4y2Ba,gydF4y2Bax0gydF4y2Ba,gydF4y2BanthetagydF4y2Ba,gydF4y2BaseminfcongydF4y2Ba,gydF4y2Ba一个gydF4y2Ba,gydF4y2BabgydF4y2Ba)gydF4y2Ba也试图满足线性不等式gydF4y2BaA*x≤bgydF4y2Ba.gydF4y2Ba

xgydF4y2Ba= fseminf (gydF4y2Ba有趣的gydF4y2Ba,gydF4y2Bax0gydF4y2Ba,gydF4y2BanthetagydF4y2Ba,gydF4y2BaseminfcongydF4y2Ba,gydF4y2Ba一个gydF4y2Ba,gydF4y2BabgydF4y2Ba,gydF4y2BaAeqgydF4y2Ba,gydF4y2Ba说真的gydF4y2Ba)gydF4y2Ba使线性等式最小化gydF4y2BaAeq*x = beqgydF4y2Ba也集gydF4y2BaA = []gydF4y2Ba而且gydF4y2BaB = []gydF4y2Ba如果不存在不平等。gydF4y2Ba

xgydF4y2Ba= fseminf (gydF4y2Ba有趣的gydF4y2Ba,gydF4y2Bax0gydF4y2Ba,gydF4y2BanthetagydF4y2Ba,gydF4y2BaseminfcongydF4y2Ba,gydF4y2Ba一个gydF4y2Ba,gydF4y2BabgydF4y2Ba,gydF4y2BaAeqgydF4y2Ba,gydF4y2Ba说真的gydF4y2Ba,gydF4y2Ba磅gydF4y2Ba,gydF4y2Ba乌兰巴托gydF4y2Ba)gydF4y2Ba中定义设计变量的一组下界和上界gydF4y2BaxgydF4y2Ba,使解总是在值域内gydF4y2Ba磅gydF4y2Ba≤gydF4y2BaxgydF4y2Ba≤gydF4y2Ba乌兰巴托gydF4y2Ba.gydF4y2Ba

xgydF4y2Ba= fseminf (gydF4y2Ba有趣的gydF4y2Ba,gydF4y2Bax0gydF4y2Ba,gydF4y2BanthetagydF4y2Ba,gydF4y2BaseminfcongydF4y2Ba,gydF4y2Ba一个gydF4y2Ba,gydF4y2BabgydF4y2Ba,gydF4y2BaAeqgydF4y2Ba,gydF4y2Ba说真的gydF4y2Ba,gydF4y2Ba磅gydF4y2Ba,gydF4y2Ba乌兰巴托gydF4y2Ba,gydF4y2Ba选项gydF4y2Ba)gydF4y2Ba中指定的优化选项使之最小化gydF4y2Ba选项gydF4y2Ba.使用gydF4y2BaoptimoptionsgydF4y2Ba设置这些选项。gydF4y2Ba

xgydF4y2Ba= fseminf (gydF4y2Ba问题gydF4y2Ba)gydF4y2Ba求最小值gydF4y2Ba问题gydF4y2Ba中描述的结构gydF4y2Ba问题gydF4y2Ba.gydF4y2Ba

[gydF4y2BaxgydF4y2Ba,gydF4y2BafvalgydF4y2Ba= fseminf(gydF4y2Ba___gydF4y2Ba)gydF4y2Ba,对于任何前面的输入语法,返回目标函数的值gydF4y2Ba有趣的gydF4y2Ba在解决方案中gydF4y2BaxgydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

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

例子gydF4y2Ba

[gydF4y2BaxgydF4y2Ba,gydF4y2BafvalgydF4y2Ba,gydF4y2BaexitflaggydF4y2Ba,gydF4y2Ba输出gydF4y2Ba= fseminf(gydF4y2Ba___gydF4y2Ba)gydF4y2Ba也返回一个值gydF4y2BaexitflaggydF4y2Ba它描述了退出条件和结构gydF4y2Ba输出gydF4y2Ba有关优化过程的信息。gydF4y2Ba

例子gydF4y2Ba

[gydF4y2BaxgydF4y2Ba,gydF4y2BafvalgydF4y2Ba,gydF4y2BaexitflaggydF4y2Ba,gydF4y2Ba输出gydF4y2Ba,gydF4y2BaλgydF4y2Ba= fseminf(gydF4y2Ba___gydF4y2Ba)gydF4y2Ba返回一个结构gydF4y2BaλgydF4y2Ba谁的场包含解处的拉格朗日乘子gydF4y2BaxgydF4y2Ba.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到1,步长为0.01),以及半无限约束函数gydF4y2Ba ggydF4y2Ba (gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba tgydF4y2Ba )gydF4y2Ba .的代码。gydF4y2BaseminfcongydF4y2Ba函数出现在gydF4y2Ba本例结束gydF4y2Ba.gydF4y2Ba

设定起始点gydF4y2BaX0 = 0.2gydF4y2Ba.gydF4y2Ba

X0 = 0.2;gydF4y2Ba

指定一个半无限的约束条件。gydF4y2Ba

n = 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 = [];Ceq = [];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

(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用半无限约束最小化函数gydF4y2Ba它收集有关解决方案和解决方案过程的更多信息。gydF4y2Ba

来解决这个问题gydF4y2BafseminfgydF4y2Ba,将目标函数写成匿名函数。gydF4y2Ba

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

非线性半无限约束函数的代码gydF4y2BaseminfcongydF4y2Ba出现在gydF4y2Ba本例结束gydF4y2Ba.gydF4y2Ba

设定起始点gydF4y2BaX0 = 0.2gydF4y2Ba.gydF4y2Ba

X0 = 0.2;gydF4y2Ba

指定一个半无限的约束条件。gydF4y2Ba

n = 1;gydF4y2Ba

打电话解决问题gydF4y2BafseminfgydF4y2Ba并查看结果。gydF4y2Ba

A = [];B = [];Aeq = [];Beq = [];Lb = 0;Ub = 2;[x,fval,exitflag,output,lambda] = fseminf(objfun,x0,ntheta,@seminfcon,gydF4y2Ba...gydF4y2Ba说真的,A、b Aeq磅,乌兰巴托)gydF4y2Ba
找到满足约束条件的局部最小值。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。gydF4y2Ba
X = 0.5000gydF4y2Ba
Fval = 0.2500gydF4y2Ba
Exitflag = 1gydF4y2Ba
输出=gydF4y2Ba带字段的结构:gydF4y2Ba迭代:2 funcCount: 4 lssteplth: 1 stepsize: 4.6841e-12 algorithm: 'active-set' firstorderopt: 9.3682e-12 constrviolation: 4.6841e-12 message: '本地最小值发现满足约束....'gydF4y2Ba
λ=gydF4y2Ba带字段的结构:gydF4y2BaLower: 0 upper: 0 eqlin: [0x1 double] eqnonlin: [0x1 double] ineqlin: [0x1 double] ineqnonlin: [1x0 double]gydF4y2Ba

返回值显示:gydF4y2Ba

  • 问题在gydF4y2Ba xgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba .gydF4y2Ba

  • 目标函数的值,gydF4y2Ba (gydF4y2Ba xgydF4y2Ba -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba ,是gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 4gydF4y2Ba .gydF4y2Ba

  • 求解器需要两次迭代和四次函数计算才能得到解决方案。gydF4y2Ba

  • 除了半无限约束,唯一的约束就是边界,所以gydF4y2BaλgydF4y2Ba结构没有线性或非线性值。的gydF4y2Balambda.lowergydF4y2Ba而且gydF4y2Balambda.uppergydF4y2Ba对应于边界的字段不是空的,而是零值,因为解不在任何一个边界上。gydF4y2Ba

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

函数gydF4y2Ba[c, ceq, K1, s] = seminfcon(x,s)gydF4y2Ba无有限非线性不等式和等式约束。gydF4y2BaC = [];Ceq = [];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

全部折叠gydF4y2Ba

函数来最小化,指定为函数句柄或函数名。gydF4y2Ba有趣的gydF4y2Ba函数接受向量或数组吗gydF4y2BaxgydF4y2Ba并返回一个实标量gydF4y2BafgydF4y2Ba的目标函数gydF4y2BaxgydF4y2Ba.gydF4y2Ba

fseminfgydF4y2Ba通过gydF4y2BaxgydF4y2Ba你的目标函数和任何非线性约束函数的形状gydF4y2Bax0gydF4y2Ba论点。例如,如果gydF4y2Bax0gydF4y2Ba是一个5乘3的数组吗gydF4y2BafseminfgydF4y2Ba通过gydF4y2BaxgydF4y2Ba来gydF4y2Ba有趣的gydF4y2Ba作为一个5 × 3的数组。然而,gydF4y2BafseminfgydF4y2Ba乘以线性约束矩阵gydF4y2Ba一个gydF4y2Ba或gydF4y2BaAeqgydF4y2Ba与gydF4y2BaxgydF4y2Ba转换后gydF4y2BaxgydF4y2Ba对列向量gydF4y2Bax (:)gydF4y2Ba.gydF4y2Ba

指定gydF4y2Ba有趣的gydF4y2Ba作为文件的函数句柄。gydF4y2Ba

X = fseminf(@myfun,gydF4y2Ba...gydF4y2Ba)gydF4y2Ba

在这里,gydF4y2BamyfungydF4y2Ba是一个MATLABgydF4y2Ba®gydF4y2Ba函数如下所示。gydF4y2Ba

函数gydF4y2BaF = myfun(x) F =gydF4y2Ba...gydF4y2Ba计算x处的函数值gydF4y2Ba

你也可以指定gydF4y2Ba有趣的gydF4y2Ba作为匿名函数的函数句柄。gydF4y2Ba

X = fseminf(@(X)norm(X)^2,gydF4y2Ba...gydF4y2Ba);gydF4y2Ba

如果你能计算的梯度gydF4y2Ba有趣的gydF4y2Ba而且gydF4y2Ba的gydF4y2BaSpecifyObjectiveGradientgydF4y2Ba选项设置为gydF4y2Ba真正的gydF4y2Ba,由gydF4y2Ba

选项= optimoptions(gydF4y2Ba“fseminf”gydF4y2Ba,gydF4y2Ba“SpecifyObjectiveGradient”gydF4y2Ba,真正的);gydF4y2Ba
然后gydF4y2Ba有趣的gydF4y2Ba必须返回梯度向量gydF4y2Bag (x)gydF4y2Ba在第二个输出参数中。gydF4y2Ba

例子:gydF4y2Ba趣味= @(x)sin(x(1))*cos(x(2))gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Bafunction_handlegydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

初始点,指定为实向量或实数组。求解器使用元素的数量gydF4y2Bax0gydF4y2Ba和大小gydF4y2Bax0gydF4y2Ba确定变量的数量和大小即gydF4y2Ba有趣的gydF4y2Ba接受。gydF4y2Ba

例子:gydF4y2BaX0 = [1,2,3,4]gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

半无限约束数,指定为正整数。gydF4y2Ba

例子:gydF4y2Ba4gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

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

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

在哪里gydF4y2BamyinfcongydF4y2Ba是一个MATLAB函数,如gydF4y2Ba

函数(c,测查,K1, K2,…,Kntheta,S] = myinfcon(x,S) % Initial sampling interval if isnan(S(1,1)), S = ...% S has ntheta rows and 2 columns end w1 = ...% Compute sample set w2 = ...% Compute sample set ... wntheta = ... % Compute sample set K1 = ... % 1st semi-infinite constraint at x and 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 nonlinear equalities at x

年代gydF4y2Ba是函数可能不使用的推荐采样间隔。返回gydF4y2Ba[]gydF4y2Ba为gydF4y2BacgydF4y2Ba而且gydF4y2Ba量表信gydF4y2Ba如果不存在这样的限制。gydF4y2Ba

向量或者矩阵gydF4y2BaK1gydF4y2Ba,gydF4y2BaK2gydF4y2Ba,gydF4y2Ba...gydF4y2Ba,gydF4y2BaKnthetagydF4y2Ba包含对自变量的采样值集进行评估的半无限约束gydF4y2Baw1gydF4y2Ba,gydF4y2Baw2gydF4y2Ba,gydF4y2Ba...gydF4y2Ba,gydF4y2BawnthetagydF4y2Ba,分别。两列矩阵gydF4y2Ba年代gydF4y2Ba的值的建议采样间隔gydF4y2Baw1gydF4y2Ba,gydF4y2Baw2gydF4y2Ba,gydF4y2Ba...gydF4y2Ba,gydF4y2BawnthetagydF4y2Ba,用于评估gydF4y2BaK1gydF4y2Ba,gydF4y2BaK2gydF4y2Ba,gydF4y2Ba...gydF4y2Ba,gydF4y2BaKnthetagydF4y2Ba.的gydF4y2Ba我gydF4y2Ba第Th行gydF4y2Ba年代gydF4y2Ba包含用于计算的推荐采样间隔gydF4y2BaKgydF4y2Ba我gydF4y2Ba.当gydF4y2BaKgydF4y2Ba我gydF4y2Ba是向量,函数只用gydF4y2Ba(我,1)gydF4y2Ba(第二列可以全为零)。当gydF4y2BaKgydF4y2Ba我gydF4y2Ba是矩阵,函数用的gydF4y2Ba(2)我gydF4y2Ba对中的行进行抽样gydF4y2BaKgydF4y2Ba我gydF4y2Ba,并使用gydF4y2Ba(我,1)gydF4y2Ba的列的采样间隔gydF4y2BaKgydF4y2Ba我gydF4y2Ba(见gydF4y2Ba二维半无限约束gydF4y2Ba).因为gydF4y2Ba年代gydF4y2Ba是gydF4y2Ba南gydF4y2Ba在第一次迭代中,gydF4y2BaseminfcongydF4y2Ba必须确定一些初始采样间隔。gydF4y2Ba

请注意gydF4y2Ba

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

用于参数化的方法gydF4y2BaseminfcongydF4y2Ba,如有必要,请参阅gydF4y2Ba传递额外参数gydF4y2Ba.有关一维和二维采样点的示例,请参见gydF4y2Ba创建采样点示例gydF4y2Ba.gydF4y2Ba

线性不等式约束,指定为实矩阵。gydF4y2Ba一个gydF4y2Ba是一个gydF4y2Ba米gydF4y2Ba——- - - - - -gydF4y2BaNgydF4y2Ba矩阵,gydF4y2Ba米gydF4y2Ba不等式的数量,和gydF4y2BaNgydF4y2Ba变量的数量(元素的数量gydF4y2Bax0gydF4y2Ba).对于大问题,可以通过gydF4y2Ba一个gydF4y2Ba作为一个稀疏矩阵。gydF4y2Ba

一个gydF4y2Ba编码gydF4y2Ba米gydF4y2Ba线性不等式gydF4y2Ba

A*x <= bgydF4y2Ba,gydF4y2Ba

在哪里gydF4y2BaxgydF4y2Ba列向量是gydF4y2BaNgydF4y2Ba变量gydF4y2Bax (:)gydF4y2Ba,gydF4y2BabgydF4y2Ba列向量是gydF4y2Ba米gydF4y2Ba元素。gydF4y2Ba

例如,考虑以下不等式:gydF4y2Ba

xgydF4y2Ba1gydF4y2Ba+ 2gydF4y2BaxgydF4y2Ba2gydF4y2Ba≤10gydF4y2Ba
3.gydF4y2BaxgydF4y2Ba1gydF4y2Ba+ 4gydF4y2BaxgydF4y2Ba2gydF4y2Ba≤20gydF4y2Ba
5gydF4y2BaxgydF4y2Ba1gydF4y2Ba+ 6gydF4y2BaxgydF4y2Ba2gydF4y2Ba≤30日gydF4y2Ba

通过输入以下约束来指定不等式。gydF4y2Ba

A = [1,2;3,4;5,6];B = [10;20;30];gydF4y2Ba

例子:gydF4y2Ba要指定x分量的和为1或更小,请使用gydF4y2BaA = ones(1,N)gydF4y2Ba而且gydF4y2BaB = 1gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

线性不等式约束,指定为实向量。gydF4y2BabgydF4y2Ba是一个gydF4y2Ba米gydF4y2Ba元素的相关向量gydF4y2Ba一个gydF4y2Ba矩阵。如果你通过了gydF4y2BabgydF4y2Ba作为行向量,解算器内部转换gydF4y2BabgydF4y2Ba对列向量gydF4y2Bab (:)gydF4y2Ba.对于大问题,可以通过gydF4y2BabgydF4y2Ba作为一个稀疏向量。gydF4y2Ba

bgydF4y2Ba编码gydF4y2Ba米gydF4y2Ba线性不等式gydF4y2Ba

A*x <= bgydF4y2Ba,gydF4y2Ba

在哪里gydF4y2BaxgydF4y2Ba列向量是gydF4y2BaNgydF4y2Ba变量gydF4y2Bax (:)gydF4y2Ba,gydF4y2Ba一个gydF4y2Ba矩阵的大小gydF4y2Ba米gydF4y2Ba——- - - - - -gydF4y2BaNgydF4y2Ba.gydF4y2Ba

例如,考虑以下不等式:gydF4y2Ba

xgydF4y2Ba1gydF4y2Ba+ 2gydF4y2BaxgydF4y2Ba2gydF4y2Ba≤10gydF4y2Ba
3.gydF4y2BaxgydF4y2Ba1gydF4y2Ba+ 4gydF4y2BaxgydF4y2Ba2gydF4y2Ba≤20gydF4y2Ba
5gydF4y2BaxgydF4y2Ba1gydF4y2Ba+ 6gydF4y2BaxgydF4y2Ba2gydF4y2Ba≤30。gydF4y2Ba

通过输入以下约束来指定不等式。gydF4y2Ba

A = [1,2;3,4;5,6];B = [10;20;30];gydF4y2Ba

例子:gydF4y2Ba要指定x分量的和为1或更小,请使用gydF4y2BaA = ones(1,N)gydF4y2Ba而且gydF4y2BaB = 1gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

线性等式约束,指定为实矩阵。gydF4y2BaAeqgydF4y2Ba是一个gydF4y2Ba我gydF4y2Ba——- - - - - -gydF4y2BaNgydF4y2Ba矩阵,gydF4y2Ba我gydF4y2Ba等式的个数,和gydF4y2BaNgydF4y2Ba变量的数量(元素的数量gydF4y2Bax0gydF4y2Ba).对于大问题,可以通过gydF4y2BaAeqgydF4y2Ba作为一个稀疏矩阵。gydF4y2Ba

AeqgydF4y2Ba编码gydF4y2Ba我gydF4y2Ba线性等式gydF4y2Ba

Aeq*x = beqgydF4y2Ba,gydF4y2Ba

在哪里gydF4y2BaxgydF4y2Ba列向量是gydF4y2BaNgydF4y2Ba变量gydF4y2Bax (:)gydF4y2Ba,gydF4y2Ba说真的gydF4y2Ba列向量是gydF4y2Ba我gydF4y2Ba元素。gydF4y2Ba

例如,考虑以下不等式:gydF4y2Ba

xgydF4y2Ba1gydF4y2Ba+ 2gydF4y2BaxgydF4y2Ba2gydF4y2Ba+ 3gydF4y2BaxgydF4y2Ba3.gydF4y2Ba= 10gydF4y2Ba
2gydF4y2BaxgydF4y2Ba1gydF4y2Ba+ 4gydF4y2BaxgydF4y2Ba2gydF4y2Ba+gydF4y2BaxgydF4y2Ba3.gydF4y2Ba= 20,gydF4y2Ba

通过输入以下约束来指定不等式。gydF4y2Ba

Aeq = [1,2,3;2,4,1];Beq = [10;20];gydF4y2Ba

例子:gydF4y2Ba要指定x分量的和为1,使用gydF4y2BaAeq = ones(1,N)gydF4y2Ba而且gydF4y2BaBeq = 1gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

线性等式约束,指定为实向量。gydF4y2Ba说真的gydF4y2Ba是一个gydF4y2Ba我gydF4y2Ba元素的相关向量gydF4y2BaAeqgydF4y2Ba矩阵。如果你通过了gydF4y2Ba说真的gydF4y2Ba作为行向量,解算器内部转换gydF4y2Ba说真的gydF4y2Ba对列向量gydF4y2Ba说真的(:)gydF4y2Ba.对于大问题,可以通过gydF4y2Ba说真的gydF4y2Ba作为一个稀疏向量。gydF4y2Ba

说真的gydF4y2Ba编码gydF4y2Ba我gydF4y2Ba线性等式gydF4y2Ba

Aeq*x = beqgydF4y2Ba,gydF4y2Ba

在哪里gydF4y2BaxgydF4y2Ba列向量是gydF4y2BaNgydF4y2Ba变量gydF4y2Bax (:)gydF4y2Ba,gydF4y2BaAeqgydF4y2Ba矩阵的大小gydF4y2Ba我gydF4y2Ba——- - - - - -gydF4y2BaNgydF4y2Ba.gydF4y2Ba

例如,考虑以下等式:gydF4y2Ba

xgydF4y2Ba1gydF4y2Ba+ 2gydF4y2BaxgydF4y2Ba2gydF4y2Ba+ 3gydF4y2BaxgydF4y2Ba3.gydF4y2Ba= 10gydF4y2Ba
2gydF4y2BaxgydF4y2Ba1gydF4y2Ba+ 4gydF4y2BaxgydF4y2Ba2gydF4y2Ba+gydF4y2BaxgydF4y2Ba3.gydF4y2Ba= 20。gydF4y2Ba

通过输入以下约束来指定等式。gydF4y2Ba

Aeq = [1,2,3;2,4,1];Beq = [10;20];gydF4y2Ba

例子:gydF4y2Ba要指定x分量的和为1,使用gydF4y2BaAeq = ones(1,N)gydF4y2Ba而且gydF4y2BaBeq = 1gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

下界,指定为实向量或实数组。如果元素的个数gydF4y2Bax0gydF4y2Ba等于里面元素的个数gydF4y2Ba磅gydF4y2Ba,然后gydF4y2Ba磅gydF4y2Ba指定gydF4y2Ba

X (i) >= lb(i)gydF4y2Ba对所有gydF4y2Ba我gydF4y2Ba.gydF4y2Ba

如果gydF4y2Ba数值(lb) <数值(x0)gydF4y2Ba,然后gydF4y2Ba磅gydF4y2Ba指定gydF4y2Ba

X (i) >= lb(i)gydF4y2Ba为gydF4y2Ba1 <= I <= number (lb)gydF4y2Ba.gydF4y2Ba

如果gydF4y2Ba磅gydF4y2Ba元素少于gydF4y2Bax0gydF4y2Ba,解算器发出警告。gydF4y2Ba

例子:gydF4y2Ba要指定所有x分量都是正的,使用gydF4y2BaLb = 0 (size(x0))gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

上界,指定为实向量或实数组。如果元素的个数gydF4y2Bax0gydF4y2Ba等于里面元素的个数gydF4y2Ba乌兰巴托gydF4y2Ba,然后gydF4y2Ba乌兰巴托gydF4y2Ba指定gydF4y2Ba

X (i) <= ub(i)gydF4y2Ba对所有gydF4y2Ba我gydF4y2Ba.gydF4y2Ba

如果gydF4y2BaNumel (ub) < Numel (x0)gydF4y2Ba,然后gydF4y2Ba乌兰巴托gydF4y2Ba指定gydF4y2Ba

X (i) <= ub(i)gydF4y2Ba为gydF4y2Ba1 <= I <= numel(ub)gydF4y2Ba.gydF4y2Ba

如果gydF4y2Ba乌兰巴托gydF4y2Ba元素少于gydF4y2Bax0gydF4y2Ba,解算器发出警告。gydF4y2Ba

例子:gydF4y2Ba要指定所有x分量都小于1,使用gydF4y2BaUb = ones(size(x0))gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

的优化选项,指定为的输出gydF4y2BaoptimoptionsgydF4y2Ba或者一个结构,比如gydF4y2BaoptimsetgydF4y2Ba的回报。看到gydF4y2Ba优化选项参考gydF4y2Ba有关详细信息。gydF4y2Ba

中缺少一些选项gydF4y2BaoptimoptionsgydF4y2Ba显示。这些选项在下表中以斜体字显示。详细信息请参见gydF4y2Ba视图选项gydF4y2Ba.gydF4y2Ba

选项gydF4y2Ba 描述gydF4y2Ba

CheckGradientsgydF4y2Ba

比较用户提供的导数(目标或约束的梯度)与有限差分导数。选项是gydF4y2Ba真正的gydF4y2Ba或者默认值gydF4y2Ba假gydF4y2Ba.gydF4y2Ba

为gydF4y2BaoptimsetgydF4y2Ba,名字是gydF4y2BaDerivativeCheckgydF4y2Ba这些值是gydF4y2Ba“上”gydF4y2Ba或gydF4y2Ba“关闭”gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

ConstraintTolerancegydF4y2Ba

约束违反的终止容差(一个正标量)。默认为gydF4y2Ba1 e-6gydF4y2Ba.看到gydF4y2Ba公差和停止标准gydF4y2Ba.gydF4y2Ba

为gydF4y2BaoptimsetgydF4y2Ba,名字是gydF4y2BaTolCongydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

诊断gydF4y2Ba

显示有关要最小化或解决的功能的诊断信息。选项是gydF4y2Ba“上”gydF4y2Ba或者默认值gydF4y2Ba“关闭”gydF4y2Ba.gydF4y2Ba

DiffMaxChangegydF4y2Ba

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

DiffMinChangegydF4y2Ba

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

显示gydF4y2Ba

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

  • “关闭”gydF4y2Ba或gydF4y2Ba“没有”gydF4y2Ba不显示输出。gydF4y2Ba

  • “通路”gydF4y2Ba显示每次迭代的输出,并给出默认的退出消息。gydF4y2Ba

  • “iter-detailed”gydF4y2Ba显示每次迭代的输出,并给出技术退出消息。gydF4y2Ba

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

  • “notify-detailed”gydF4y2Ba仅在函数不收敛时显示输出,并给出技术退出消息。gydF4y2Ba

  • “最后一次”gydF4y2Ba(default)只显示最终输出,并给出默认的退出消息。gydF4y2Ba

  • 最后详细的gydF4y2Ba只显示最终输出,并给出技术退出消息。gydF4y2Ba

FiniteDifferenceStepSizegydF4y2Ba

有限差分的标量或矢量步长因子。当你设置gydF4y2BaFiniteDifferenceStepSizegydF4y2Ba到一个向量gydF4y2BavgydF4y2Ba,正向有限差分gydF4y2BaδgydF4y2Ba是gydF4y2Ba

delta = v *符号' (x).*max(abs(x),TypicalX);gydF4y2Ba

在哪里gydF4y2Ba符号' (x) =符号(x)gydF4y2Ba除了gydF4y2Ba符号' (0)= 1gydF4y2Ba.中心有限差分为gydF4y2Ba

delta = v.*max(abs(x),TypicalX);gydF4y2Ba

标量gydF4y2BaFiniteDifferenceStepSizegydF4y2Ba展开成一个向量。默认为gydF4y2Basqrt (eps)gydF4y2Ba对于正向有限差分,和gydF4y2Baeps ^ (1/3)gydF4y2Ba对于中心有限差分。gydF4y2Ba

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

FiniteDifferenceTypegydF4y2Ba

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

该算法在估计这两种类型的有限差分时谨慎地服从边界。例如,为了避免在边界外的点求值,算法可能采用向后差分,而不是向前差分。gydF4y2Ba

为gydF4y2BaoptimsetgydF4y2Ba,名字是gydF4y2BaFinDiffTypegydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

FunctionTolerancegydF4y2Ba

函数值(正标量)上的终止公差。默认为gydF4y2Ba1的军医gydF4y2Ba.看到gydF4y2Ba公差和停止标准gydF4y2Ba.gydF4y2Ba

为gydF4y2BaoptimsetgydF4y2Ba,名字是gydF4y2BaTolFungydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

FunValCheckgydF4y2Ba

检查目标函数和约束值是否有效。设置gydF4y2Ba“上”gydF4y2Ba当目标函数或约束返回值为时,显示错误gydF4y2Ba复杂的gydF4y2Ba,gydF4y2Ba正gydF4y2Ba,或gydF4y2Ba南gydF4y2Ba.默认的gydF4y2Ba“关闭”gydF4y2Ba不显示错误。gydF4y2Ba

MaxFunctionEvaluationsgydF4y2Ba

允许的最大函数求值数(正整数)。默认为gydF4y2Ba100 * numberOfVariablesgydF4y2Ba.看到gydF4y2Ba公差和停止标准gydF4y2Ba而且gydF4y2Ba迭代和功能计数gydF4y2Ba.gydF4y2Ba

为gydF4y2BaoptimsetgydF4y2Ba,名字是gydF4y2BaMaxFunEvalsgydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

MaxIterationsgydF4y2Ba

允许的最大迭代次数(正整数)。默认为gydF4y2Ba400gydF4y2Ba.看到gydF4y2Ba公差和停止标准gydF4y2Ba而且gydF4y2Ba迭代和功能计数gydF4y2Ba.gydF4y2Ba

为gydF4y2BaoptimsetgydF4y2Ba,名字是gydF4y2Ba麦克斯特gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

MaxSQPItergydF4y2Ba

允许的最大SQP迭代数(正整数)。默认为gydF4y2Ba10*max(numberOfVariables, numberOfInequalities + numberOfBounds)gydF4y2Ba.gydF4y2Ba

OptimalityTolerancegydF4y2Ba

一阶最优性(正标量)上的终止容差。默认为gydF4y2Ba1 e-6gydF4y2Ba.看到gydF4y2Ba一阶最优测度gydF4y2Ba.gydF4y2Ba

为gydF4y2BaoptimsetgydF4y2Ba,名字是gydF4y2BaTolFungydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

OutputFcngydF4y2Ba

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

PlotFcngydF4y2Ba

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

  • “optimplotx”gydF4y2Ba绘制当前点。gydF4y2Ba

  • “optimplotfunccount”gydF4y2Ba绘制函数计数。gydF4y2Ba

  • “optimplotfval”gydF4y2Ba绘制函数值。gydF4y2Ba

  • “optimplotfvalconstr”gydF4y2Ba以折线图的形式绘制出最佳可行目标函数值。的可行性容差,该图将不可行点表示为红色,可行点表示为蓝色gydF4y2Ba1 e-6gydF4y2Ba.gydF4y2Ba

  • “optimplotconstrviolation”gydF4y2Ba绘制最大违反约束的情况。gydF4y2Ba

  • “optimplotstepsize”gydF4y2Ba绘制步长。gydF4y2Ba

  • “optimplotfirstorderopt”gydF4y2Ba绘制一阶最优测度。gydF4y2Ba

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

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

RelLineSrchBndgydF4y2Ba

相对边界(一个实非负标量值)上的直线搜索步长,使总位移在gydF4y2BaxgydF4y2Ba满足gydF4y2Ba|ΔgydF4y2BaxgydF4y2Ba(gydF4y2Ba我gydF4y2Ba|≤relLineSrchBnd·max(| .gydF4y2BaxgydF4y2Ba(gydF4y2Ba我gydF4y2Ba) | |gydF4y2BatypicalxgydF4y2Ba(gydF4y2Ba我gydF4y2Ba) |)gydF4y2Ba.这个选项提供了对位移大小的控制gydF4y2BaxgydF4y2Ba对于求解器采取步骤的情况gydF4y2BafseminfgydF4y2Ba考虑得太大了。默认为无边界(gydF4y2Ba[]gydF4y2Ba).gydF4y2Ba

RelLineSrchBndDurationgydF4y2Ba

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

SpecifyObjectiveGradientgydF4y2Ba

由用户定义的目标函数的梯度。参见前面的描述gydF4y2Ba有趣的gydF4y2Ba来看看如何定义渐变gydF4y2Ba有趣的gydF4y2Ba.将此选项设置为gydF4y2Ba真正的gydF4y2Ba有gydF4y2BafseminfgydF4y2Ba使用用户定义的目标函数梯度。默认的gydF4y2Ba假gydF4y2Ba原因gydF4y2BafseminfgydF4y2Ba用有限差分估计梯度。gydF4y2Ba

为gydF4y2BaoptimsetgydF4y2Ba,名字是gydF4y2BaGradObjgydF4y2Ba这些值是gydF4y2Ba“上”gydF4y2Ba或gydF4y2Ba“关闭”gydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

StepTolerancegydF4y2Ba

终止公差gydF4y2BaxgydF4y2Ba,为正标量。默认值为gydF4y2Ba1的军医gydF4y2Ba.看到gydF4y2Ba公差和停止标准gydF4y2Ba.gydF4y2Ba

为gydF4y2BaoptimsetgydF4y2Ba,名字是gydF4y2BaTolXgydF4y2Ba.看到gydF4y2Ba当前和遗留选项名称gydF4y2Ba.gydF4y2Ba

TolConSQPgydF4y2Ba

对内部迭代SQP约束违反的终止容差,为正标量。默认为gydF4y2Ba1 e-6gydF4y2Ba.gydF4y2Ba

TypicalXgydF4y2Ba

典型的gydF4y2BaxgydF4y2Ba值。元素的数量gydF4y2BaTypicalXgydF4y2Ba等于里面元素的个数gydF4y2Bax0gydF4y2Ba这是起点。默认值为gydF4y2Ba的(numberofvariables, 1)gydF4y2Ba.gydF4y2BafseminfgydF4y2Ba使用gydF4y2BaTypicalXgydF4y2Ba缩放有限差分进行梯度估计。gydF4y2Ba

例子:gydF4y2Baoptions = optimoptions('fseminf','PlotFcn',' optimplotval ')gydF4y2Ba

问题结构,指定为具有以下字段的结构。gydF4y2Ba

字段名gydF4y2Ba 条目gydF4y2Ba

客观的gydF4y2Ba

目标函数gydF4y2Ba

x0gydF4y2Ba

起始点gydF4y2BaxgydF4y2Ba

nthetagydF4y2Ba

半无限约束数gydF4y2Ba

seminfcongydF4y2Ba

半无限约束函数gydF4y2Ba

AineqgydF4y2Ba

线性不等式约束的矩阵gydF4y2Ba

bineqgydF4y2Ba

线性不等式约束的向量gydF4y2Ba

AeqgydF4y2Ba

矩阵的线性等式约束gydF4y2Ba

说真的gydF4y2Ba

线性等式约束的向量gydF4y2Ba
磅gydF4y2Ba 下界向量gydF4y2Ba
乌兰巴托gydF4y2Ba 上界向量gydF4y2Ba

解算器gydF4y2Ba

“fmseminf”gydF4y2Ba

选项gydF4y2Ba

创建的选项gydF4y2BaoptimoptionsgydF4y2Ba

你必须提供至少gydF4y2Ba客观的gydF4y2Ba,gydF4y2Bax0gydF4y2Ba,gydF4y2BaseminfcongydF4y2Ba,gydF4y2Ba解算器gydF4y2Ba,gydF4y2Ba选项gydF4y2Ba字段gydF4y2Ba问题gydF4y2Ba结构。gydF4y2Ba

数据类型:gydF4y2Ba结构体gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

解,作为实向量或实数组返回。的大小gydF4y2BaxgydF4y2Ba和的尺寸一样吗gydF4y2Bax0gydF4y2Ba.通常情况下,gydF4y2BaxgydF4y2Ba什么时候局部解决问题gydF4y2BaexitflaggydF4y2Ba是正的。有关解决方案质量的信息,请参见gydF4y2Ba当求解器成功时gydF4y2Ba.gydF4y2Ba

目标函数在解处的值,作为实数返回。一般来说,gydF4y2BafvalgydF4y2Ba=gydF4y2Ba有趣的(x)gydF4y2Ba.gydF4y2Ba

原因gydF4y2BafseminfgydF4y2Ba停止,以整数形式返回。gydF4y2Ba

国旗gydF4y2Ba

描述gydF4y2Ba

1gydF4y2Ba

函数收敛到一个解gydF4y2BaxgydF4y2Ba.gydF4y2Ba

4gydF4y2Ba

搜索方向的幅度小于指定公差,约束违反小于gydF4y2Ba选项。ConstraintTolerancegydF4y2Ba.gydF4y2Ba

5gydF4y2Ba

方向导数的幅度小于规定的公差,约束违反小于gydF4y2Ba选项。ConstraintTolerancegydF4y2Ba.gydF4y2Ba

0gydF4y2Ba

超过迭代次数gydF4y2Ba选项。麦克斯特ations,或者超出了函数求值的数量gydF4y2Ba选项。米axFunctionEvaluations.gydF4y2Ba

-1gydF4y2Ba

被输出函数或绘图函数停止。gydF4y2Ba

-2gydF4y2Ba

没有找到可行点。gydF4y2Ba

关于优化过程的信息,作为具有以下字段的结构返回。gydF4y2Ba

字段名gydF4y2Ba 描述gydF4y2Ba
迭代gydF4y2Ba

迭代次数gydF4y2Ba

funcCountgydF4y2Ba

函数求值的数量gydF4y2Ba

lssteplengthgydF4y2Ba

直线搜索步长相对于搜索方向的大小gydF4y2Ba

stepsizegydF4y2Ba

最终位移gydF4y2BaxgydF4y2Ba

算法gydF4y2Ba

所使用的优化算法gydF4y2Ba

constrviolationgydF4y2Ba

约束函数的最大值gydF4y2Ba

firstorderoptgydF4y2Ba

一阶最优性的度量gydF4y2Ba

消息gydF4y2Ba

退出消息gydF4y2Ba

迭代gydF4y2Ba

迭代次数gydF4y2Ba

funcCountgydF4y2Ba

函数求值的数量gydF4y2Ba

解处的拉格朗日乘法器,返回为具有以下字段的结构。gydF4y2Ba

字段名gydF4y2Ba 描述gydF4y2Ba
较低的gydF4y2Ba

对应的下界gydF4y2Ba磅gydF4y2Ba

上gydF4y2Ba

对应的上界gydF4y2Ba乌兰巴托gydF4y2Ba

ineqlingydF4y2Ba

线性不等式对应于gydF4y2Ba一个gydF4y2Ba而且gydF4y2BabgydF4y2Ba

eqlingydF4y2Ba

线性等式对应于gydF4y2BaAeqgydF4y2Ba而且gydF4y2Ba说真的gydF4y2Ba

ineqnonlingydF4y2Ba

对应的非线性不等式gydF4y2BacgydF4y2Ba在gydF4y2BaseminfcongydF4y2Ba

eqnonlingydF4y2Ba

对应于gydF4y2Ba量表信gydF4y2Ba在gydF4y2BaseminfcongydF4y2Ba

限制gydF4y2Ba

  • 要最小化的函数、约束条件和半无限约束条件必须是的连续函数gydF4y2BaxgydF4y2Ba而且gydF4y2BawgydF4y2Ba.gydF4y2Ba

  • fseminfgydF4y2Ba可能只会给出局部的解决方案。金宝搏官方网站gydF4y2Ba

算法gydF4y2Ba

fseminfgydF4y2Ba利用三次和二次插值技术估计半无限约束下的峰值。算法使用峰值形成一组提供给SQP方法的约束,如gydF4y2BafmincongydF4y2Ba函数。当约束数量发生变化时,算法将拉格朗日乘子重新分配给新的约束集。gydF4y2Ba

推荐的采样间隔计算使用插值峰值与数据集中峰值之间的差值来估计函数是需要取更多还是更少的点。该函数还通过外推曲线并将其与曲线中的其他点进行比较来评估插值的有效性。当峰值接近约束边界(即零)时,建议的采样间隔减小。gydF4y2Ba

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

方法下显示的算法和过程类型的详细信息gydF4y2Ba程序gydF4y2Ba航向时gydF4y2Ba显示gydF4y2Ba选项设置为gydF4y2Ba“通路”gydF4y2Ba与gydF4y2BaoptimoptionsgydF4y2Ba,请参阅gydF4y2BaSQP实现gydF4y2Ba.有关的详细信息gydF4y2BafseminfgydF4y2Ba算法,看到gydF4y2Bafseminf问题的公式和算法gydF4y2Ba.gydF4y2Ba

版本历史gydF4y2Ba

R2006a之前介绍gydF4y2Ba