求半无限约束多变量非线性函数的最小值gydF4y2Ba
查找指定问题的最小值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)可以是非线性函数。向量(或矩阵)gydF4y2BaKgydF4y2Ba我gydF4y2Ba(gydF4y2BaxgydF4y2Ba,gydF4y2BawgydF4y2Ba我gydF4y2Ba)≤0gydF4y2Ba两者都是连续函数吗gydF4y2BaxgydF4y2Ba和一组额外的变量gydF4y2BawgydF4y2Ba1gydF4y2Ba,gydF4y2BawgydF4y2Ba2gydF4y2Ba、……gydF4y2BawgydF4y2BangydF4y2Ba.的变量gydF4y2BawgydF4y2Ba1gydF4y2Ba,gydF4y2BawgydF4y2Ba2gydF4y2Ba、……gydF4y2BawgydF4y2BangydF4y2Ba都是长度不超过2的向量。gydF4y2Ba
xgydF4y2Ba,gydF4y2Ba磅gydF4y2Ba,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(有趣,x0, ntheta seminfcon, A, b, Aeq,说真的,磅,乌兰巴托)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 exitflag、输出λ)= fseminf(…)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
起价gydF4y2Bax0gydF4y2Ba
求函数的最小值gydF4y2Ba有趣的gydF4y2Ba
受到gydF4y2BanthetagydF4y2Ba
中定义的半无限约束gydF4y2BaseminfcongydF4y2Ba
.gydF4y2Ba
x = fseminf(有趣,x0, ntheta seminfcon, A, b)gydF4y2Ba
也试图满足线性不等式gydF4y2Ba* x≤bgydF4y2Ba
.gydF4y2Ba
x = fseminf(有趣,x0, ntheta seminfcon, A, b, Aeq, beq)gydF4y2Ba
最小值服从线性等式gydF4y2BaAeq * x =说真的gydF4y2Ba
也集gydF4y2Ba一个= []gydF4y2Ba
和gydF4y2Bab = []gydF4y2Ba
如果不存在不平等。gydF4y2Ba
x = fseminf(有趣,x0, ntheta seminfcon, A, b, Aeq,说真的,磅,乌兰巴托)gydF4y2Ba
中的设计变量定义一组上下限gydF4y2BaxgydF4y2Ba
,所以解总是在这个范围内gydF4y2Ba磅gydF4y2Ba
≤gydF4y2BaxgydF4y2Ba
≤gydF4y2Ba乌兰巴托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 exitflag、输出λ)= fseminf(…)gydF4y2Ba
返回一个结构gydF4y2BaλgydF4y2Ba
哪个场在解处包含拉格朗日乘数gydF4y2BaxgydF4y2Ba
.gydF4y2Ba
请注意gydF4y2Ba
如果问题的指定输入边界不一致,则输出gydF4y2BaxgydF4y2Ba
是gydF4y2Bax0gydF4y2Ba
和输出gydF4y2BafvalgydF4y2Ba
是gydF4y2Ba[]gydF4y2Ba
.gydF4y2Ba
函数的输入参数gydF4y2Ba包含传入参数的一般描述gydF4y2BafseminfgydF4y2Ba
.本节提供特定于函数的详细信息gydF4y2Ba有趣的gydF4y2Ba
,gydF4y2BanthetagydF4y2Ba
,gydF4y2Ba选项gydF4y2Ba
,gydF4y2BaseminfcongydF4y2Ba
,gydF4y2Ba问题gydF4y2Ba
:gydF4y2Ba
|
要最小化的函数。gydF4y2Ba x = fseminf (@myfun x0、ntheta seminfcon)gydF4y2Ba 在哪里gydF4y2Ba 函数f = myfun(x)%计算函数在x处的值gydF4y2Ba
有趣= @ (x) sin (x " * x);gydF4y2Ba 如果的梯度gydF4y2Ba 选择= optimoptions(‘fseminf’,‘SpecifyObjectiveGradient’,真的)gydF4y2Ba 然后函数gydF4y2Ba |
|
nthetagydF4y2Ba |
半无限约束的个数。gydF4y2Ba |
|
选项gydF4y2Ba |
选项gydF4y2Ba的特定于函数的详细信息gydF4y2Ba |
|
|
计算非线性不等式约束向量的函数,gydF4y2Ba x = fseminf (@myfun x0、ntheta @myinfcon)gydF4y2Ba 在哪里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 the nonlinear equalities at x
向量或矩阵gydF4y2Ba 请注意gydF4y2Ba 因为最优化工具箱™函数只接受类型的输入gydF4y2Ba 传递额外的参数gydF4y2Ba解释如何参数化gydF4y2Ba |
|
问题gydF4y2Ba |
|
目标函数gydF4y2Ba |
|
初始点gydF4y2BaxgydF4y2Ba |
|
nthetagydF4y2Ba |
半无限约束的个数gydF4y2Ba | |
seminfcongydF4y2Ba |
半无限约束函数gydF4y2Ba | |
|
线性不等式约束的矩阵gydF4y2Ba | |
|
线性不等式约束的向量gydF4y2Ba | |
|
线性等式约束的矩阵gydF4y2Ba | |
|
线性等式约束的向量gydF4y2Ba | |
磅gydF4y2Ba |
下界向量gydF4y2Ba | |
乌兰巴托gydF4y2Ba |
上界向量gydF4y2Ba | |
|
“fseminf”gydF4y2Ba |
|
|
选择创建gydF4y2BaoptimoptionsgydF4y2Ba |
函数的输入参数gydF4y2Ba由返回的参数的一般描述gydF4y2BafseminfgydF4y2Ba
.本节提供特定于函数的详细信息gydF4y2BaexitflaggydF4y2Ba
,gydF4y2BaλgydF4y2Ba
,gydF4y2Ba输出gydF4y2Ba
:gydF4y2Ba
|
整数,标识算法终止的原因。的值如下所示gydF4y2Ba |
|
|
函数收敛到一个解gydF4y2Ba |
|
|
搜索方向的大小小于指定的公差,约束违背小于gydF4y2Ba |
|
|
方向导数的大小小于规定的公差,约束违背小于gydF4y2Ba |
|
|
超过迭代次数gydF4y2Ba |
|
|
算法由输出函数终止。gydF4y2Ba |
|
|
没有找到可行点。gydF4y2Ba |
|
|
在解处包含拉格朗日乘子的结构gydF4y2Ba |
|
较低的gydF4y2Ba |
下界gydF4y2Ba |
|
上gydF4y2Ba |
上界gydF4y2Ba |
|
ineqlingydF4y2Ba |
线性不等式gydF4y2Ba |
|
eqlingydF4y2Ba |
线性等式gydF4y2Ba |
|
ineqnonlingydF4y2Ba |
非线性不等式gydF4y2Ba |
|
eqnonlingydF4y2Ba |
非线性等式gydF4y2Ba |
|
|
结构,包含关于优化的信息。结构的域是gydF4y2Ba |
|
迭代gydF4y2Ba |
迭代次数gydF4y2Ba |
|
funcCountgydF4y2Ba |
函数计算次数gydF4y2Ba |
|
lssteplengthgydF4y2Ba |
直线搜索步骤相对于搜索方向的大小gydF4y2Ba |
|
stepsizegydF4y2Ba |
最终位移gydF4y2Ba |
|
算法gydF4y2Ba |
优化算法gydF4y2Ba |
|
constrviolationgydF4y2Ba |
约束函数的最大值gydF4y2Ba |
|
firstorderoptgydF4y2Ba |
一阶最优性的度量gydF4y2Ba |
|
消息gydF4y2Ba |
退出消息gydF4y2Ba |
使用的优化选项gydF4y2BafseminfgydF4y2Ba
.使用gydF4y2BaoptimoptionsgydF4y2Ba
设置或改变gydF4y2Ba选项gydF4y2Ba
.看到gydF4y2Ba优化选择参考gydF4y2Ba的详细信息。gydF4y2Ba
控件中缺少一些选项gydF4y2BaoptimoptionsgydF4y2Ba
显示。这些选项在下表中以斜体显示。有关详细信息,请参见gydF4y2Ba视图选项gydF4y2Ba.gydF4y2Ba
|
比较用户提供的导数(目标或约束的梯度)和有限差分的导数。的选择是gydF4y2Ba 为gydF4y2Ba |
ConstraintTolerancegydF4y2Ba |
约束违背的终止容限,一个正标量。默认值是gydF4y2Ba 为gydF4y2Ba |
诊断gydF4y2Ba | 显示关于要最小化或解决的函数的诊断信息。的选择是gydF4y2Ba |
DiffMaxChangegydF4y2Ba | 有限差分梯度(正标量)变量的最大变化量。默认值是gydF4y2Ba |
DiffMinChangegydF4y2Ba | 有限差分梯度(正标量)变量变化的最小值。默认值是gydF4y2Ba |
显示gydF4y2Ba |
显示水平(见gydF4y2Ba迭代显示gydF4y2Ba):gydF4y2Ba
|
FiniteDifferenceStepSizegydF4y2Ba |
有限差分的标量或向量步长因子。当您设置gydF4y2Ba
符号“(x) =符号(x)gydF4y2Ba 除了gydF4y2Ba标志' (0)= 1gydF4y2Ba .中心有限差分是gydF4y2Ba
FiniteDifferenceStepSizegydF4y2Ba 展开成一个向量。默认值是gydF4y2Basqrt (eps)gydF4y2Ba 对于正向有限差分,和gydF4y2Baeps ^ (1/3)gydF4y2Ba 对于中心有限差分。gydF4y2Ba为gydF4y2Ba |
FiniteDifferenceTypegydF4y2Ba |
用于估计梯度的有限差分是gydF4y2Ba 该算法在估计两种类型的有限差分时小心地遵守边界。例如,它可以取一个向后的,而不是向前的,差异,以避免在边界外的点计算。gydF4y2Ba 为gydF4y2Ba |
FunctionTolerancegydF4y2Ba |
函数值的终止容限,一个正标量。默认值是gydF4y2Ba 为gydF4y2Ba |
FunValCheckgydF4y2Ba | 检查目标函数和约束值是否有效。gydF4y2Ba |
MaxFunctionEvaluationsgydF4y2Ba |
允许的函数求值的最大数目,一个正整数。默认值是gydF4y2Ba 为gydF4y2Ba |
MaxIterationsgydF4y2Ba |
允许的最大迭代次数,一个正整数。默认值是gydF4y2Ba 为gydF4y2Ba |
MaxSQPItergydF4y2Ba | 允许的最大SQP迭代次数,一个正整数。默认值是gydF4y2Ba |
OptimalityTolerancegydF4y2Ba |
一阶最优性的终止容限(正标量)。默认值是gydF4y2Ba 为gydF4y2Ba |
OutputFcngydF4y2Ba |
指定优化函数在每次迭代时调用的一个或多个用户定义函数。传递一个函数句柄或函数句柄的单元格数组。默认为none (gydF4y2Ba |
PlotFcngydF4y2Ba |
绘制算法执行时的各种进度度量;从预定义的情节中选择或编写您自己的。传递名称、函数句柄或由名称或函数句柄组成的单元格数组。对于定制的绘图函数,传递函数句柄。默认为none (gydF4y2Ba
自定义绘图函数使用与输出函数相同的语法。看到gydF4y2Ba优化工具箱的输出函数gydF4y2Ba和gydF4y2Ba输出函数和绘图函数语法gydF4y2Ba.gydF4y2Ba 为gydF4y2Ba |
RelLineSrchBndgydF4y2Ba | 直线搜索步长上的相对界(一个实非负标量值),使总位移在gydF4y2Ba |
RelLineSrchBndDurationgydF4y2Ba | 中指定的边界所对应的迭代次数gydF4y2Ba |
SpecifyObjectiveGradientgydF4y2Ba |
由用户定义的目标函数的梯度。参见前面的描述gydF4y2Ba 为gydF4y2Ba |
StepTolerancegydF4y2Ba |
终止上公差gydF4y2Ba 为gydF4y2Ba |
TolConSQPgydF4y2Ba | 内迭代SQP约束违背的终止容忍,一个正标量。默认值是gydF4y2Ba |
TypicalXgydF4y2Ba |
典型的gydF4y2Ba |
优化程序gydF4y2BafseminfgydF4y2Ba
可能会改变建议的采样间隔,gydF4y2Ba年代gydF4y2Ba
,设置在gydF4y2BaseminfcongydF4y2Ba
,因为对于效率或鲁棒性而言,建议间隔以外的值可能更合适。还有有限区域gydF4y2BawgydF4y2Ba我gydF4y2Ba,而gydF4y2BaKgydF4y2Ba我gydF4y2Ba(gydF4y2BaxgydF4y2Ba,gydF4y2BawgydF4y2Ba我gydF4y2Ba)gydF4y2Ba,在优化过程中允许变化,前提是它不会导致局部最小值的数量发生显著变化gydF4y2BaKgydF4y2Ba我gydF4y2Ba(gydF4y2BaxgydF4y2Ba,gydF4y2BawgydF4y2Ba我gydF4y2Ba)gydF4y2Ba.gydF4y2Ba
要最小化的函数、约束条件和半无限约束条件,必须是连续的函数gydF4y2BaxgydF4y2Ba
和gydF4y2BawgydF4y2Ba
.gydF4y2BafseminfgydF4y2Ba
可能只给出局部解决方案。万博 尤文图斯gydF4y2Ba
当问题不可行时,gydF4y2BafseminfgydF4y2Ba
尝试最小化最大约束值。gydF4y2Ba
fseminfgydF4y2Ba
使用三次和二次插值技术来估计半无限约束中的峰值。中的峰值用于形成一组提供给SQP方法的约束gydF4y2BafmincongydF4y2Ba
函数。当约束的数量发生变化时,拉格朗日乘子被重新分配到新的约束集。gydF4y2Ba
推荐的采样间隔计算使用插值的峰值与数据集中出现的峰值之间的差值来估计函数是否需要更多或更少的点。该函数还通过外推曲线并将其与曲线中的其他点进行比较来评估插值的有效性。当峰值接近约束边界,即为零时,建议的采样间隔减小。gydF4y2Ba
有关所使用的算法和显示的程序类型的详细信息gydF4y2Ba程序gydF4y2Ba
标题的时候gydF4y2Ba显示gydF4y2Ba
选项设置为gydF4y2Ba“通路”gydF4y2Ba
与gydF4y2BaoptimoptionsgydF4y2Ba
,看到也gydF4y2BaSQP实现gydF4y2Ba.有关的详细资料gydF4y2BafseminfgydF4y2Ba
算法,看到gydF4y2Ba问题的表述和算法gydF4y2Ba.gydF4y2Ba