LINGO与MATLAB线性规划问题

LINGO与MATLAB线性规划问题_第1张图片
春天来了

LINGO

线性规划问题

约束条件4x+3y<=10,3x+5y<=12,x,y是整数,求z=2x+3y的最大值。

在解决这道比较简单的数学规划问题,作为高中党,可以在平面直角坐标系中完成。当然我们也能在lingo软件中轻松完成。代码如下

MODEL:
MAX=2*X+3*Y;
4*X+3*Y<10;
3*X+5*Y<12;
GIN(X);@GIN(Y);
END

运行结果如下


LINGO与MATLAB线性规划问题_第2张图片
Linggo计算运行结果

可以找到x=0,y=2满足题目要求

非线性规划问题

lingo对于非线性规划问题,给出的结果方案也是不错的,能够很好解决我们在高中所碰到的这些问题。
例如我们要解决这个问题,该如何去做呢?


LINGO与MATLAB线性规划问题_第3张图片
约束条件
MODEL:
MAX=(X-3)^2+(Y-2)^2;
X^2+Y^2-5<=0;
X+2*Y-4<=0;
X>=0;
Y>=0;
END

运行结果如下


LINGO与MATLAB线性规划问题_第4张图片
Linggo运行结果

目标函数的解是13,此时x=0,y=0.

matlab

MATLAB作为重要的数学软件,已经广泛应用与理工科的研究中,对于数学建模过程中提供计算机技术上的支持。MATLAB可以说很强大。那么关于线性规划的问题,MATLAB也是手到擒来。

线性规划

例如:某机床厂生产甲、乙两种机床,每台销售后的利润分别为 4000 元与 3000 元。
生产甲机床需用 A、B 机器加工,加工时间分别为每台 2 小时和 1 小时;生产乙机床
需用 A、B、C 三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时
数分别为 A 机器 10 小时、B 机器 8 小时和C 机器 7 小时,问该厂应生产甲、乙机床各
几台,才能使总利润最大?


LINGO与MATLAB线性规划问题_第5张图片
线性约束条件

在matlab的代码应该如下:

c=[4;3]; 
a=[2,1;1,1;0,7]; 
b=[10;8;7]; 
[x,y]=linprog(c,a,b,[],[],zeros(3,1))

非线性规划问题

matlab的实现不如lingo实现好,毕竟MATLAB是在矩阵的基础上,如果MATLAB需要实现非线性规划问题的求解,需要使用.m的文件,要求稍高一点。

总而言之,对于新手来说。解决线性规划问题,推荐使用lingo进行解决,较为快捷便利。如果是MATLAB高手,那么则考虑MATLAB。

你可能感兴趣的:(LINGO与MATLAB线性规划问题)