赞
踩
Matlab求解线性规划问题——linprog函数:
引用博客链接侵删
[x,fval,exitflag,output,lambda] = linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)
其中,fval返回目标函数的值,exitflag是收敛标志,取1则问题收敛,output可以显示迭代总次数和使用的算法等,ambda是问题求解中用到的拉格朗日乘子。A和b矩阵对应不等式方程组,Aeq和beq矩阵对应等式方程组,LB和UB分别对应变量x的下界和上界,X0是x的初始值,OPTIONS是控制参数。

c=[2;3;1];
a=[1 4 2;3 2 0];
b=[8;6];
[x,fval]=linprog(c,-a,-b,[],[],zeros(3,1));
% x向量是使得目标函数取得最小值的那组决策变量
% fval是最小值
% [],[]是等式约束,本问题中没有
% zeros(3,1)是x向量的下限,是第三个约束条件
% 初始值和控制变量参数没写

c=[2;3;-5];
a=[2 -5 1];
b=10;
aeq=[1 1 1];
beq=7;
% 注意matlab标准形式
[x,fval,exitflag,output,lambda]=linprog(-c,-a,-b,aeq,beq,zeros(3,1))
Matlab求解非线性规划问题——fmincon函数:

其中: f1(x)=-3x1+2x2 f2(x)=4x1+3x2
x0=[1;1];
a=[2 3;2 1];
b=[18;10];
lb=[0;0];
ub=[];
x=fmincon('((-3*x(1)+2*x(2)-12)^2+(4*x(1)+3*x(2)-24)^2)^(1/2)',x0,a,b,[],[],lb,ub);
f1=-3*x(1)+2*x(2);
f2=4*x(1)+3*x(2);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。