Transcript 数学建模中的软件工具
小组成员:
整体简介:周昱琪
Lingo简介:张扬帆
Mathematic简介:赵焕丽
MATLAB简介:徐凝一
数学建模中的软件工具
——科学研讨课汇报
数学工具简介
数学软件的分类
数学软件大致可分为两大类:
一类为通用型软件
一类为专用型软件
Page 3
通用型软件
数值计算型的有 Matlab, Gauss, Origin;
解析计算型的有 Maple, Mathematica;
其中Matlab、Mathematica、Maple与另一面向大
众的普及型数学软件MathCAD并称为数学软件中的
“四大天王”。
Page 4
专用型软件
专用型软件是为了解决数学中某个分支的特殊问题而
设计的,在处理某些专门的数学问题时有着独特的优
势。
处理规划和优化问题专用型软件的有
Lindo、Lingo、Cplex;
处理数据统计分析问题专用型软件的有
SPSS、SAS、SYSTAT、 Stata、 Minitab。
Page 5
数值计算型——Maple
Maple尤为擅长求解微分方程模型、图论与网络模
型及曲线(面)拟合等。
其他一些知名数学软件(如MathCAD和MATLAB等) ,
都纷纷使用它的符号计算引擎作为其符号处理的核
心,以补偿在符号推演方面的欠缺。
Page 6
解析计算型——MathCAD
MathCAD是一种交互式数值计算系统,当输入一个
数学公式、方程组、矩阵等,计算机将直接给出计
算结果,而无须去考虑中间计算过程。
同时它也可以和Word、Lotus、WPS2000等文字处理
软件很好地配合使用,可以把它当作一个出色的全屏
幕数学公式编辑器。
Page 7
处理规划和优化问题专用型软件
CPLEX 能够以最快的速度最可靠地实现基本算法,
以解决困难的数学优化问题。能提供灵活的高性能
优化程序,解决线性规划 、二次方程规划 、二次
方程约束规划和混合整型规划问题。
Lingo则是一套快速、简单与更有效率求解线性、
非线性与整合最佳化模型的完整工具,除了具有
Lindo的全部功能外,还可以用于求解非线性规划,也
可以用于一些线性和非线性方程组的求解以及代数
方程求根等。
Page 8
处理数据统计分析问题专用型软件
SPSS(Statistical Package for the Social
Science)——社会科学统计软件包,集数据录入、
资料编辑、数据管理、统计分析、报表制作、图形
绘制为一体。
统计功能囊括了《教育统计学》中所有的项目,包
括常规的集中量数和差异量数、相关分析、回归分
析、方差分析、卡方检验、t检验和非参数检验;也
包括近期发展的多元统计技术,如多元回归分析、
聚类分析、判别分析、主成分分析和因子分析等方
法,并能在屏幕(或打印机)上显示(打印)如正
态分布图、直方图、散点图等各种统计图表。
Page 9
处理数据统计分析问题专用型软件
SAS ( Statistical Analysis System) ——统计
分析系统,是一个由三十多个专用模块组成的大型
集成式软件包,具有完备的数据存取、数据管理、
数据分析和数据展现功能,尤其是创业产品—统计
分析系统部分。
SAS系统中提供的主要分析功能包括统计分析、经
济计量分析、时间序列分析、决策分析、财务分 析
和全面质量管理工具等等。
Page 10
软件小结
Matlab、Maple、Mathematica,它们的功能都十分
强大, 对在数学建模竞赛中涉及到的数学方面的问
题,利用这些软件大部分能得到很好的解决。
其次,熟悉两种专用型软件Lingo和SPSS等使得处理
数据挖掘和优化建模问题时更为轻松快捷。
Page 11
WOLFRAM MATHEMATICA
Mathematica
Mathematica是一款科学计算软件,很好地结合了
数值和符号计算引擎、图形系统、编程语言、文本
系统、和与其他应用程序的高级连接。
Page 13
Mathematica的历史
• Mathematica 1.0
1988
(美国wolfram research公司)
•Mathematica 1.2 1989
• Mathematica 2.0
•Mathematica 2.1
•Mathematica 2.2
•Mathematica 3.0
•Mathematica 4.0
Page 14
1991
1992
1993
1996
1999
Mathematica的历史
•
•
•
•
•
Page 15
Mathematica 4.1
Mathematica 4.2
Mathematica 5.0
Mathematica 5.1
Mathematica 5.2
2000
2002
2003
2004
2005
Mathematica的历史
•
•
•
•
Page 16
Mathematica 6.0
Mathematica 6.0.1
Mathematica 6.0.2
Mathematica 6.0.3
2007
2007
2008
2008
• Mathematica 7.0
2008
• Mathematica 7.0.1
2009
Mathematica的历史
•
•
•
•
•
Page 17
Mathematica 8.0
Mathematica 8.0.1
Mathematica 8.0.4
Mathematica 9.0.0
Mathematica 9.0.1
2010
2011
2011
2012
2013
Mathematica 的功能
Page 18
数值
计算
符号
运算
绘制
图形
编写
程序
Mathematica与符号运算
计算函数的极限、导数、不定积分等
Page 19
Mathematica与数值计算
计算函数值、积分值、微分方程的数值解等
Page 20
Mathematica与绘制图形
强大的绘图功能,可绘出所有常见的一元、二元函
数图形
Page 21
Mathematica与编写程序
Page 22
Mathematica的主要优势
具有高精度的数值计算功能和强大的图形功能;
简洁易用;
具有很强的渲染效果;
交互性好,能实时地得出结果。
Page 23
Mathematica的应用
数学分析型软件,科学计算软件
在科技和其它领域运用计算机
教学
学生
……
Page 24
MATLAB
MATLAB
MATLAB是MATrix LABoratory(矩阵实验室)的缩
写。
MATLAB是一款由美国The MathWorks公司出品的商
业数学软件。
MATLAB是一种用于算法开发、数据可视化、数据分
析以及数值计算的高级技术计算语言和交互式环境。
MATLAB和Mathematica、Maple并称为三大数学软
件。它在数学类科技应用软件中在数值计算方面首
屈一指。
Page 26
MATLAB的应用
MATLAB主要应用于
工程计算
控制设计
信号处理与通讯
图像处理
信号检测
金融建模设计与分析
等领域
Page 27
MATLAB的历史
1970年代末到80年代初,时任美国新墨西哥大学教
授的克里夫·莫勒尔(Cleve Moler)为了让学生更
方便地使用LINPACK及EISPACK,独立编写了第一个
版本的MATLAB。这个版本的MATLAB只能进行简单的
矩阵运算,例如矩阵转置、计算行列式和本征值,
此版本软件分发出大约两三百份。
Page 28
MATLAB的历史
1984年,杰克·李特(John N. Little)、克里
夫·莫勒尔(Cleve Moler)和斯蒂夫·班格尔特
(Steve Bangert)合作成立了MathWorks公司,正
式把MATLAB推向市场。
MATLAB最初是由莫勒尔用FORTRAN编写的,李特和班
格尔特花了约一年半的时间用C重新编写了MATLAB并
增加了一些新功能,同时,李特还开发了第一个系
统控制工具箱,其中一些代码到现在仍然在使用。
Page 29
MATLAB的功能
MATLAB可以进行:
矩阵运算
绘制函数和数据
实现算法
创建用户界面
连接其他编程语言的程序
……
Page 30
MATLAB的优势
编程简单,类似于其他语言,如C
集成度更高,扩展性更好
数学问题数值解能力强大
优秀的符号运算能力
在数学、工程领域各种“工具箱”
强大的系统仿真能力,Simulink建模
……
Page 31
MATLAB与工具箱
Matlab Main Toolbox——MATLAB主工具箱
Communication Toolbox——通讯工具箱
System Identification Toolbox——系统辨识工具箱
Higher-Order Spectral Analysis Toolbox
——高阶谱分析工具箱
Computer Vision System Toolbox----计算机视觉工具箱
Model predictive Control Toolbox
——模型预测控制工具箱
Neural Network Toolbox——神经网络工具箱
Page 32
MATLAB与工具箱
Partial Differential Toolbox——偏微分方程工具箱
Signal Processing Toolbox——信号处理工具箱
Statistics Toolbox——统计工具箱
Simulink Toolbox——动态仿真工具箱
DSP system toolbox-----DSP处理工具箱
Control System Toolbox——控制系统工具箱
Financial Toolbox——财政金融工具箱
Fuzzy Logic Toolbox——模糊逻辑工具箱
Image Processing Toolbox——图象处理工具箱
Page 33
MATLAB与工具箱
LMI Control Toolbox——线性矩阵不等式工具箱
μ-Analysis and Synthesis Toolbox——μ分析工具箱
Optimization Toolbox——优化工具箱
Robust Control Toolbox——鲁棒控制工具箱
Spline Toolbox——样条工具箱
Symbolic Math Toolbox——符号数学工具箱
Wavele Toolbox——小波工具箱
……
Page 34
MATLAB的应用
!
Page 35
MATLAB与符号运算
Page 36
MATLAB与数值计算
Page 37
MATLAB与绘制图形
Page 38
MATLAB与编写程序
Page 39
LINGO & LINDO
Lingo & Lindo
Lindo和Lingo是美国Lindo公司开发的一套专门用
于处理线性规划与非线性规划方面问题,求解最优化
问题的软件包;
其线性、非线性和整数规划求解程序已经被全世界
数千万的公司用来做最大化利润和最小化成本的分
析。
Page 41
Lingo & Lindo
Lindo(Linear, Interactive and Discrete
Optimizer)主要用于求解线性规划和二次规划问
题;
Lingo(Linear Interactive and General
Optimizer)是一套快速、简单与更有效率求解线性、
非线性与整合最佳化模型的完整工具。
Page 42
Lingo的功能
简单的模型表示
方便的数据输入和输出选择
强大的求解器
交互式模型
包括50 多个内部函数
提供了与其它数据文件(如文本文件、Excel电子表
格文件、数据库文件等)的接口
Page 43
就会耍嘴皮子
看我不吃了你
虎哥不要,伦家
马上就要讲应用
了嘛
Page 44
经典的奶制品加工问题
问题1:加工厂用牛奶生产A1、A2两种奶制品,1桶
牛奶可以在设备甲上用12小时加工成3公斤A1,或者
在设备乙上用8小时加工成4公斤A2。根据市场需求,
生产的A1、A2能全部售出,且每公斤A1获利24元,
每公斤A2获利16元。现在加工厂每天能得到50桶牛
奶的供应,每天正式工人总的劳动时间为480小时,
并且设备甲每天至多能加工100公斤A1,设备乙的加
工能力没有限制。试为该厂制定一个生产计划,使
每天获利最大。
Page 45
数学模型
设每天用x1桶牛奶生产A1 ,用x2桶牛奶生产A2
目标函数
设每天获利为z元。 x1桶牛奶可生产3x1公斤A1,
获利24*3x1,x2桶牛奶可生产4x2公斤A2,获利
16*4x2,故z=72x1+64x2
Page 46
约束条件 :
• 原料供应 生产A1、A2的原料(牛奶)总量不超过
每天的供应50桶,即 x1+x2≤50
• 劳动时间 生产A1、A2的总加工时间不超过每天正
式工人总的劳动时间480小时,即
12x1+8x2≤480
• 设备能力 A1的产量不得超过设备甲每天的加工能
力100小时,即 3x1≤100
• 非负约束
Page 47
x1、x2均不能为负值,即x1≥0,x2≥0
Max z=72x1+64x2
(1)
s.t. x1+x2≤50
(2)
12x1+8x2≤480
(3)
3x1≤100
(4)
x1≥0,x2≥0
(5)
Page 48
讨论以下问题
1)若用35元可以购买到1桶牛奶,应否作这项投资?
若投资,每天最多购买多少桶牛奶?
2)若可以聘用临时工人以增加劳动时间,付给临时
工人的工资最多是每小时几元?
3)由于市场需求变化,每公斤A1的获利增加到30元,
应否改变生产计划?
Page 49
太简单了吧!
你居然忽悠我!
没有呀虎哥
难题马上出现
接招吧!
Page 50
2000年国赛B题
Page 51
2000年国赛B题
一个钢厂如果承担制造这种钢管,至少需要生产 500 个单位。钢厂 Si 在指
定期限内能生产该钢管的最大数量为 s i 个单位,钢管出厂销价 1 单位钢管为 pi 万
元,如下表:
Page 52
i
1
2
3
4
5
6
7
si
800
800
1000
2000
2000
2000
3000
pi
160
155
155
160
155
150
160
1 单位钢管的铁路运价如下表:
里程(km)
≤300
301~350
351~400
401~450
451~500
运价(万
元)
20
23
26
29
32
里程(km)
501~600
601~700
701~800
801~900
901~1000
运价(万
元)
37
44
50
55
60
Page 53
采用Floyd算法
表1
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
Page 54
单位钢管从 Si 运输到
S1
170.7
160.3
140.2
98.6
38.0
20.5
3.1
21.2
64.2
92.0
96.0
106.0
121.2
128.0
142.0
S2
215.7
205.3
190.2
171.6
111.0
95.5
86.0
71.2
114.2
142.0
146.0
156.0
171.2
178.0
192.0
Aj
的最小运输费用(单位:万元)
S3
230.7
220.3
200.2
181.6
121.0
105.5
96.0
86.2
48.2
82.0
86.0
96.0
111.2
118.0
132.0
S4
260.7
250.3
235.2
216.6
156.0
140.5
131.0
116.2
84.2
62.0
51.0
61.0
76.2
83.0
97.0
S5
255.7
245.3
225.2
206.6
146.0
130.5
121.0
111.2
79.2
57.0
33.0
51.0
71.2
73.0
87.0
S6
265.7
255.3
235.2
216.6
156.0
140.5
131.0
121.2
84.2
62.0
51.0
45.0
26.2
11.0
28.0
S7
275.7
265.3
245.2
226.6
166.0
150.5
141.0
131.2
99.2
77.0
66.0
56.0
38.2
26.0
2.0
目标函数是总费用 W , 它包含三项: 钢管出厂总价 Q , 运输费 P , 及铺设费 T.
即
W = Q + P + T
7
15
Q pi xij
其中
i 1 j 1
铺设费 T 可以如下来确定:
用为 d 1 d 2 ... d y j d
15
故
T d
j 1
Aj
(1 y j ) y j
2
7
15
P cij xij
,
i 1 j 1
,
开始从左右两个方向铺设, y j 与 z j 单位长钢管的费
与d
(1 z j ) z j
2
1 y j y j 1 z j z j
2
2
目标函数为:
7
Page 55
15
7
15
15
min W pi xij cij xij d
i 1 j 1
i 1 j 1
j 1
1 y j y j 1 z j z j
2
2
约束条件为:
15
① 生产能力的限制:
500 ti xij si ti
j 1
, (i 1,...,7)
( j 1,...,15)
,
x
y
z
ij j j
7
② 运到 Aj 的钢管用完:
i 1
③ Aj 与 Aj-1 之间的钢管: z j yj1 bj , ( j 1,...,14)
④ 变量非负性限制: xij 0, y j 0, z j 0 , (i 1,...,7, j 1,...,15)
A
⑤ 运到 j 的钢管整数限制:
Page 56
xij N
(ti 0或1)
报告提问
参考文献
参考文献
[1]杨涤尘. 数学软件与数学建模[J]. 湖南人文科技学院学报, 2006, (6)
: 8-10.
[2]夏玉森,汪寿阳,邓小铁. 金融数学模型[J]. 中国管理科学, 1998,
6(1) : 1-8.
[3]周小川. 与适时、适度进行金融调控有关的三个数学模型[J]. 金融
研究, 2005, (1) : 1-17.
[4]廖兴. 数学建模与数学软件的应用[J]. 今日财富(金融发展与监管),
2011,(12):106,142 .
[5]刘莹. 如何在数学建模中正确发挥计算机的作用[J]. 杭州医学高等
专科学校学报, 2004, (3) : 117 – 118.
[6]许峰. 数学技术、数学实验与数学软件[J]. 淮南职业技术学院学
,2001, (1) : 103 - 105.
Page 59
参考文献
[7]叶其孝. 大学生数学建模竞赛辅导教材( 3) [M]. 长沙: 湖南教育出版社,
1998.
[8]谢兆鸿,范正森,王艮远. 数学建模技术[M]. 北京:中国水利水电出版社,
2003.
[9]姜启源,谢金星,叶俊. 数学模型(第四版) [M]. 北京:高等教育出版社, 2011.
[10]张志涌等. MATLAB教程R2012a[M]. 北京:北京航空航天大学出版社
,2010.
[11]卓金武等. MATLAB在数学建模中的应用[M]. 北京:北京航空航天大学出
版社,2011.
[12]维基百科
[13]百度百科
Page 60
谢谢观赏
Page 61