使用全球研究
或多部分
解决方案,您必须首先创建问题结构。建议使用以下方法创建问题结构:使用创建优化问题
作用。您可以手动创建结构,但这样做容易出错。
创建优化问题
作用按照以下步骤使用创建问题结构创建优化问题
作用
将目标函数定义为文件或匿名函数。有关详细信息,请参阅计算目标函数.如果你的解算器是最小二乘拟合
或解非线性最小二乘问题
,确保目标函数返回向量,而不是标量。
如果相关,请创建约束,例如边界和非线性约束函数。有关详细信息,请参阅写约束.
创建起点。例如,创建三维随机起点xstart
:
xstart=randn(3,1);
(可选)使用创建选项最佳选择
例如
选项=最佳选项(@fmincon,'Algorithm','interior-point');
进来
problem=createoptim问题(解算器,
哪里解算器
是本地解算器的名称:
对于全球研究
:“fmincon”
对于多部分
这些选择包括:
“fmincon”
“fminunc”
“lsqcurvefit”
“lsqnonlin”
有关选择的帮助,请参阅优化决策表.
使用“x0”
参数。如果初始点为xstart
,而您的解算器是铁铬镍铁合金
,您的条目现在是
problem=createOptimProblem('fmincon','x0',xstart,
在中包含目标函数的函数句柄客观的
:
problem=createOptimProblem('fmincon','x0',xstart,'目标'@奥布吉芬,
设置边界和其他适用的约束。
限制 | 名称 |
---|---|
下限 | “磅” |
上界 | “ub” |
矩阵艾奈克 关于线性不等式Aineq x ≤比内克 |
“Aineq” |
矢量比内克 关于线性不等式Aineq x ≤比内克 |
“比内克” |
矩阵Aeq 关于线性等式Aeq x =贝基 |
“Aeq” |
矢量贝基 关于线性等式Aeq x =贝基 |
“beq” |
非线性约束函数 | “非LCON” |
如果使用最小二乘拟合
局部解算器,包括输入数据和响应数据的向量,命名为“扩展数据”
和“伊达塔”
分别地
最佳实践:通过在结构上运行解算器来验证问题结构。例如,如果本地解算器为铁铬镍铁合金
:
[x,fval,eflag,output]=fmincon(问题);
创建优化问题
此示例将函数从运行解算器,受限制x1.+ 2x2.≥ 4.. 目标是
六分=4x2.– 2.1x4.+x6./3 +xy– 4Y2.+ 4Y4.. | (1) |
使用内点
算法铁铬镍铁合金
,并将起点设置为[2;3]
.
为目标函数编写函数句柄。
六分钟=@(x)(4*x(1)^2-2.1*x(1)^4+x(1)^6/3…+x(1)*x(2)-4*x(2)^2+4*x(2)^4);
编写线性约束矩阵。将约束更改为“小于”形式:
A=[-1,-2];b=-4;
创建本地选项以使用内点
算法:
opts=optimoptions(@fmincon,'Algorithm','interior-point');
使用创建问题结构创建优化问题
:
problem=createOptimProblem('fmincon',…'x0',[2;3],'objective',sixmin,'Aineq',A,'bineq',b,'options',opts)
由此产生的结构:
问题=带字段的结构:目标:@(x)(4*x(1)^2-2.1*x(1)^4+x(1)^6/3+x(1)*x(2)-4*x(2)^2+4*x(2)^4)x0:[2x1双]Aineq:[-1-2]bineq:[]4 Aeq:[]beq:[]lb:[]ub:[]非LCON:[]解算器:“fmincon”选项:[1x1最优选项.fmincon]
最佳实践:通过在结构上运行解算器来验证问题结构:
[x,fval,eflag,output]=fmincon(问题);