MATLAB函数:fmincon(非线性约束规划)
(2016-05-20 16:54:25)
标签:
徐文力fminconmatlab非线性约束约束条件 |
分类: MATLAB |
问题描述:
常用格式:
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
实例1:
Fmin=x1^2+4*x2^2-3*x2*x3+0.5*x3
其中:
3*x1+2*x2+x3<=12
2*x1+3*x2-x3<=15
-10<=x1<=10
-10<=x2<=10
-10<=x3<=10
function
f=x(1)^2+4*x(2)^2-3*x(2)*x(3)+0.5*x(3);
MATLAB主程序:
clc
clear all
A=[3,2,1;2,3,-1];
b=[12;15];
Aeq=[];
beq=[];
lb=[-10;-10;-10];
ub=[10;10;10];
x= fmincon(@(x) myfun2(x),[1;1;1],A,b,Aeq,beq,lb,ub);
结果:
x =
>> f=x(1)^2+4*x(2)^2-3*x(2)*x(3)+0.5*x(3)
f =
实例2:
Fmin=m1*x1^2+m2*x2^2
n/x1-x2<=0;
其中,m1=1;m2=2;n=1.5;
function
f
= m(1)*x(1)^2 + m(2)*x(2)^2;
function
c = n/x(1) - x(2);
ceq = [];
MATLAB主程序:
clc
clear all
m
= [1,2]; n= 1.5;
options = optimoptions('fmincon','Algorithm','interior-point');
A=[];b=[];Aeq=[];beq=[];lb=[];ub=[];
x = fmincon(@(x) myfun(x,a),[1;2],A,b,Aeq,beq,lb,ub,@(x) mycon(x,n),options)
结果:
x =
1.0299