登录
首页 » MATLAB » 数学建模十类算法.pdf

数学建模十类算法.pdf

于 2021-07-07 发布
0 628
下载积分: 1 下载次数: 16

代码说明:

数学建模竞赛中应当掌握的十类算法 董乘宇∗ (北京邮电大学,北京 100876) 1 十类常用算法 数学建模竞赛中应当掌握的十类算法: 1. 蒙特卡罗算法。该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过 模拟来检验自己模型的正确性,几乎是比赛时必用的方法。 2. 数据拟合、参数估计、插值等数据处理算法。比赛中通常会遇到大量的数据需要处理,而处理数据 的关键就在于这些算法,通常使用 MATLAB 作为工具。 3. 线性规划、整数规划、多元规划、二次规划等规划类算法。建模竞赛大多数问题属于最优化问题,很 多时候这些问题可以用数学规划算法来描述,通常使用 Lindo、Lingo 软件求解。 4. 图论算法。这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以 用这些方法解决,需要认真准备。 5. 动态规划、回溯搜索、分治算法、分支定界等计算机算法。这些算法是算法设计中比较常用的方法, 竞赛中很多场合会用到。 6. 最优化理论的三大非经典算法:模拟退火算法、神经网络算法、遗传算法。这些问题是用来解决一 些较困难的最优化问题的,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用。 7. 网格算法和穷举法。两者都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本 身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具。 8. 一些连续数据离散化方法。很多问题都是实际来的,数据可以是连续的,而计算机只能处理离散的 数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的。 9. 数值分析算法。如果在比赛中采用高级语言进行编程的话,那些数值分析中常用的算法比如方程组 求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。 10. 图象处理算法。赛题中有一类问题与图形有关,即使问题与图形无关,论文中也会需要图片来说明 问题,这些图形如何展示以及如何处理就是需要解决的问题,通常使用 MATLAB 进行处理。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。 2 十类算法的详细说明 2.1 蒙特卡罗算法 大多数建模赛题中都离不开计算机仿真,随机性模拟是非常常见的算法之一。 举个例子就是 97 年的 A 题,每个零件都有自己的标定值,也都有自己的容差等级,而求解最优的 组合方案将要面对着的是一个极其复杂的公式和 108 种容差选取方案,根本不可能去求解析解,那如何 去找到最优的方案呢?随机性模拟搜索最优方案就是其中的一种方法,在每个零件可行的区间中按照正 ∗作者简介:董乘宇,曾任 SHUMO.COM 论坛“编程交流”版版主,获 2002 年全国大学生数学建模竞赛一等奖。 第 1 期 董乘宇:数学建模竞赛中应当掌握的十类算法 13 态分布随机的选取一个标定值和选取一个容差值作为一种方案,然后通过蒙特卡罗算法仿真出大量的方 案,从中选取一个最佳的。另一个例子就是去年†的彩票第二问,要求设计一种更好的方案,首先方案的 优劣取决于很多复杂的因素,同样不可能刻画出一个模型进行求解,只能靠随机仿真模拟。 2.2 数据拟合、参数估计、插值等算法 数据拟合在很多赛题中有应用,与图形处理有关的问题很多与拟合有关系,一个例子就是 98 年美国 赛 A 题,生物组织切片的三维插值处理,94 年 A 题逢山开路,山体海拔高度的插值计算,还有吵的沸沸 扬扬可能会考的“非典”问题也要用到数据拟合算法,观察数据的走向进行处理。此类问题在 MATLAB 中有很多现成的函数可以调用,熟悉 MATLAB,这些方法都能游刃有余的用好。 2.3 规划类问题算法 竞赛中很多问题都和数学规划有关,可以说不少的模型都可以归结为一组不等式作为约束条件、几 个函数表达式作为目标函数的问题,遇到这类问题,求解就是关键了,比如 98年 B 题,用很多不等式完 全可以把问题刻画清楚,因此列举出规划后用 Lindo、Lingo 等软件来进行解决比较方便,所以还需要熟 悉这两个软件。 2.4 图论问题 98 年 B 题、00 年 B 题、95 年锁具装箱等问题体现了图论问题的重要性,这类问题算法有很多,包 括:Dijkstra、Floyd、Prim、Bellman-Ford,最大流,二分匹配等问题。每一个算法都应该实现一遍,否则 到比赛时再写就晚了。 2.5 计算机算法设计中的问题 计算机算法设计包括很多内容:动态规划、回溯搜索、分治算法、分支定界。比如 92 年 B 题用分枝 定界法,97 年 B 题是典型的动态规划问题,此外 98 年 B 题体现了分治算法。这方面问题和 ACM 程序 设计竞赛中的问题类似,推荐看一下《计算机算法设计与分析》(电子工业出版社)等与计算机算法有关 的书。 2.6 最优化理论的三大非经典算法 这十几年来最优化理论有了飞速发展,模拟退火法、神经网络、遗传算法这三类算法发展很快。近 几年的赛题越来越复杂,很多问题没有什么很好的模型可以借鉴,于是这三类算法很多时候可以派上用 场,比如:97 年 A 题的模拟退火算法,00 年 B 题的神经网络分类算法,象 01 年 B 题这种难题也可以 使用神经网络,还有美国竞赛 89 年 A 题也和 BP 算法有关系,当时是 86 年刚提出 BP 算法,89 年就考 了,说明赛题可能是当今前沿科技的抽象体现。03 年 B 题伽马刀问题也是目前研究的课题,目前算法最 佳的是遗传算法。 2.7 网格算法和穷举算法 网格算法和穷举法一样,只是网格法是连续问题的穷举。比如要求在 N 个变量情况下的最优化问 题,那么对这些变量可取的空间进行采点,比如在 [a, b] 区间内取 M 1 个点,就是 a, a (b−a)/M, a 2 · (b − a)/M, · · · , b 那么这样循环就需要进行 (M 1)N 次运算,所以计算量很大。 比如 97 年 A 题、99 年 B 题都可以用网格法搜索,这种方法最好在运算速度较快的计算机中进行, 还有要用高级语言来做,最好不要用 MATLAB 做网格,否则会算很久的。 †编者注:指 2002 年 14 数 模 2004 年 穷举法大家都熟悉,就不说了。 2.8 一些连续数据离散化的方法 大部分物理问题的编程解决,都和这种方法有一定的联系。物理问题是反映我们生活在一个连续的 世界中,计算机只能处理离散的量,所以需要对连续量进行离散处理。这种方法应用很广,而且和上面的 很多算法有关。事实上,网格算法、蒙特卡罗算法、模拟退火都用了这个思想。 2.9 数值分析算法 这类算法是针对高级语言而专门设的,如果你用的是 MATLAB、Mathematica,大可不必准备,因为 象数值分析中有很多函数一般的数学软件是具备的。 2.10 图象处理算法 01 年 A 题中需要你会读 BMP 图象、美国赛 98 年 A 题需要你知道三维插值计算,03 年 B 题要求 更高,不但需要编程计算还要进行处理,而数模论文中也有很多图片需要展

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 相位法测角(demo_phase_angle.m)
    相位法测角(demo_phase_angle.m)
    2021-05-06下载
    积分:1
  • 数值分析课程设计实践作业
    第一章  误差与范数1.1  误差的来源1.2  误差和有效数字1.3  误差估计的基本方法1.4  数值计算中应注意的问题第二章  非线性方程(组)的数值解法2.1  方程(组)的根及其MATLAB命令2.1.2  求解方程(组)的solve命令 2.1.4  求解方程(组)的fsolve命令2.2  搜索根的方法及其MATLAB程序2.2.1  作图法及其MATLAB程序2.2.2  逐步搜索法及其MATLAB程序2.3  二分法及其MATLAB程序2.3.1  二分法求方程根的迭代次数的MATLAB命令    2.3.2  二分法的MATLAB程序2.4  迭代法及其MATLAB程序2.4.2  迭代法的MATLAB程序1  2.4.5  迭代法的MATLAB程序22.5  迭代过程的加速方法及其MATLAB程序2.5.2  加权迭代的MATLAB程序2.5.4  艾特肯(Aitken)加速方法的MATLAB程序2.6  牛顿(Newton)切线法及其MATLAB程序2.6.2  牛顿切线法的收敛性及其MATLAB程序2.6.3  牛顿切线法的MATLAB程序2.6.4  求2.6.6  牛顿切线法的加速及其两种MATLAB程序2.7  割线法及其MATLAB程序2.7.2  割线法的MATLAB程序2.8  抛物线法及其MATLAB程序2.8.2  抛物线法的MATLAB程序2.9  求解非线性方程组的牛顿法及其MATLAB程序2.9.1  求解二阶非线性方程组的牛顿法及其MATLAB程序2.9.2  求解阶非线性方程组的牛顿法及其MATLAB程序2.9.3  求解阶非线性方程组的拟牛顿法及其MATLAB程序第三章  解线性方程组的直接方法3.1  方程组的逆矩阵解法及其MATLAB程序3.1.3  线性方程组有解的判定条件及其MATLAB程序3.2  三角形方程组的解法及其MATLAB程序3.2.2  解三角形方程组的MATLAB程序3.3  高斯消元法和列主元素消元法及其MATLAB程序3.3.1  高斯消元法及其MATLAB程序3.3.2  列主元素消元法及其MATLAB程序3.4 LU分解法及其MATLAB程序3.4.1  判断矩阵LU分解的充要条件及其MATLAB程序3.4.2  直接LU分解法及其MATLAB程序3.4.3  含交换阵的LU分解法及其MATLAB程序3.4.4  正定对称矩阵的Cholesky分解及其MATLAB程序3.4.5  正定对称矩阵的Cholesky分解及其MATLAB程序3.5  求解线性方程组的方法及其MATLAB实现3.5.1  求解线性方程组的Cholesky分解及其MATLAB实现3.5.2  求解线性方程组的直接分解法及其MATLAB实现3.5.3  解线性方程组的选主元的方法及其MATLAB实现3.6  误差分析及其两种MATLAB程序3.6.1  用MATLAB软件作误差分析3.6.2  求P 条件数和讨论解的性态的MATLAB程序3.6.3  用P范数讨论解和的性态的MATLAB程序第四章  解线性方程组的迭代法4.1  迭代法和敛散性及其MATLAB程序4.1.2  用谱半径判别迭代法产生的迭代序列的敛散性的MATLAB程序4.2  雅可比(Jacobi)迭代及其MATLAB程序4.2.2  判别雅可比迭代收敛性的MATLAB程序4.2.3  雅可比迭代的两种MATLAB程序4.3  高斯—塞德尔(Gauss-Seidel)迭代及其MATLAB程序    4.3.3  高斯—塞德尔迭代两种MATLAB程序4.4  解方程组的超松弛迭代法及其MATLAB程序4.4.2  超松弛迭代法收敛性及其MATLAB程序4.4.3  超松弛迭代法的MATLAB程序第五章  矩阵的特征值与特征向量的计算5.2  幂法及其MATLAB程序5.2.2  幂法的MATLAB程序5.3  反幂法和位移反幂法及其MATLAB程序5.3.3  原点位移反幂法的两种MATLAB程序5.4  雅可比(Jacobi)方法及其MATLAB程序5.4.3  雅可比方法的MATLAB程序5.5  豪斯荷尔德方法及其MATLAB程序5.5.1  豪斯荷尔德方法及其MATLAB程序5.5.2  矩阵约化为上Householder阵及其MATLAB程序5.5.3  实对称矩阵的三对角化及其MATLAB程序5.6  QR方法及其MATLAB程序5.6.2  QR方法的MATLANB程序5.6.5  最末元素位移QR法计算实对称矩阵特征值及其MATLAB程序5.6.6  求根位移QR方法计算实对称矩阵A的特征值及其MATLAB程序5.7  广义特征值问题及其MATLAB程序5.7.2  用MATLAB计算型的广义特征值和特征向量第六章  函数的插值方法6.1  插值问题及其误差6.1.2  与插值有关的MATLAB 函数6.2  拉格朗日(Lagrange)插值及其MATLAB程序6.2.1  线性插值及其MATLAB程序6.2.2  抛物线插值及其MATLAB程序6.2.3  次拉格朗日(Lagrange)插值及其MATLAB程序6.2.5  拉格朗日多项式和基函数的MATLAB程序6.2.6  拉格朗日插值及其误差估计的MATLAB程序6.3  牛顿(Newton)插值及其MATLAB程序6.3.3  牛顿插值多项式、差商和误差公式的MATLAB程序6.3.4  牛顿插值及其误差估计的MATLAB程序6.3.5  牛顿插值法的MATLAB综合程序6.4  埃尔米特(Hermite)插值及其MATLAB程序6.4.3  埃尔米特插值多项式的MATLAB程序6.5  分段插值及其MATLAB程序6.5.1  高次插值的振荡和MATLAB程序6.5.3  分段线性插值的MATLAB程序6.5.4  作有关分段线性插值图形的MATLAB程序6.5.5  用MATLAB计算有关分段线性插值的误差6.6  分段埃尔米特(Hermite)插值及其MATLAB程序6.6.2 Hermite插值的MATLAB程序6.6.3  作有关分段Hermite插值图形的MATLAB程序6.6.4  用MATLAB计算有关分段Hermite插值的误差6.7  三次样条插值及其MATLAB程序6.7.4  用一阶导数计算的几种样条函数和MATLAB程序6.7.6  用MATLAB计算三次样条6.7.7  几种作三次样条有关图像的MATLAB程序6.7.8  用MATLAB计算有关分段三次样条的误差6.8  高元插值及其MATLAB程序6.8.1  MESHGRID命令的功能和调用格式6.8.2  单调数据点上的二元插值及其MATLAB程序6.8.3  三元插值及其MATLAB程序第七章  函数逼近与曲线(面)拟合7.1  曲线拟合、误差及其MATLAB实现7.2  曲线拟合的线性最小二乘法及其MATLAB程序7.3  函数的选取及其MATLAB程序7.4  多项式拟合及其MATLAB程序7.5  拟合曲线的线性变换及其MATLAB程序7.6  函数逼近及其MATLAB程序7.7  三角多项式逼近及其MATLAB程序7.8  随机数据点上的二元拟合及其MATLAB程序7.9  随机数据点上的元拟合及其MATLAB程 第八章  数值微分8.2  一阶导数的数值计算及其MATLAB程序……………………………………1178.2.1  差商求导及其MATLAB程序8.2.2  中心差商公式求导四种MATLAB程序8.2.3 Richardson外推法求导及其MATLAB程序8.2.4  牛顿多项式求导及其MATLAB程序8.2.5 diff和gradient函数在数值求导中的应用8.3  高阶导数的数值计算及其MATLAB程序8.3.1  插值或拟合高阶数值导数及其MATLAB程序8.3.2  高阶泰勒数值导数及其MATLAB程序8.4  数值梯度和数值偏导数的计算及其MATLAB程序8.4.1  梯度和偏导数的数值计算及其MATLAB程序8.4.2  计算雅克比矩阵及其行列式的MATLAB方法第九章  数值积分9.1  积分的符号计算9.1.1  定积分的MATLAB符号计算9.1.2  变限积分的MATLAB符号计算9.2  数值积分的思想及其MATLAB程序9.2.3  矩形公式的MATLAB运算9.3  插值型数值积分及其MATLAB 程序9.3.2  梯形公式的四种MATLAB程序9.3.4  辛普生(Simpson)数值积分的MATLAB程序9.3.6  牛顿-科茨(Newton-Cotes)数值积分和误差分析的三种MATLAB程序9.3.7  利用三次样条求表格型数值积分的MATLAB方法9.3.8  利用拉格朗日插值等方法求表格型数值积分的MATLAB方法9.4  龙贝格公式及其MATLAB程序9.4.2  龙贝格积分的MATLAB程序9.5  自适应积分及其MATLAB程序9.6  高斯(Gauss)型积分公式及其MATLAB程序9.6.2  在上的高斯-- 勒让德积分公式及其MATLAB程序9.6.3  在上的高斯-- 勒让德积分公式及其MATLAB程序9.6.4 Radau和Lobatto积分公式及其MATLAB程序9.7  反常积分的计算及其MATLAB程序9.7.1  无穷积分的符号计算及其MATLAB程序9.7.2  无穷积分的近似计算及其MATLAB程序9.7.3  无界函数反常积分的符号计算的五种MATLAB程序9.7.4  无界函数反常积分的近似计算的两种MATLAB程序9.8  多重积分的计算及其MATLAB程序9.8.1  二重积分的符号计算及其MATLAB程序9.8.2  二重积分的梯形公式及其MATLAB程序9.8.3  矩形域上的辛普生公式及其MATLAB程序9.8.4  一般域上二重积分的数值计算及其MATLAB程序9.8.5  三重积分的计算及其MATLAB程序第十章  常微分方程(组)求解10.1 常微分方程(组)的MATLAB符号求解10.1.1 MATLAB求常微分方程(组)的通解10.1.2  MATLAB求常微分方程(组)的特解10.1.3  线性常微分方程组的MATLAB解法10.3  欧拉方法及其MATLAB程序10.3.2  向前欧拉方法的三种MATLAB程序10.3.4  向后欧拉方法的MATLAB程序10.4  改进的欧拉方法及其MATLAB程序10.4.2  梯形公式的两个MATLAB程序10.4.4  改进的欧拉公式的MATLAB程序10.5  龙格—库塔方法10.5.2  二阶龙格—库塔方法及其MATLAB程序10.5.3  三阶龙格—库塔方法及其MATLAB程序10.5.4  四阶龙格—库塔方法及其MATLAB程序10.5.5  自适应龙格—库塔方法及其MATLAB库函数10.6  线性多步法及其MATLAB程序10.6.2  亚当斯显式公式及其MATLAB程序10.6.3  亚当斯隐式公式及其MATLAB程序10.6.4  米尔恩公式及其MATLAB程序10.6.5  汉明公式及其MATLAB程序10.6.6  预测-校正系统及其MATLAB程序10.7  一阶(高)阶微分方程(组)的数值解及其MATLAB程序10.7.1  一阶微分方程组的数值解及其MATLAB程序10.7.2  高阶微分方程(组)的数值解及其MATLAB实现10.8  边值问题的数值解及其MATLAB程序10.8.1  打靶法及其MATLAB程序10.8.2  有限差分方法及其MATLAB程序10.8.3  求解常微分方程(组)边值问题数值解的MATLAB库函数
    2021-05-06下载
    积分:1
  • 卡尔曼用于目标角度测量(KEM_angle.m)
    卡尔曼用于目标角度测量(KEM_angle.m)
    2021-05-06下载
    积分:1
  • 400KW光伏发电组成的直流微电网系统.slx
    power_4PVarray_400kW.slx
    2021-05-06下载
    积分:1
  • 空间矢量调制在异步电机VVVF中的应用(DX20171212_BaseSPWM_VVVF.slx)
    空间矢量调制的实际应用,在VVVF控制速算法
    2020-11-28下载
    积分:1
  • 于最小网络流的解相位方法
    【实例简介】通过深度学习训练解包裹
    2021-05-18 10:32:49下载
    积分:1
  • 免疫优化算法
    【实例简介】 主要包括: 基于PSO工具箱的函数寻优算法 基于遗传算法的BP神经网络优化算法 基于遗传算法的LQR控制器优化设计 基于遗传算法的TSP算法 基于粒子群算法的PID控制器优化设计 粒子群算法的寻优算法 蚁群算法的优化计算——TSP优化 多种群遗传算法的函数优化算法 基于蚁群算法的三位路径规划算法 基于动态粒子群算法的动态环境寻优算法 免疫优化算法在物流配送中心选址中的应用 基于遗传算法和非线性规划的函数寻优算法 支持向量机的回归拟合——混凝土抗压强度预测 支持向量机分类——基于乳腺组织电阻抗特性的乳腺癌诊断 有监督学习神经网络的回归拟合——基于红外光谱的汽油辛烷值预测
    2021-07-24 00:30:56下载
    积分:1
  • AM调制解调( AM调制信号分析)
    AM调制解调
    2020-11-29下载
    积分:1
  • 贝叶斯分类器实现汉字识别(程序+样本集)
    【实例简介】
    2021-05-30 00:31:16下载
    积分:1
  • HHT(希尔伯特黄变换)
    1998年,Norden E. Huang(黄锷:中国台湾海洋学家)等人提出了经验模态分解方法,并引入了Hilbert谱的概念和Hilbert谱分析的方法,美国国家航空和宇航局(NASA)将这一方法命名为Hilbert-Huang Transform,简称HHT,即希尔伯特-黄变换。
    2021-05-06下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载