数模5—蒙特卡洛算法、灰色预测

一、蒙特卡洛法

1.方法简介

当无法求得精确解时,进行随机抽样,根据统计试验求近似解。 通常就用随机抽样,统计实验。

🎯通俗理解
●假如有十万个苹果,需要挑选出其中最大的,但只能闭着眼睛挑,手里最多保留一个苹果。初始时可以先闭着眼睛随机挑选,拿到一个苹果。
●然后,可继续闭着眼睛挑一个,并与手里现有的比较,留下较大的、扔掉较小的
●循环重复上一步,则挑的次数越多,挑出最大苹果的可能性也就越大
●但人的时间精力有限,除非把十万苹果都挑一遍,否则无法确定挑出来的就是最大的。所以挑了30000后,就把此时手里的苹果视为十万个苹果中最大的近似解
🎯翻译翻译
●一万个苹果挑最大:可行域过大、没有通用方法求出精确解(十万个全挑完不现实)
●闭眼挑:随机抽样
●每次挑完留下大的:统计试验
●挑3000次后手里的视为最大:求近似解
●挑的次数越多接近最大的概率越大:需构成统计意义

2.简单例题

在这里插入图片描述

3.Matlab求解代码

●为实现随机撒点,可用matlab自带的rand函数
●撒的点数越多,求得的解越可能更接近最优解

clc;clear
%蒙特卡洛算法求解圆周率近似值
 
% 参数初始化:投放10000个点,圆半径为1,圆心坐标(0,0)
% 初始时还未投放点,有0个点在圆内
p = 10000;  r = 1; x0 = 1;  y0 = 1;  n = 0; 
 
% 将p个点随机放在一个边长为2的正方形内,该正方形内有个内切圆
% 正方形的面积是4
% 因为每个点都是“随机投放”的,最终落在圆内的点数比上总点数,就近似等于圆的面积比上正方形面积
%2*pi*(r^2)/4 = (圆内点数)/(总点数)
 
hold on     % 保持绘图窗口,多次绘图
for i = 1:p     % 对于要投放的总共p个点
    % rand函数产生在(0, 1)之间的随机数;rand函数还有其他多种形式,可自行百度
    px = rand*2;    % 随机生成该点的横坐标  %02)的随机数
    py = rand*2;    % 随机生成该点的纵坐标
    % 所以,
    % 若该点在圆内,则颜色设为蓝色,变量n加一;在圆外则设为红色
    if (px-1)^2 + (py-1)^2 < 1      % 横纵坐标的平方和小于半径,则在圆内
        plot(px,py,'.','Color',"b");
        n = n+1;
    else
        plot(px,py,'.','Color',"r");
    end
end
axis equal      % 绘图时横纵坐标单位长度相同,便于观察圆
s = (n/p)*4;
pi0 = s;
 
% 注意:matlab本身有圆周率值,在计算时直接调用pi即可
% a = 2*pi

运行结果:
在这里插入图片描述

4.方法分析注意事项

在这里插入图片描述

二、灰度预测

1.由题目导入GM(1,1)模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不要死扣,反正就是要检验
在这里插入图片描述
优点:数据少且无明显规律时可用,利用微分方程挖掘数据本质规律
缺点:灰色预测只适合短期预测指数增长的预测

求解可以用这个:https://baijiahao.baidu.com/s?id=1731960099235423354&wfr=spider&for=pc
如何用spss做灰色关联度分析?手把手教学快速掌握
https://mpaidata.blog.csdn.net/article/details/121639443

三、BFS和DFS的matlab求解,A*算法

matlab 的深度优先遍历和广度优先遍历算法
https://blog.csdn.net/wangh0802/article/details/77130775

A*算法的原理:
2022年Mathorcup数学建模挑战杯C题比赛心得总结
https://blog.csdn.net/whale_cat/article/details/124278387

写一遍这个 代码! 很锻炼人的(蒙特卡洛!!!)
还有 搜索 数学建模神经网络 数学建模遗传算法 是数学建模蚁群算法

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值