Matlab线性规划问题求解

这篇具有很好参考价值的文章主要介绍了Matlab线性规划问题求解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

线性规划问题

本文来源于司守奎编著的数学建模算法与应用

一、两道简单例题

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

m a x    z = 4000 x 1 + 3000 x 2 s . t . { 2 x 1 + x 2 ≤ 10 x 1 + x 2 ≤ 8 x 2 ≤ 7 x 1 , x 2 > 0 max\,\,z=4000x_1+3000x_2 \\ s.t.\begin{cases} 2x_1+x_2\le 10\\ x_1+x_2\le 8\\ x_2\le 7\\ x_1,x_2>0\\ \end{cases} maxz=4000x1+3000x2s.t.2x1+x210x1+x28x27x1,x2>0
matlab代码求解
注:matlab中linprog一般是用来求最小值的,为了求本例中 4000 x 1 + 3000 x 2 4000x_1+3000x_2 4000x1+3000x2的最大值,我们可以求他相反数的最小值,即 − 4000 x 1 − 3000 x 2 -4000x_1-3000x_2 4000x13000x2的最小值,求得最小值的绝对值也就是原式的最大值。如果约束条件又大于等于的,则要改为小于等于(两边乘以负1)

f=[-4000,-3000]
a=[2,1;1,1;0,1]
b=[10;8;7]
low=zeros(2,1)
[x,y]=linprog(f,a,b,[],[],low)

Matlab线性规划问题求解

即生产2台甲机床,6台乙机床,收益最大26000元
例1.2求解下列线性规划问题:

m i n    z = 2 x 1 + 3 x 2 + x 3 s . t . { x 1 + 4 x 2 + 2 x 3 ≥ 8 3 x 1 + 2 x 2 ≥ 8 x 1 , x 2 , x 3 > 0 min\,\,z=2x_1+3x_2+x_3 \\ s.t.\begin{cases} x_1+4x_2+2x_3\ge 8\\ 3x_1+2x_2\ge 8\\ x_1,x_2,x_3>0\\ \end{cases} minz=2x1+3x2+x3s.t.x1+4x2+2x383x1+2x28x1,x2,x3>0
matlab代码

f=[2;3;1]
a=[1,4,2;3,2,0]
b=[8;6]
lb=zeros(3,1)
[x,min]=linprog(f,-a,-b,[],[],lb)

Matlab线性规划问题求解

二、带有绝对值的线性规划问题

m i n    z = ∣ x 1 ∣ + ∣ 2 x 2 ∣ + 3 ∣ x 3 ∣ + 4 ∣ x 4 ∣ s . t . { x 1 − x 2 − x 3 + x 4 ≤ − 2 x 1 − x 2 + x 3 − 3 x 4 ≤ − 1 x 1 − x 2 − 2 x 3 + 3 x 4 ≤ − 1 2 min\,\,z=\left| x_1 \right|+\left| 2x_2 \right|+3\left| x_3 \right|+4\left| x_4 \right| \\ s.t.\begin{cases} x_1-x_2-x_3+x_4\le -2\\ x_1-x_2+x_3-3x_4\le -1\\ x_1-x_2-2x_3+3x_4\le -\frac{1}{2}\\ \end{cases} minz=x1+2x2+3x3+4x4s.t.x1x2x3+x42x1x2+x33x41x1x22x3+3x421

做变量代换 u i = x i + ∣ x i ∣ 2 , v i = ∣ x i ∣ − x i 2 , i = 1 , 2 , 3 , 4 并把新变量重新排序成 一维向量 y = [ u v ] = [ u 1 , u 2 , u 3 , u 4 , v 1 , v 2 , v 3 , v 4 ] T , 则可把模型变为线性规划模型 \text{做变量代换}u_i=\frac{x_i+\left| x_i \right|}{2}\text{,}v_i=\frac{\left| x_i \right|-x_i}{2}\text{,}i=1,2,3,4\text{并把新变量重新排序成} \\ \text{一维向量}y=\left[ \begin{array}{c} u\\ v\\ \end{array} \right] =\left[ u_1,u_2,u_3,u_4,v_1,v_2,v_3,v_4 \right] ^T,\text{则可把模型变为线性规划模型} 做变量代换ui=2xi+xivi=2xixii=1,2,3,4并把新变量重新排序成一维向量y=[uv]=[u1,u2,u3,u4,v1,v2,v3,v4]T,则可把模型变为线性规划模型

c=1:4;c=[c,c]'
a=[1,-1,1,-1;1,-1,1,-3;1,-1,-2,3]
aa=[a,-a]
b=[-2;-1;-1/2]
[y,z]=linprog(c,aa,b,[],[],zeros(8,1))
x=y(1:4)-y(5:end)

Matlab线性规划问题求解
最优值z=2

投资的收益和风险

市场上有n种资产s(i=1,2,n)可以选择,现用数额为M的相当大的资金作一个时期的投资。这n种资产在这一时期内购买s的平均收益率为r;,风险损失率为q;,投资越分散,总的风险越少,总体风险可用投资的s中最大的一个风险来度量。
购买s;时要付交易费,费率为p,当购买额不超过给定值u;时,交易费按购买u;计算。另外,假定同期银行存款利率是ro,既无交易费又无风险(ro=5%)。已知n=4时相关数据如表1.1所列。

Matlab线性规划问题求解
Matlab线性规划问题求解
Matlab线性规划问题求解
Matlab线性规划问题求解
Matlab线性规划问题求解
Matlab线性规划问题求解
Matlab线性规划问题求解

clc,clear
a=0;
hold on
while a<0.05
c=[-0.05,-0.27,-0.19,-0.185,-0.185];
A=[zeros(4,1),diag([0.025,0.015,0.055,0.026])];
b =a*ones(4,1);
Aeq=[1,1.01,1.02,1.045,1.065];
beq=1;
LB=zeros(5,1);
[x,Q]=linprog(c,A,b,Aeq,beq,LB);
Q=-Q;
plot(a,Q,'*k');
a=a+0.001;
end
xlabel('a'),ylabel('Q')

Matlab线性规划问题求解
Matlab线性规划问题求解文章来源地址https://www.toymoban.com/news/detail-480286.html

到了这里,关于Matlab线性规划问题求解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# 随机法求解线性规划问题 蒙特卡洛

    线性规划问题: max=3 x1+2 x2 x1+2 x2=5 2 x1+x2=4 4 x1+3 x2=9 x1=0 x2=0 正确的结果:x1=1.5; x2=1, max z=6.5

    2024年02月13日
    浏览(25)
  • python数学建模--线性规划问题案例及求解

    本博客参考: 《python数学实验与建模》 《MATLAB数学建模经典案例实战》 m a x   z = 8 x 1 − 2 x 2 + 3 x 3 − x 4 − 2 x 5 { x 1 + x 2 + x 3 + x 4 + x 5 ≤ 400 x 1 + 2 x 2 + 2 x 3 + x 4 + 6 x 5 ≤ 800 2 x 1 + x 2 + 6 x 3 ≤ 200 x 3 + x 4 + 5 5 ≤ 200 0 ≤ x i ≤ 99 , i = 1 , 2 , 3 , 4 x 5 ≥ − 10 max z=8x_1-2x_2+3x_3-x_

    2023年04月13日
    浏览(28)
  • SAP ABAP 使用GENIOS求解线性规划问题的简单例子

    主要内容来自Operations Research ABAP ,结合我遇到的需求,做了一些修改。 需求:有BOX1和BOX2两种箱子,分别能包装不同数量的A物料和B物料,给出若干数量的A, B物料,怎样包装可以使箱子数最少? 线性规划有助于解决类似问题。 以下是一个示例程序,包含必要的注释,   运行

    2024年02月16日
    浏览(25)
  • 【MATLAB】线性规划问题中的绝对值问题

    在求解线性规划问题中碰到绝对值的情况: m i n z = ∣ x 1 ∣ + 2 ∣ x 2 ∣ + 3 ∣ x 3 ∣ + 4 ∣ x 4 ∣ , min z=|x_1|+2|x_2|+3|x_3|+4|x_4|, min z = ∣ x 1 ​ ∣ + 2∣ x 2 ​ ∣ + 3∣ x 3 ​ ∣ + 4∣ x 4 ​ ∣ , s . t . { x 1 − x 2 − x 3 + x 4 = 0 , x 1 − x 2 + x 3 − 3 x 4 = 1 , x 1 − x 2 − 2 x 3 + 3 x 4 = − 1 2

    2023年04月09日
    浏览(63)
  • 混合整数线性规划——选址问题(决策变量0-1问题)MATLAB

    问题: 某快餐连锁经营公司有7个地点(A1,A2,…,A7)可以设立快餐 店,由于地理位置因素,设立快餐店时必须满足以下要求: A1,A2,A3三个地点最多 可选两个,A4和A5至少选取一个,A6和A7至少选取一个 。已知各个地点设立快餐店 的投入和预计收益如表所示。   已知目前

    2024年02月13日
    浏览(29)
  • MATLAB---线性规划问题求最优解(含例题)

    线性规划是运筹学的基础,在现实企业经营中,如何有效的利用有限的人力、财力、物力等资源。                    为方便大家理解,这里我们直接用一个例题为大家讲解使用matlab求解线性规划问题。 根据上图给出的线性规划问题。我们使用linprog函数解线性规划需要满

    2023年04月08日
    浏览(33)
  • 27 用linprog、fmincon求 解线性规划问题(matlab程序)

    1. 简述        ① linprog函数:  求解线性规划问题,求目标函数的最小值, [x,y]= linprog(c,A,b,Aeq,beq,lb,ub) 求最大值时,c加上负号:-c ② intlinprog函数: 求解混合整数线性规划问题, [x,y]= intlinprog(c,intcon,A,b,Aeq,beq,lb,ub) 与linprog相比,多了参数intcon,代表了整数决策变量所在的位

    2024年02月14日
    浏览(24)
  • lingo软件求解线性规划举例

      缺点,数据多时不好找 当变量有成千上万个时,而关心的非零解只是极少数,在当前窗口读解很麻烦。下面是读取非零解的窗口操作步骤: (1)缩小当前解的窗口(不是关闭!); (2)把鼠标点进模型所在窗口;

    2024年02月13日
    浏览(33)
  • 使用COPT求解混合整数线性规划

    使用 from copt import * 引入模型 import coptpy as cp env = Envr() 创建优化模型,返回一个Model对象 mdl=env.ccreateModel(\\\"name\\\") 添加一个决策变量: mdl.addVar(lb=0.0, ub=COPT.INFINITY, obj=0.0, vtype=COPT.CONTINUOUS, name=\\\"\\\", column=None) Lb : 变量的下界。可选参量,默认为0.0。 Ub : 变量的上界。可选参量

    2024年02月06日
    浏览(36)
  • OR-Tools的线性规划求解器入门——调用不同求解内核

    OR-Tools因其开源、可调用其他求解器、以及强大的CP求解器,在近几年受到了工业界的广泛关注,关于OR-Tools的CP求解组件的介绍,可以参考《OR-Tools的CP-SAT求解器入门案例》,本文主要介绍OR-Tools的另一块主要的内容 Linear Solver ,在一些问题上,OR-Tools自带的求解内核 GLOP 在线

    2024年01月17日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包