Matlab规划问题之 fmincon函数
常用来求解单决策函数的规划问题
语法:[X,FVAL] = fmincon(fun,x0,a,b,Aeq,Beq,LB,UB,nonlcon,options);
X 为最终解 , FVAL为最终解对应的函数值
注意:求最大值时,结果FVAL需要取反
fun 是定义的决策函数,通常通过M文件或者匿名函数进行定义。
*注意:当所求为最大值时,系数需要取反*
x0 为初始值
a 为约束条件中不等式组的系数矩阵 ,a的列数等于f的列数
*注意:当不等号为 > 或 ≥ 时,矩阵需要取反*
b 为约束条件中不等式组右边的值
*注意:当不等号为 > 或 ≥ 时,矩阵需要取反*
Aeq 为约束条件中等式组的系数矩阵 ,Aeq的列数等于f的列数
Beq 为约束条件中等式组右边的值
LB、UB 是解的范围
nonlcon 为定义的向量函数
options 为优化参数
例题:

matlab求解代码:
clear
close all
clc
a = [-1 1 -1
1 1 1];
b = [0 20];
aeq = [-1 -1 2
0 1 2];
beq = [0 3];
fun = @(x) x(1)^2 + x(2)^2 + x(3)^2 +8;
[x1,g1] = fmincon(fun,zeros(3,1),a,b,aeq,beq,zeros(3,1));
结果为:
x1 = [0.4292 1.2854 0.8573];
g1 = 10.5714;
例题:

代码:
clear
close all
clc
a = [1 1
1 1];
b = [3 9];
aeq = [];
beq = [];
fun = @(x) 2*x(1)^2 - 4*x(1)*x(2) + 4*x(2)^2 - 6*x(1) - 3*x(2);
[x1,g1] = fmincon(fun,zeros(2,1),a,b,aeq,beq,zeros(2,1));
结果为:
x1 = [1.95 1.05];
g1 = -11.0250;
版权声明:本文为qq_39643955原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。