【数学建模】常用模型算法及MATLAB代码汇总 |
您所在的位置:网站首页 › 常用的数学建模常用模型 › 【数学建模】常用模型算法及MATLAB代码汇总 |
大家好,我是程序员史迪仔。 这篇文章是在大学准备数学建模比赛时,整理的学习笔记,没想到阅读量、点赞量和收藏量还是可以的,很高兴我的文章能给大家带来帮助! 一、蒙特卡洛算法二、数据拟合三、数据插值四、图论1、最短路问题(1)Dijkstra算法(2)Floyd算法 一、蒙特卡洛算法1、定义 蒙特卡洛算法是以概率和统计的理论、方法为基础的一种数值计算方法,将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解,故又称随机抽样法或统计实验法。 2、适用范围 可以较好的解决多重积分计算、微分方程求解、积分方程求解、特征值计算和非线性方程组求解等高难度和复杂的数学计算问题。 3、特点 蒙特卡洛算法可以应用在很多场合,但求的是近似解,在模拟样本越大的情况下,越接近于真实值,单样本数增加会带来计算量的大幅上升。对于一些简单问题来说,蒙特卡洛是个笨办法,但对于许多问题来说,它往往是个有效,有时甚至是唯一可行的方法。 4、举例 y = x^2 ,y = 12 - x 与 X 轴在第一象限与 X 轴围成一个曲边三角形。设计一个随机试验,求该图形的近似值。 (1)作图 (2)设计的随机试验的思想:在矩形区域[0,12]*[0.9]上产生服从均与分布的10^7个随机点,统计随机点落在曲边三角形内的个数,则曲边三角形的面积近似于上述矩形的面积乘以频率。 Code: %蒙特卡洛算法的具体实现 %产生一个1行10000000列的矩阵,矩阵中每个数是从0到12之间随机取 x = unifrnd(0, 12, [1, 10000000]); y = unifrnd(0, 9, [1, 10000000]); frequency = sum(y |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |