全国大学生数学建模竞赛赛题基本解法和特点全国大学生数学建模竞赛贵州赛区组委会一、历年全国竞赛常用基本解法•1993——2005年•93A非线性交调的频率设计拟合、规划•93B足球队排名图论、层次分析、整数规划•94A逢山开路图论、插值、动态规划•94B锁具装箱问题图论、组合数学•95A飞行管理问题非线性规划、线性规划•95B天车与冶炼炉的作业调度动态规划、排队论、图论•96A最优捕鱼策略微分方程、优化•96B节水洗衣机非线性规划•97A零件的参数设计非线性规划•97B截断切割的最优排列随机模拟、图论•98A一类投资组合问题多目标优化、非线性规划98B灾情巡视的最佳路线图论、组合优化•99A自动化车床管理随机优化、计算机模拟•99B钻井布局0-1规划、图论•00ADNA序列分类模式识别、Fisher判别、人工神经网络•00B钢管订购和运输组合优化、运输问题•01A血管三维重建曲线拟合、曲面重建•01B工交车调度问题多目标规划•02A车灯线光源的优化非线性规划•02B彩票问题单目标决策仿真模拟•03ASARS的传播微分方程、差分方程时间序列•03B露天矿生产的车辆安排整数规划、运输问题•04A奥运会临时超市网点设计统计分析、数据处理、优化•04B电力市场的输电阻塞管理数据拟合、优化05A长江水质的评价和预测统计分析、数据处理、预测•总结•数学建模竞赛常用方法和手段主要是下面几类:•1.分析类如最优捕鱼策略SARS的传播微分方程•2.运筹学图论规划等•3.数理统计统计分析、数据处理等•4.计算机模式识别、Fisher判别、人工神经网络、仿真模拟等•5.常用软件•MatlabMathematicaLingoSAS系统等•新的发展特点(05年前就已有反映)•1.对选手的计算机能力提出了更高的要求:赛题的解决依赖计算机,题目的数据较多,手工计算不能完成,如03B,某些问题需要使用计算机软件,01A。问题的数据读取需要计算机技术,如00A(大数据),01A(图象数据,图象处理的方法获得),04A(数据库数据,数据库方法,统计软件包)。计算机模拟和以算法形式给出最终结果。•2.赛题的开放性增大解法的多样性,一道赛题可用多种解法。开放性还表现在对模型假设和对数据处理上。二.基本解法运用案例•飞行管理问题•1问题•在约10,000米高空的某边长160公里的正方形区域内,经常有若干架飞机作水平飞行。区域内每架飞机的位置和速度向量均由计算机记录其数据,以便进行飞行管理。当一架欲进入该区域的飞机到达区域边缘时,记录其数据后,要立即计算并判断是否会与区域内的其它飞机发生相撞。如果发生相撞,则应计算如何调整各架(包括新进入的)飞机的飞行方向角,以避免碰撞。•现假设条件如下:1).不相撞的标准为任意两架飞机的距离大于8公里;2).飞机飞行方向角调整的幅度不应超过30度;3).所有飞机的飞行速度均为每小时800公里;4).进入该区域的飞机在到达区域边缘时,与区域内飞机的距离应在60公里以上;5).最多需考虑6架飞机;6).不必考虑飞机离开此区域后的情况。•请你对这个避免碰撞的飞行管理问题建立数学模型,列出计算步骤,对以下数据进行计算(方向角误差不超过0.01度),要求飞机飞行方向角调整的幅度尽量小。•设该区域4个顶点的坐标为(0,0),(160,0),(160,160),(0,160)。记录数据为:(注:方向角指飞行方向与x轴正向的夹角。)•3.符号说明•t表示表示时间;•xi,yi分别表示第架飞机的横纵坐标(问题中已给出);•θi表示第架飞机的飞行方向角(问题中已给出);•dij(t)表示时刻第i架飞机与第j架飞机间的距离;•表示飞机的飞行高度()。v800v•2.问题分析•此问题很容易想到以飞机调整的飞行角度平方和作为目标函数,而以每两架飞机之间的最小距离不超过8km,各飞机飞行角度调整的值不超过30°为约束条件。如此得出的是一个非线性模型,在计算上可能会复杂些,但一目了然。•4、模型的建立•由题意可知,目标函数是•约束条件为•dij(t)=?621iif20min64ijijtDd,,1,2,,6,6iijij•其中•如何求Dij?•如果求出t,则Dij可求出。•如何求t?22()((cos()cos()))ijijiijjdtxxvt2((sin()sin()))ijiijjyyvt•对上式求极值,即有•其中2()0ijddatdtb()(cos()cos())ijiijjaxx()(sin()sin())ijiijjyy2[(cos()cos())iijjbv2(sin()sin())]iijj•于是本问题的一个数学模型为•是不是就可以求解了?621min..64,1,,6,6iiijifstDijij•引入记号:•(g是由按构成的向量,在下面的程序中计算),则模型变为•其中,16,,T115(,,)Tggg64ijD,1,2,,6,ijijmin..0Tfstgvlbvub1,1,1,1,1,16Tvlb1,1,1,1,1,16Tvub•5、模型的求解•调用Matlab命令fmincon求解,先写两个M函数airfun.m和airfunco.m如下:•M函数airfun.mfunctionf=airfun(delta)f=delta*delta';M函数airfunco.m在Matlab命令窗口计算如下:deltaini=zeros(1,6);vlb=-pi*ones(1,6)/6;vub=pi*ones(1,6)/6;options=optimset('LargeScale','off');[dt,fval]=fmincon(@airfun,deltaini,[],[],[],[],vlb,vub,@airfunco,options);d1=dt*180/pi,fval=d1*d1'd1=0.00000.00002.0683-0.4896-0.00551.5611fval=6.9547三.数学建模常用软件介绍•一般来说数学建模常用的软件有四种,分别是:matlab、lingo、Mathematica和SAS,它们都可以从网上下载。•1.MATLAB是矩阵实验室(MatrixLaboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。其包括拥有数百个内部函数的主包和数十种工具包.工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.•2.lingo用于求解线性、非线性规划和二次规划等问题,其中LINGO6.0学生版最多达300个变量和150个约束的规划问题,其标准版的求解能力亦在10^4量级以上。LINGO是使建立和求解线性、非线性和整数最佳化模型更快更简单更有效率的综合工具。LINGO提供强大的语言和快速的求解引擎来阐述和求解最优化模型。•LINGO提供的所有工具和文件可使你迅速入门和上手。LINGO使用者手册有详细的功能定义。•3.Mathematica是一套整合数字以及符号运算的数学工具软件,具有高阶的演算方法和丰富的数学函数库和庞大的数学知识库。•Mathematica不但可以做数值计算,还提供最优秀的可设计的符号运算。丰富的数学函数库,可以快速的解答微积分、线性代数、微分方程、复变函数、数值分析、概率统计等等问题。•Mathematica可以绘制各专业领域专业函数图形,提供丰富的图形表示方法,结果呈现可视化。•Mathematica可编排专业的科学论文期刊,让运算与排版在同一环境下完成,提供高品质可编辑的排版公式与表格,屏幕与打印的自动最佳化排版。•4.SAS是用于决策支持的大型集成信息系统,统计分析功能是它的重要组成部分和核心功能。•其包括许多模块,如统计分析模块、绘图模块、质量控制模块、SAS/ETS(经济计量学和时间序列分析模块)、SAS/OR(运筹学模块)、SAS/FSP(快速数据处理的交互式菜单系统模块)、SAS/AF(交互式全屏幕软件应用系统模块)等等。•SAS有一个智能型绘图系统,不仅能绘各种统计图,还能绘出地图。•SAS还提供了各类概率分析函数、分位数函数、样本统计函数和随机数生成函数,使用户能方便地实现特殊统计要求。