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