Matlab蒙特卡罗模拟:
可以用蒙特卡罗方法来近似模拟求pi值:
思路:
设相互独立的随机变量X,Y均服从[-1,1]上的均匀分布,则(X,Y)服从{-1≤x≤1, 1≤y≤1}上的二元均匀分布(即图1中正方形区域上的二元均匀分布),记事件A = {x2+y2≤1},则A事件发生的概率等于单位圆面积除以边长为2的正方形的面积,即P(A) = pi/4,从而可得圆周率pi = 4P(A). 而P(A)可以通过蒙特卡洛模拟法求得,在图1中正方形内随机投点(即横坐标X和纵坐标Y都是[-1,1]上均匀分布的随机数),落在单位圆内的点的个数m与点的总数n的比值m/n可以作为A事件的概率P(A)的近似,随着投点总数的增加,m/n会越来越接近于P(A),从而可以得到逐渐接近于pi的模拟值。
function piva=PiMonterCarlo(n)
x=0;y=0;d=0;
m=length(n);
pivalue=zeros(m,1);
for i=1:m
x=2rand(n(i),1)-1;
y=2
rand(n(i),1)-1;
d=x.2+y.2;
pivalue(i)=4sum(d<=1)/n(i);
end
if nargout==0
if m>1
figure;
plot(n,pivalue,‘k.’);
h=refline(0,pi);
set(h,‘linewidth’,2,‘color’,‘r’);
text(1.05
n(end),pi,’\pi’,‘FontSize’,15);
xlabel(‘投点个数’);
ylabel(’\pi的模拟值’);
else
figure;
plot(x,y,‘r.’);
hold on;
h=rectangle(‘Position’,[-1 -1 2 2],‘LineWidth’,2);
t=linspace(0,2*pi,100);
plot(cos(t),sin(t),‘k’,‘LineWidth’,2);
xlabel(‘X’);ylabel(‘Y’);
title(‘Pi的模拟值:’,num2str(pivalue));
axis([-1.1 1.1 -1.1 1.1]);axis equal;
end
else
piva=pivalue;
end


还可以模拟K值

times = 300;  % 蒙特卡洛的次数
R = zeros(times,1);  % 用来储存扰动项u和x1的相关系数
K = zeros(times,1);  % 用来储存遗漏了x2之后,只用y对x1回归得到的回归系数
for i = 1: timesn = 30;  % 样本数据量为nx1 = -10+rand(n,1)*20;   % x1在-10和10上均匀分布,大小为30*1u1 = normrnd(0,5,n,1) - rand(n,1);  % 随机生成一组随机数x2 = 0.3*x1 + u1;   % x2与x1的相关性不确定, 因为我们设定了x2要加上u1这个随机数u = normrnd(0,1,n,1);  % 扰动项u服从标准正态分布y = 0.5 + 2 * x1 + 5 * x2 + u ;  % 构造yk = (n*sum(x1.*y)-sum(x1)*sum(y))/(n*sum(x1.*x1)-sum(x1)*sum(x1)); % y = k*x1+b 回归估计出来的kK(i) = k;u = x2 + u;  % 因为我们忽略了x2,所以扰动项要加上x2r = corrcoef(x1,u);  % 2*2的相关系数矩阵R(i) = r(2,1);
end
plot(R,K,'*')
xlabel("x_1和u'的相关系数")
ylabel("k的估计值")

结果:

Matlab蒙特卡罗模拟相关推荐

  1. matlab蒙特卡罗方法求体积_matlab的蒙特卡洛算法

    问题补充: 能提供一个例子看看吗?我就不懂MATLAB,想知道具体代码.因为现在写论文急,也没时间仔细看书了 蒙特卡罗模拟 就是随机数相关的东西,你只要知道随机数是怎么得到.其它的事就要好办了. ra ...

  2. 蒲丰投针计算机模拟ppt,蒙特卡罗模拟课件.ppt

    <蒙特卡罗模拟课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<蒙特卡罗模拟课件.ppt>文档请在天天文库搜索. 1.蒙特卡洛模拟数学实验之前 ...

  3. matlab高中必修三数学模拟,基于MATLAB的模拟调制实验报告

    <基于MATLAB的模拟调制实验报告>由会员分享,可在线阅读,更多相关<基于MATLAB的模拟调制实验报告(19页珍藏版)>请在金锄头文库上搜索. 1.基于 MATLAB 的模 ...

  4. matlab 颜色势能,Matlab在模拟晶面势能分布中的应用

    ComputerKnowledgeand Technology 电脑知识与技术 本栏目责任编辑:唐一东人工智能及识别技术 第 6 卷第 31 期 (2010 年 11 月) Matlab 在模拟晶面势 ...

  5. boost::mp11模块使用一些节点生成并行蒙特卡罗模拟的示例

    boost::mp11模块使用一些节点生成并行蒙特卡罗模拟的示例 实现功能 C++实现代码 实现功能 boost::mp11模块使用一些节点生成并行蒙特卡罗模拟的示例 C++实现代码 #include ...

  6. 蒙特卡罗模拟_Stata博文 | 使用蒙特卡罗模拟计算功率part 1:基础知识

    功率和样本大小的计算是科学研究计划的重要组成部分.可以使用Stata的power命令来计算许多常用统计测试的功率和样本大小需求.但对于更复杂的模型是没有简单公式的,如多层/纵向模型和结构方程模型(SE ...

  7. matlab蒙特卡罗变量变换的分布,使用 copula 仿真相关随机变量

    仿真输入之间的相关性 蒙特卡罗模拟的设计决策之一是为随机输入选择概率分布.为每个变量选择一种分布往往很简单,但确定输入之间应该存在什么样的相关性却可能不那么简单.理想情况下,仿真的输入数据应反映要建模 ...

  8. Matlab动画模拟分子布朗运动的示例

    Matlab动画模拟分子布朗运动的示例 %Brownian motion clf; n=20; s=0.02; x = rand(n,1)-0.5; y = rand(n,1)-0.5; h = pl ...

  9. 用计算机核裂变模拟实验,SAS和蒙特卡罗模拟(1):开篇

    SAS for Monte Carlo Simulations (1): Introduction 一.为什么选择SAS做蒙特卡罗模拟? 为什么要用SAS做蒙卡?首先,对我来说,我只会用SAS,而且打 ...

最新文章

  1. ssh-keygen
  2. 电网机巡智能管控平台渗透测试经历
  3. struct用法_精讲响应式webclient第1篇-响应式非阻塞IO与基础用法
  4. 云服务时代,你是否没穿内裤在到处逛啊!
  5. pyHook 转码问题-MouseSwitch() missing 8 required positional arguments...,原因及解决办法
  6. 利用 Linux 查找重复文件
  7. ‘(‘:illegal token on right side of ‘::‘
  8. U-Time巡回完美收官:精细化数据将主导未来运营趋势(数据应用篇)
  9. 架构的变迁,从分层架构先聊起
  10. java客户端操作elasticsearch7.3.2版本
  11. C语言_函数指针高级用法
  12. 在ubuntu 上安装pycharm
  13. JavaScript从父页面获取子页面的值(子页面又如何访问父页面)
  14. HTTP协议基本原理简介(二)
  15. 【GPS】 根据GPS坐标求取两点间距离算法
  16. 用html实现学生考勤系统,学生考勤管理信息系统的设计与实现最终版(样例3)...
  17. 指纹识别属于计算机技术,指纹识别技术属于人工智能吗 指纹识别技术什么时候发明的-与非网...
  18. 你已经长大了,寄几的日志要寄几处理
  19. 【利用Python进行数据分析——经验篇2】计算微博转发/评论/点赞h指数的Python代码
  20. java 接口耗时分析_性能优化案例(2019-案例78)-接口性能耗时问题分析

热门文章

  1. centos8安装失败 Linux dd,在RHEL 8/CentOS 8上安装Telegraf的方法
  2. 中国好生意 经典论述:哈林是来主持的,刘欢是来开家长会的,那英是来唠嗑的,杨坤是来做宣传的,而......
  3. 2020年缴费基数调整
  4. 统计年鉴 excel
  5. ceph-deploy的calamari命令
  6. 华为机试 素数伴侣 匹配匈牙利算法
  7. UE4.CPP变焦推进效果(_杰森大师)
  8. 青龙面板快s极速版(本地)
  9. 【权威发布】360追日团队:Xshellghost技术分析——入侵感染供应链软件的大规模定向攻击
  10. 成都拓嘉启远:拼多多直通车推广怎么做才能有开好