数学实验第三版(主编:李继成 赵小艳)课后练习答案(九)(1)(2)

实验九:线性函数极值求解

练习一

1.求解线性规划问题:

(1)max z=3+,s.t.

clc;clear;
%采用软件解法
c=[-3,-1];
a=[-1,1;1,-2;3,2];
b=[2;2;14];
[x,min]=linprog(c,a,b)

找到最优解。

x =

     4

     1

min =

   -13

题上要求的是最大值,则当x=4,1,时,有最大值13;

(2)min

 

clc;clear;
%采用软件解法
c=[3,1,-1];
a=[-1,-1,2;-1,2,-1];
b=[-2,-2];
aeq=[3,2,-1];
beq=[14];
l=[0;0;0];
u=[];
[x,min]=linprog(c,a,b,aeq,beq,l,u)

找到最优解。

x =

     4

     2

     2

min =

    12

2.某车间有甲、乙、丙三台车床可用于加工三种零件,这三台车床可用于工作的最多时间分别为700h,800h900h,需要加工的三种零件的数量分别为300,400500.不同车床加工不同的零件所用时间和费用如表9.2所示,在完成任务的前提下,如何分配加工任务,才能使加工费最少?

表9.2 工时数分配表

车床

名称

加工单位零件所需时数

加工单位零件所需费用

可用于工作的时数

零件1

零件2

零件3

零件1

零件2

零件3

0.6

0.5

0.5

7

8

8

700

0.4

0.7

0.5

8

7

8

800

0.8

0.6

0.6

7

9

8

900

clc;clear;
%采用软件解法
c=[7,8,8,8,7,8,7,9,8];
a=[0.6,0.5,0.5,zeros(1,6);
    zeros(1,3),0.4,0.7,0.5,zeros(1,3);
    zeros(1,6),0.8,0.6,0.6];
b=[700;800;900];
aeq=[1,0,0,1,0,0,1,0,0;
   0,1,0,0,1,0,0,1,0;
   0,0,1,0,0,1,0,0,1];
beq=[300;400;500];
l=[0;0;0;0;0;0;0;0;0];
u=[];
[x,min]=linprog(c,a,b,aeq,beq,l,u)

找到最优解。

x =

     0

     0

     0

     0

   400

   500

   300

     0

     0

min =

        8900

所以,让乙生产400件零件2500件零件3,让丙生产300件零件1,这样分配加工费最少。

3.某工厂利用甲、乙两种原料生产A1, A2A3三种产品,每月可供应的原料数量(单位:t)、每万件产品所需各种原料的数量及每万件产品的价格如表9.3所示:

表9.3 原料价格表

原料

每万件产品所需原料/t

每月原料可供应量/t

A1

A2

A3

4

3

1

180

2

6

3

200

价格/(万元·)

12

5

4

应如何制订每月的最优生产计划,使得总收益最大?

我们设甲造, 为x1x2,x3,乙造为x4,x5,x6;

clc;clear;
%采用软件解法
c=-[12,5,4,12,5,4];
a=[4,3,1,zeros(1,3);
    zeros(1,3),2,6,3];
b=[180;200];
aeq=[];
beq=[];
l=[zeros(1,6)];
u=[];
[x,min]=linprog(c,a,b,aeq,beq,l,u)

找到最优解。

x =

     0

     0

   180

   100

     0

     0

min =

       -1920

则甲生产180万件 ,乙生产100万件 时收益最大,收益为1920万元。

4.某棉纺厂的原棉需从仓库运送到各车间,各车间原棉需求量、单位产品从各仓库运往各车间运输费以及各仓库的库存容量如表9.4所列,问如何安排运输任务使得总运费最小?

表9.4 需求量、运输费和库存容量情况表

运输费

车间

仓库容量

1

2

3

仓库

1

2

1

3

50

2

2

2

4

30

3

3

4

2

10

需求量

40

15

35

我们设1仓库往1车间运x1,往二车间运x2,以此类推……

clc;clear;
%采用软件解法
c=[2,1,3,2,2,4,3,4,2];
a=[];
b=[];m=zeros(1,3);
aeq=[1,0,0,1,0,0,1,0,0;
     0,1,0,0,1,0,0,1,0;
      0,0,1,0,0,1,0,0,1;
      1,1,1,m,m;
      m,1,1,1,m;
      m,m,1,1,1];
beq=[40,15,35,50,30,10];
l=[zeros(1,9)];
u=[];
[x,min]=linprog(c,a,b,aeq,beq,l,u)

找到最优解。

x =

    10

    15

    25

    30

     0

     0

     0

     0

    10

min =

   190

当x取以上值时,运费最少,为190。

练习二

1.某单位有300万元可用于投资,共有6个项目可供选择,其投资额(单位:万元)分别为40,6080,50,90,70,预计三年后可获利润(单位:万元)分别为10,12,15,11,16,13,试确定一种投资方案可使得三年后获得的利润最大.

clc;clear;
%采用软件解法,0-1规划问题
c=-[10,12,15,11,16,13];
a=[];
b=[];
aeq=[40,60,80,50,90,70];
beq=[300];
l=[zeros(1,6)];
u=[ones(1,6)];
z=1:6;
[x,min]=intlinprog(c,z,a,b,aeq,beq,l,u);
x,z=-min

x =

     1

     1

     1

     1

     0

     1

z=

61

选择投资一、二、三、四、六这几个项目三年后获得的利润最大,可获得61万元。

2.某校学生在大学三年级第一学期必须要选修的课程(必修课)只有一门(2个学分);可供限定选修的课程有8门,任意选修课程有10门.由于一些课程之间互有联系,所以可能在选修某门课程时必须同时选修其他课程,这18门课程的学分数和要求同时选修课程的相应信息如表9.8所示。

表9,8 课程信息表

限定选修课

课号

1

2

3

4

5

6

7

8

学分

5

5

4

4

3

3

3

2

选课要求

1

2

任意选修课

课号

9

10

11

12

13

14

15

16

17

18

学分

3

3

3

2

2

2

1

1

1

1

选课要求

8

6

4

5

7

6

按学校规定,每个学生每学期选修的总学分不能少于21学分,因此,学生必须在上述18门课程中至少选修19学分,学校同时还规定学生每学期选修任意选修课的学分不能少于3学分,也不能超过6学分,为了达到学校的要求,试为该学生确定一种选课方案.

clc;clear;
c=[5,5,4,4,8,3,8,2,5,6,7,5,5,5,1,1,1,1];
a=[-c;zeros(1,8),5,6,7,5,5,5,1,1,1,1;zeros(1,8),-5,-6,-7,-5,-5,-5,-1,-1,-1,-1];
b=[-19;6;-3];
aeq=[];beq=[];
u=[ones(18,1)];
l=[zeros(18,1)];
z=1:18;
[x,min]=intlinprog(c,z,a,b,aeq,beq,l,u)

LP:                Optimal objective value is 19.000000.                                           

Heuristics:        Found 1 solution using ZI round.                                                

                   Upper bound is 21.000000.                                                       

                   Relative gap is 9.09%.                                                         

Cut Generation:    Applied 1 cover cut.                                                            

                   Lower bound is 19.000000.                                                       

                   Relative gap is 9.09%.                                                         

Heuristics:        Found 1 solution using total rounding.                                          

                   Upper bound is 19.000000.                                                       

                   Relative gap is 0.00%.                                                         

找到最优解。

Intlinprog 在根节点处停止,因为目标值在最优值的间隙容差范围内,options.AbsoluteGapTolerance = 0。intcon 变量是

容差范围内的整数,options.IntegerTolerance = 1e-05。

x =

     1

     1

     1

     0

     0

     0

     0

     1

     0

     0

     0

     0

     0

     0

     1

     1

     0

     1

min =

    19

由此我们可以得知,选择1,2,3,8,15,16,18课程即可,而且此时刚好达到要求19学分。

3.比较示例8中的两种方法,为什么会产生两种不同的结果?你对此两种算法有何认识?考虑怎样改进贪婪算法,既能提高运算速度,又保证一定能够找到最优解?

两种算法结果不一样的原因很简单:第一种是正确答案,第二种是利用价值密度去求最大值

而在实际情形中,物品是不能装一半或三分之一之类的,只能整个装下或不装,这样我们用第二种方法求得的结果只是在最佳答案附近,并不能保证一定是最佳答案。

认识:第一种算法虽然笨拙但有效,如果不考虑时间问题,我们保证一定可以寻到最优解,而且适用于任何问题。第二种算法针对本题是“弄巧成拙”,其适用范围仅仅在可割裂的物品上,如:水,小米,沙子,水泥等等。

改进:至于如何改进贪婪算法,不同的题目我们会有不同的解决办法。就针对本题而言,我们其实可以加上一些欠缺的考虑,如:找出能够最大限度的利用空间的选择组合,与贪婪算法的结果进行比较然后综合得出最佳答案。(我感觉贪婪算法的改进其实就是加上了一部分枚举法,然后让答案相对比较完善。 当你全部选择了枚举法之后,这个算法就优化到了%100,但是时间的消耗就变大了,所以改进其实就是在两者之间做出一个平衡的选择,仅个人见解)

4.某医院每日至少需要护士值班人数如表9.9所示,

表9.9 值班护士的人数

班次

时间段

人数

班次

时间段

人数

1

6:00-10:00

60

4

18:00-22:00

50

2

10:00-14:00

70

5

22:00-2:00

20

3

14:00-18:00

60

6

2:00-6:00

30

每班的护士在值班开始时向病房报到,连续工作8h,医院至少需要多少护士才能满足值班要求?

clc;clear;
c=[ones(1,6)];
a=-[1,0,0,0,0,1
    1,1,0,0,0,0
    0,1,1,0,0,0
    0,0,1,1,0,0
    0,0,0,1,1,0
    0,0,0,0,1,1];
b=-[60,70,60,50,20,30];
aeq=[];beq=[];
u=[];
l=[zeros(6,1)];
z=1:6;
[x,min]=intlinprog(c,z,a,b,aeq,beq,l,u)

x =

    60

    10

    50

     0

    30

     0

min =

   150

医院至少需要150名护士才能满足值班需求。

5.某厂要求每日8小时的产量不低于1800件,为了便于进行质量控制,计划聘请两种不同水平的检验员,一级检验员的标准为25件/h,正确率98%,计时工资40元/h;二级检验员的标准为15件h,正确率95%,计时工资30元/h;检验员每检错一次,工厂要损失20元.为使总检验费用最省,该工厂应聘一级、二级检验员各几名?

clc;clear;
c=[400,360];
a=-[200,120];
b=[-1800];
aeq=[];beq=[];
u=[9;15];
l=[zeros(2,1)];
z=1:2;
[x,min]=intlinprog(c,z,a,b,aeq,beq,l,u)

则需聘请九名一级检验人员。

6.某校篮球队拟从以下6名预备队员中选拔3名作为正式队员,并使队员平均身高尽可能高,这6名预备队员情况如表9.10所示

表9.10 预备队员情况

号码

预备队员

身高/cm

位置

1

小张

193

中锋

2

小李

191

中锋

3

小王

187

前锋

4

小赵

186

前锋

5

小田

180

后卫

6

小周

185

后卫

队员的挑选要满足:(1)至少补充一名后卫队员;(2)小李或小田中间只能入选一名;(3)最多补充一名中锋;(4)如果小李或小赵入选,小周就不能人选,问应如何挑选队员?

clc;clear;
c=-1/3*[193,191,187,186,180,185];
a=[1,1,0,0,0,0
    0,0,0,0,-1,-1
    0,1,0,0,1,0
    0,1,0,1,0,1];
b=[1;-1;1;2];
aeq=[ones(1,6)];
beq=[3];
u=[ones(6,1)];
l=[zeros(6,1)];
z=1:6;
[x,min]=intlinprog(c,z,a,b,aeq,beq,l,u)

x =

     1

     0

     1

     0

     0

     1

min =

 -188.3333

选择小张、小王、小周即可。

推荐下一篇文章:

数学实验第三版(主编:李继成 赵小艳)课后练习答案(九)(3)icon-default.png?t=N7T8https://blog.csdn.net/2301_80199493/article/details/136113244?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136113244%22%2C%22source%22%3A%222301_80199493%22%7D

本文由作者自创,由于时间原因,难免出现些许错误,还请大家多多指正。创作不易,请大家多多支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/387101.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【从零到Offer】MySQL最左匹配

前言 ​ 相信大家在日常开发时,也经常能听到“最左匹配”这个词,那么什么是最左匹配呢?本篇文章就带你一起探索“最左匹配”的神奇秘密。 什么是最左匹配 ​ 最左匹配,通常指的是最左前缀匹配原则,即MySQL在检索数据…

c++ Qt 数据库操作

1、准备工作 Qt本身并没有数据库功能,但是Qt支持调用其他主流的数据库产品,并且这些数据库产品统一了Qt的接口,实际上是一种数据库的中间件。 Qt支持以下数据库类型: 嵌入式常用的数据库是sqlite3,本体只有几兆大小。非…

UnityShader玉石效果

效果: 代码: Shader "MyShader/Jade" {Properties{_DiffuseColor("漫反射颜色",color)(1,1,1,1)_ThicknessMap("厚度图",2d)"white"{}_AddColor("叠加颜色",color)(1,1,1,1)_CubeMap("环境贴图…

java实现多级目录树(递归实现)

一.应用场景 有时候需要我们后台给前台传树结构的数据,要怎么查询? 怎么返回数据呢? 二.数据库表设计以及数据内容(以部门举例) id 主键 parent_id 父级部门id depart_name 部门名词 sort 部门排序三.实体类 Data public…

Qt 软件封装与打包

1. Qt 软件封装 1、首先以 release 方式进行编译,将生成的 CloudOne.exe 文件复制到 D:\CloudApp 文件夹(自行创建) 2、打开 Qt 命令行工具(如下图所示),并按顺序输入如下指令 cd D:\CloudApp windeployq…

Spring Boot 笔记 019 创建接口_文件上传

1.1 创建阿里OSS bucket OSS Java SDK 兼容性和示例代码_对象存储(OSS)-阿里云帮助中心 (aliyun.com) 1.2 编写工具类 package com.geji.utils;import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun…

每日一题——数字翻转

题目; 这道题看似是很简单的回文数 实则就是很简单的回文数 但是需要注意的一点是负数 可以在开头就进行判断&#xff0c;如果N<0的话就令N-N&#xff0c;将所有数都转成正数就好办了 上代码&#xff1a; #include <iostream> #include<string> #include<…

算法沉淀——哈希算法(leetcode真题剖析)

算法沉淀——哈希算法 01.两数之和02.判定是否互为字符重排03.存在重复元素04.存在重复元素 II05.字母异位词分组 哈希算法&#xff08;Hash Algorithm&#xff09;是一种将任意长度的输入&#xff08;也称为消息&#xff09;映射为固定长度的输出的算法。这个输出通常称为哈希…

Spring Security学习(四)——登陆认证(包括自定义登录页)

前言 和前面的文章隔了很长时间才更新Spring Security系列&#xff0c;主要原因一个是之前太忙了&#xff0c;把项目都忙完了&#xff0c;赶上春节假期&#xff0c;就慢慢研究。Spring Security的体系非常复杂&#xff0c;一口吃不了热豆腐&#xff0c;没办法速成&#xff0c;…

微服务—ES数据同步

目录 数据同步 问题分析 方案1. 同步调用 方案2. 异步通知 方案3. 监听binlog​编辑 各方案对比 案例——利用MQ实现数据同步 步骤1. 导入hotel-admin项目 步骤2. 声明交换机、队列 步骤3. 发送MQ消息 步骤4. 接收MQ消息 步骤5. 测试同步功能 数据同步 elasticsea…

八、键盘响应

之前博文格式已经固定&#xff0c;这里就不在赘述了&#xff0c;直接把核心代码进行解释一下即可&#xff0c;仅作为小笔记而已 项目实现功能&#xff1a; 按下键盘0&#xff0c;显示原始图像 按下键盘1&#xff0c;显示原始图像的灰度图 按下键盘2&#xff0c;显示原始图像的…

Python-To-Do-List

今天跟着油管学习创建了简单的代办事项列表应用程序&#xff0c;使用了python的tkinter库来制作图形用户界面&#xff08;GUI&#xff09; 1. 导入tkinter库 python Copy code import tkinter from tkinter import * 这两行导入了tkinter模块&#xff0c;它是Python的标准GUI库…

六、Redis之数据持久化及高频面试题

6.1 数据持久化 官网文档地址&#xff1a;https://redis.io/docs/manual/persistence/ Redis提供了主要提供了 2 种不同形式的持久化方式&#xff1a; RDB&#xff08;Redis数据库&#xff09;&#xff1a;RDB 持久性以指定的时间间隔执行数据集的时间点快照。AOF&#xff0…

django CBV 与 DRF APIView源码分析

django CBV源码分析 在django框架中&#xff0c;视图层中的逻辑即可以使用函数处理也可以使用类进行处理&#xff0c;如果在视图层中使用函数处理请求&#xff0c;就是FBV(function base views)&#xff0c;如果在视图层中使用类处理请求&#xff0c;就是CBV(class base views…

微信,支付宝在线换钱平台系统源码

探索全新、全开源的在线换钱系统源码&#xff0c;它将以前所未有的方式改变您的支付体验。我们为您精心打造了一个集简单易用与安全高效于一身的优质产品&#xff0c;它采用最新的技术开发&#xff0c;为您带来前所未有的便捷与安心。 这款在线换钱系统源码设计直观&#xff0…

【大数据Hive】hive 表设计常用优化策略

目录 一、前言 二、hive 普通表查询原理 2.1 操作演示说明 2.1.1 创建一张表&#xff0c;并加载数据 2.1.2 统计3月24号的登录人数 2.1.3 查询原理过程总结 2.2 普通表结构带来的问题 三、hive分区表设计 3.1 区表结构 - 分区设计思想 3.2 操作演示 3.2.1 创建分区表…

每日一题(数字颠倒,单词倒排)

数字颠倒_牛客题霸_牛客网 (nowcoder.com) #include <stdio.h>int main() {char arr[100];gets(arr);int lenstrlen(arr);for(int ilen-1;i>0;i--){printf("%c",arr[i]);}return 0; } 单词倒排_牛客题霸_牛客网 (nowcoder.com) #include <stdio.h> #…

《Java 简易速速上手小册》第4章:Java 中的异常处理(2024 最新版)

文章目录 4.1 异常类型和错误 - 遇见你的小怪兽4.1.1 基础知识4.1.2 重点案例&#xff1a;文件读取处理4.1.3 拓展案例 1&#xff1a;处理空指针异常4.1.4 拓展案例 2&#xff1a;捕获多个异常 4.2 异常处理机制 - 穿上你的超级英雄斗篷4.2.1 基础知识4.2.2 重点案例&#xff1…

Vuex 模块的详解

Vuex 模块是将 store 分割成多个模块的一种方式&#xff0c;每个模块都有自己的状态、mutations、actions 和 getters。这有助于更好地组织和管理应用程序的状态。 创建模块&#xff1a; 首先&#xff0c;需要创建一个模块。可以在 store 中定义一个新的模块对象&#xff0c…

python小项目----多重剪切板

代码&#xff1a; import shelve,pyperclip,sysimport mcbmcbShelfshelve.open(mcb)# 保存剪切板内容 if len(sys.argv)3 and sys.argv[1].lower()save:#剪切板的内容保存到第三个参数中mcbShelf[sys.argv[2]]pyperclip.paste()print("你的剪切板中的内容将被保存到mcbSh…