matlab中linprog函数解线性规划方程

您所在的位置:网站首页 linprog函数求最大值还是最小值 matlab中linprog函数解线性规划方程

matlab中linprog函数解线性规划方程

2023-08-16 11:24| 来源: 网络整理| 查看: 265

线性规划问题,建立线性规划问题模型的基本步骤:

一、明确目标

二、确定问题的决策变量

三、构建目标函数

四、确定约束条件

建立好线性规划方程之后,紧接着而来的就是如何解方程,我们使用 matlab中的 linprog函数来求解:

x=linprog(c,A,b,Aeq,beq,lb,ub)

 

而在matlab中使用matlab 标准的格式

 

方程为:

 

\large min z=-5x$_{1}$-4x$_{4}$-6x$_{3}

 

\large s.t.=\left\{\begin{matrix} x_1-x_2+x_3\leq20 \\ 3x_1+2x_2+4x_3\leq42\\ 3x_1+2x_2\leq30\\ 0\leq x_1,0 \leq x_2,0 \leq x_3\end{matrix}\right.

 

求解的话: matlab的代码:

c = [-5 -4 -6]; A=[1 -1 1;3 2 4;3 2 0]; b=[20;42;30]; lb=zeros(3,1); [x,fval]=linprog(c,A,b,[],[],lb); disp(x); disp(fval);

结果如下:

如果求最大值则:

 

 

求该方程的代码:

Aeq=[1 1 1]; Beq=7; A=[-2 5 -1;1 3 1]; // 两边都取符号,把大于等于号改成小于等于号 b=[-10;12]; lb=zeros(3,1); x=linprog(-c,A,b,Aeq,Beq,lb); //改成-c 改符号 value=c*x; %矩阵乘法 disp(x); disp(value);

结果如下:

学会了 linprog函数 之后求线性规划问题就轻而易举了。

目标函数的最大值和最小值方法都已经讲述了,你学会了吗?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3