0
点赞
收藏
分享

微信扫一扫

数学规划模型matlab实现

一ke大白菜 2022-03-26 阅读 108
算法matlab

一、线性规划问题:

[x,fval,exitflag,output,lambda] = linprog(c,a,b,aeq,beq,LB,UB,X0,OPTIONS)
其中,x对应取得最优解的那组决策变量,fval返回目标函数的值,exitflag是收敛标志,取1则问题收敛,output可以显示迭代总次数和使用的算法等,lambda是问题求解中用到的拉格朗日乘子。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));
%在标准型里约束条件是<=,本题中是>=,所以需要变号:-a,-b
% x向量是使得目标函数取得最小值的那组决策变量
% fval是最小值
% [],[]是等式约束,本问题中没有
% zeros(3,1)是x向量的下限,是第三个约束条件
% 初始值和控制变量参数没写

在这里插入图片描述

c=[2;3;-5];
a=[2 -5 1];
b=10;
aeq=[1 1 1];
beq=7;
%aeq,beq 是等式约束条件
% 注意matlab标准形式
[x,fval,exitflag,output,lambda]=linprog(-c,-a,-b,aeq,beq,zeros(3,1))


二、非线性规划问题

fmincon函数
在这里插入图片描述

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);

举报

相关推荐

0 条评论