MATLAB解决线性规划问题需要的掌握的知识(详细)

前言:

相信大家在刚刚接触建模时都会初步了解matlab这个软件吧,其实,matlab这个软件非常的强大,它不仅在数学建模里面经常被用到,还在一些其它的科学研究里都会被用到。当然啦,功能强大,那么它所占的内存也是蛮大的,差不多有20G了吧。不过今天,我在这里就分享一下关于用matlab解决一般线性规划问题需要掌握的知识吧。

具备知识:

在看这篇文章前,你需要大概了解一些最基本的MATLAB的语法,当然啦,是最基本的,这样的话,我相信凭你高智商的大脑,在看完这篇文章后,会写出比我这篇文章更好的博客。😄😄😄

MATLAB程序结构

1.顺序结构

MATLAB程序结构最基本的结构就是顺序结构,其简单易读,容易理解.

2.循环结构

MATLAB中循环结构是有for语句和while语句的,不多说直接上图:
图1
运行程序,输出如下:
图2
while循环的结构就是
while 表达式
循环体语句组
end
如果你有一定的编程基础的话,很容易理解该语法的。

3.选择结构

 在编写程序时,往往要根据一定的条件进行一定的选择来执行不同的语句,此时,需要用到选择语句结构,其语法为:
if 表达式
 执行语句
end
 如果有3种或者3种以上选择的情况,那其语法为:
if 表达式1
 执行语句1
elseif 表达式2
 执行语句2
elseif…


else
 所有表达式为假时执行该语句
end

 据我目前的知识来看掌握上面的MATLAB程序结构基本上可以写出MATLAB代码的框架了。

MATLAB实现线性规划问题:

线性规划问题的MATLAB标准型为:
图3
当然在解决这类问题时,MATLAB专门提供了相关函数,帮助我们解决这类问题:

MATLAB函数调用:

 [x,fval]=linprog(f,A,b,Aeq,beq,lb,ub],这是我们一般调用该函数去解决一些线性规划问题,当然还有其它关于该函数的知识,如果你有兴趣想了解的话,可以私我,我发资料给你,在此我就不写出来了。
其含义为:
x表示所解出的值,是一个按列排序的矩阵,fval为目标函数值得结果,f表示目标函数中未知数的系数,A表示不等式中,位置数的系数,是一个多维数组或一维数组,b表示不等式右边的值,也是一个矩阵,Aeq表示等式中未知数的系数(矩阵),beq表示等式右边的数,lb表示未知数取值的下限,ub表示未知数取值的上限。
图4
大家来看看这一题,加深大家对该函数的理解

MATLAB代码:

f=[-2,-3,5];      %因为题中目标函数值是求最大值,二一般式是求最小值,所以提一个符号变为一般式
A=[-2,5,-1;1,3,1];   %该不等式是大于等于,而一般试是小于等于,所以提出一个符号转换为一般式
b=[-10;12];
Aeq=[1,1,1];
beq=[7];
lb=[0;0;0];
ub=[inf;inf;inf];  %inf表示正无穷大
[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)      %调用函数

运行结果:

图5
 注意!!!当然在有些题目中,可能会存在像参数Aeq等不存在,那么在调用时,我们可以用[ ]来代替Aeq,或者其它参数。

结束语:

 上述基本上给出了自己在这一方面的学习心得,当然啦,建模中线性规划不止这么简单,还有其它相关知识,上述只是一些基础的,读者在看完后还需要去了解一下其它方面的知识,比如0-1规划,整数规划等,这样你对线性规划才有一个系统的理解与掌握。创作不易,多多支持。😃😃😃

参考文献:

《MATLAB编程与最优化设计应用》

  • 30
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值