首页 > 其他分享 >5.6

5.6

时间:2024-06-19 18:37:19浏览次数:12  
标签:5.6 Area 线性规划 求解 crop Matlab 工具箱

题目:

实验五:MATLAB最优化工具箱的使用

(1)线性规划应用案例的求解

1、基本要求

通过一个农业生产计划优化安排的实例求解,培养学生解决实际线性规划问题的初步能力;熟悉线性规划的建模过程;掌握Matlab优化工具箱中线性规划函数的调用。

2、主要内容

某村计划在100公顷的土地上种植a、b、c三种农作物。可以提供的劳力、粪肥和化肥等资源的数量,种植每公顷农作物所需这三种资源的数量,以及能够获得的利润如表所示。

种植投入产出表

 

用  工

粪肥(吨)

化肥(千克)

利润(元)

a

450

35

350

1500

b

600

25

400

1200

c

900

30

300

1800

可提供资源

63000

3300

33000

 

其中一个劳动力干一天为1个工。现在要求为该村制定一个农作物的种植计划,确定每种农作物的种植面积,使得总利润最大。

3、操作要点

(1)建立线性规划的数学模型;

(2)安装Matlab优化工具箱(Optimization Toolbox),并学习工具箱中求解线性规划的函数;

(3)利用Matlab优化工具箱解线性规划问题。

(4)运行该程序,在命令窗记录下最优解x和对应的最优值fval。

(5)按照模板撰写实验报告,要求规范整洁。

4、主要仪器设备

微机及Matlab软件

(2)二次规划应用案例的求解

1、基本要求

通过一个投资组合优化问题的实例求解,培养学生解决实际二次规划问题的初步能力;熟悉线性规划的建模过程;掌握Matlab优化工具箱中线性规划函数的调用。

2、上机主要内容

求解从一点(0,0,0)到超平面的最短距离,

其中,,。

通过建模构造二次规划问题,求解以上问题的最优解和最优值。

3、操作要点

(1)建立二次规划的数学模型;

(2)安装Matlab优化工具箱(Optimization Toolbox),并学习工具箱中求解二次规划的函数;

(3)利用Matlab优化工具箱解二次规划问题。

(4)运行该程序,在命令窗记录下最优解x和对应的最优值fval。

(5)按照模板撰写实验报告,要求规范整洁。

4、主要仪器设备

微机及Matlab软件

 代码:

1. 算法步骤

1. 算法步骤

1. 定义变量

设 x1, x2, x3 分别为 a, b, c 三种农作物的种植面积(公顷)。

 

2. 建立目标函数

目标函数是最大化总利润,可以表示为:

Z = 1500x1 + 1200x2 + 1800x3

 

3. 建立约束条件

根据题目给出的资源限制,我们可以建立以下约束条件:

 

用工限制:450x1 + 600x2 + 900x3 ≤ 63000

粪肥限制:35x1 + 25x2 + 30x3 ≤ 3300

化肥限制:350x1 + 400x2 + 300x3 ≤ 33000

种植面积限制(非负且总和为100公顷):x1, x2, x3 ≥ 0 且 x1 + x2 + x3 = 100

4. 使用MATLAB求解

在MATLAB中,我们可以使用linprog函数来求解线性规划问题。首先,我们需要将问题转化为linprog的标准形式:

 

min -Z

s.t. Ax ≤ b

Aeqx = beq

lb ≤ x ≤ ub

 

其中,A 和 b 是线性不等式约束的系数和右侧值,Aeq 和 beq 是线性等式约束的系数和右侧值,lb 和 ub 是变量的下界和上界。

 

2. 代码

% 定义目标函数的系数(注意:linprog默认求解最小化问题,所以我们取负号)

f = [-1500; -1200; -1800];

 

% 定义不等式约束的系数和右侧值

A = [450, 600, 900;

35, 25, 30;

350, 400, 300];

b = [63000; 3300; 33000];

 

% 定义等式约束的系数和右侧值(种植面积总和为100公顷)

Aeq = [1, 1, 1];

beq = 100;

 

% 定义变量的下界和上界(这里只有下界,上界可以设为inf)

lb = [0; 0; 0];

ub = [inf; inf; inf];

 

% 调用linprog函数求解

[x, fval, exitflag, output] = linprog(f, A, b, Aeq, beq, lb, ub);

 

% 输出结果

if exitflag > 0

disp('Optimal solution found.')

disp(['Profit: ', num2str(-fval)]) % 注意:取负号得到实际的最大利润

disp(['Area for crop a: ', num2str(x(1))])

disp(['Area for crop b: ', num2str(x(2))])

disp(['Area for crop c: ', num2str(x(3))])

else

disp('No feasible solution found.')

end

 

3. 结果

>> lab05

 

Optimal solution found.

 

Optimal solution found.

Profit: 162000

Area for crop a: 60

Area for crop b: 0

Area for crop c: 40

标签:5.6,Area,线性规划,求解,crop,Matlab,工具箱
From: https://www.cnblogs.com/szm123/p/18257007

相关文章

  • 5.6博客
    过完五一假了该进入学习状态了学习内容:安卓<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="m......
  • 数据结构复习笔记5.6:哈夫曼编码树
    1.前导概念1.定义:设有n个权值{w1,w2,…,wn},构造一棵有n个叶子结点的二叉树,每个叶子的权值为wi,则wpl最小的二叉树叫哈夫曼树。例子:2.结点的路径长度:从根结点到该结点的路径上的连接数3.树的路径长度:就是树的每个叶⼦结点的路径⻓度之和4.结点的带权路径⻓度:结点的路径⻓......
  • 5.6
    与小组成员讨论如何完成作业的侧边栏以及其他部分代码行量:143行学习所花时间:0.5h  packagecom.example.memosystem.activity;importandroidx.annotation.NonNull;importandroidx.appcompat.app.ActionBarDrawerToggle;importandroidx.appcompat.app.AppCompatActivity;......
  • mysql阶段03 mysql多实例, 数据库主从, mysql5.6和5.7区别, 用户管理, 权限管理
    一、mysql的多实例nginx多实例,就是配置多个配置文件mysql多实例:1.有多个配置文件2.多端口3.多个socket文件4.多个日志文件5.多个server_id1.创建多实例存放目录之前数据库已安装在/usr/local/mysql下[root@db03~]#mkdir/usr/local/{3307,3308,3309}-p2.配置......
  • 《庆余年2》第二季全集迅雷下载/BT下载[MP4/5.62GB]百度云资源
    《庆余年2》是由网络作家猫腻所著的穿越玄幻小说,是《庆余年》系列的续集。故事延续了第一部的情节,讲述了主人公林碧璨在江湖中继续谋划,与各种势力斗争,最终成为一代英雄的传奇故事,《庆余年》第二季迅雷高清版下载。 第二部的故事情节更加复杂,主角的成长历程也更加精彩。......
  • MySql5.6 关于视图访问权限问题记录
    问题描述使用zstack或root账号访问视图view3出现[root@172-26-52-170mariadb]#mysql-uzstack-pzstack.passwordzstack-e"select*fromview3"ERROR1045(28000)atline1:Accessdeniedforuser'zstack'@'localhost'(usingpassword:YES)......
  • 上周热点回顾(5.6-5.12)
    热点随笔:· 博客园商业化之路:融资做与众不同的众包平台,让开发能力成为一种服务 (博客园团队)· C#.NET体系图文概述—2024最全总结 (安木夕)· 博客园商业化之路-众包平台:从第一单看基于「开发任务」的定位 (博客园团队)· C#/.NET/.NETCore优秀项目和框架2024年4月简报......
  • 5.6
    今天对于结对作业的前端订单信息添加以及显示进行测试,因为交流问题这十天内的冲刺的进度其实我不太满意,可能是心理预期过好,我认为这个项目除了消息以及支付方面的问题,应该是可以在这十天之内解决的,因为我五一没有计划好组内的计划,在我自己后端的任务完成后就放松计划着支付方面的......
  • 力扣741 2024.5.6
    原题网址:https://leetcode.cn/problems/cherry-pickup/description/?envType=daily-question&envId=2024-05-06个人难度评价:1800分析:自然的想到分两次dp,第一次dp后修改格点值,然后进行第二次dp。这种做法是错误的:第一次dp的过程中,每次选择都对第二次dp产生后效性。明显从左上到......
  • 5.6为一个activity编写一个滚动界面的.java文件
    packagecom.example.yibaifen;importstaticandroidx.core.content.ContentProviderCompat.requireContext;importandroidx.annotation.NonNull;importandroidx.appcompat.app.AppCompatActivity;importandroidx.recyclerview.widget.DividerItemDecoration;importandro......