文档帮助中心文档
结合目标和非线性约束函数
objconstr = packfcn (obj nlconst)
实例
objconstr=packfcn(obj,nlconst)结合目标函数obj非线性约束函数nlconst转化为函数objconstr. 功能objconstr(x)返回适用于组合的结构代理选择目标和约束函数。有关在代理选择结构语法和其他解算器,请参见在代理选项形式和其他解算器形式之间转换非线性约束.
objconstr=packfcn(obj,nlconst)
objconstr
obj
nlconst
objconstr(x)
代理选择
全部崩溃
结合示例中的目标和约束基于解算器求解约束非线性问题变成适合代理选择.
将目标函数创建为匿名函数活性氧(x).
活性氧(x)
活性氧=@(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2;
创建非线性约束辅助函数单位盘,显示在本例结束.保存带有名称的helper函数unitdisk.m在当前文件夹中。
单位盘
unitdisk.m
将目标约束函数和非线性约束函数组合为一个适用于代理选择.
objconstr=packfcn(ros,@unitdisk);
指定边界并使用代理选择.
lb=[-2-2];ub=-lb;[x,fval]=代理选项(objconstr,lb,ub)
代理选项已停止,因为它超出了“options.MaxFunctionEvaluations”设置的函数计算限制。
x=1×20.7822 0.6100
fval=0.0478
此代码创建单位盘辅助函数。
作用[c,ceq]=unitdisk(x)c=x(1)^2+x(2)^2-1;ceq=[];终止
目标函数,指定为函数句柄或函数名称。
结果函数objconstr包含字段Fval.
Fval
objconstr.Fval=obj
例子:@rastriginsfcn
@rastriginsfcn
数据类型:烧焦|一串|功能手柄
烧焦
一串
功能手柄
非线性约束函数,指定为函数句柄或函数名称。通常,非线性约束函数返回两个输出。
[c,ceq]=nlconst(x)
输出C是一个向量或数组,其条目表示不等式约束C(x) ≤ 0输出ceq是一个向量或数组,其条目表示不等式约束C(x) = 0.packfcn丢弃的ceq输出
C
ceq
packfcn
结果函数objconstr包含字段Ineq.
Ineq
objconstr.Ineq=c
组合目标和约束函数,作为函数句柄返回。功能objconstr(x)返回包含字段的结构Fval和Ineq.
对象约束Fval(x)目标函数是什么obj(x).
对象约束Fval(x)
obj(x)
对象约束Ineq(x)是非线性不等式约束函数c(x)的第一个输出nlconst(x).
对象约束Ineq(x)
c(x)
nlconst(x)
您拥有此示例的修改版本。是否要用编辑打开此示例?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站以获取翻译后的内容(如果可用),并查看本地活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。
联系当地办事处
现在受审