数学建模系统学习--线性规划模型

线性规划模型

简单的线性规划模型

数学建模系统学习--线性规划模型_第1张图片

代码:

f=[-2;-3;5];
a=[-2,5,-1;1,3,1];b=[-10;12]; 
aeq=[1,1,1];
beq=7;
[x,y]=linprog(f,a,b,aeq,beq,zeros(3,1));
x,y=-y

结果:

数学建模系统学习--线性规划模型_第2张图片

可转化为线性规划的问题

目标函数不是线性函数,例:

数学建模系统学习--线性规划模型_第3张图片

数学建模系统学习--线性规划模型_第4张图片

例题

数学建模系统学习--线性规划模型_第5张图片

数学建模系统学习--线性规划模型_第6张图片

数学建模系统学习--线性规划模型_第7张图片

数学建模系统学习--线性规划模型_第8张图片

数学建模系统学习--线性规划模型_第9张图片

数学建模系统学习--线性规划模型_第10张图片

当前方案:

数学建模系统学习--线性规划模型_第11张图片

其他方案:

数学建模系统学习--线性规划模型_第12张图片

采用方案一:

数学建模系统学习--线性规划模型_第13张图片

a=0;hold on;
while a<0.05
	f=[-0.05,-0.27,-0.19,-0.185,-0.185];
	A=[zeros(4,1),diag([0.025,0.015,0.055,0.026])];
	% a是风险,在命令行窗口中输入B=zeros(5),按回车键可以看到生成了一个5*5的零矩阵;diag是对角矩阵
	b=a*ones(4,1);% ones的作用是产生全1矩阵,ones(N)是产生一个N*N的全1矩阵

	aeq=[1,1.01,1.02,1.045,1.065];
	beq=1;
	LB=zeros(5,1);
	[x,Q]=linprog(f,A,b,aeq,beq,LB);
	Q=-Q;%求最大值;
	%作图
	plot(a,Q,'*k');
	a=a+0.001;
end
%网格
grid on;
%x、y轴标记
xlabel('a');
ylabel('Q');
title('相关曲线');
hold off;
	

运行截图

数学建模系统学习--线性规划模型_第14张图片

分析:

数学建模系统学习--线性规划模型_第15张图片

你可能感兴趣的:(数学建模,matlab)