matlab蒙特卡罗方法求体积_matlab的蒙特卡洛算法
问题补充:
能提供一个例子看看吗?我就不懂MATLAB,想知道具体代码。因为现在写论文急,也没时间仔细看书了
蒙特卡罗模拟
就是随机数相关的东西,你只要知道随机数是怎么得到。其它的事就要好办了。
rand(m,n)产生m*n均匀随机数。
ex:
用概率方法求pi
N=100000;
x=rand(N,1);
y=rand(N,1);
count=0;
for i=1:N
if (x(i)^2+y(i)^2<=1)
count=count+1;
end
end
PI=4*count/N
-------------------------------
有关使用matlab进行蒙特卡罗模拟的程序问题
|
2010-10-1 15:37
|
浏览次数:1425次
已经分布是均匀分布(连续),区间为(12,62),请问各位大侠,如何用matlab编程实现此蒙特卡罗模拟,我想模拟2000次,得到概率密度图与累积概率密度图,程序应该如何编,麻烦大家指教,期待帮助,谢谢。小妹现在没有分数,还是希望大家能帮我,谢谢1
问题补充:
n=2000; %随机点数(可增加点数)
x=12+(62-12)*rand(1,n); %产生2000个12到62的随机数
xx=12:2:62; %画概率密度图的区间
nx=histc(x,xx); %计算x在xx每个小区间内的点数。
px=nx/n;
sumpx=cumsum(px);
subplot(1,2,1)
bar(xx(1:end-1),px(1:end-1));
title('概率密度')
subplot(1,2,2)
plot(xx(1:end-1),sumpx(1:end-1));
title('累积概率密度')
-----------------------------------
我这儿正好有份程序,希望有所帮助。
代码:
一份蒙特卡洛程序
count=input('input the count:');%输入模拟粒子数
sigmaedata=[28370,13845,6908,2555,1223,2602,1925,905.3,479.7,164.5,74.24,23.86,66.60,36.62,22.29,9.978,5.298,1.668,0.7378,0.2361,0.1099,0.06211,0.03939,0.02030];
sigmacdata=[0.0220,0.0393,0.0568,0.0904,0.1209,0.1479,0.1722,0.2136,0.2480,0.3092,0.3486,0.3932,0.4153,0.4268,0.4319,0.4291,0.4215,0.3969,0.3691,0.3269,0.2944,0.2709,0.2512,0.2209];
Edata=[1,1.5,2,3,4,5,6,8,10,15,20,30,40,50,60,80,100,150,200,300,400,500,600,800];%截面数据
channel=zeros(1,ceil(662/5)+10);%多道数组
nget=0;%探测到的总计数
ntotal=0;%进入探测器的总计数
for ii=1:count%count个粒子循环
collidetime=0;%当前粒子碰撞次数
%粒子状态初始化
E0=622;
E=E0;
z=-2;
r=0;
theta=2*pi*rand(1);% 源抽样,z,r,theta坐标
miu=2*rand(1)-1;
fai=2*pi*rand(1);%方向角抽样
if miu
continue;
else
z=0;
r=2*sqrt(1-miu^2)/miu;
theta=fai;
end
while E>1%一个粒子在闪烁体中的输运过程
sigmae=interp1(Edata,sigmaedata,E,'linear');
sigmac=interp1(Edata,sigmacdata,E,'linear');
sigmat=sigmae+sigmac;%线性插值得到截面数据
L=-log(rand(1))/sigmat;%下次碰撞的距离
%计算下次碰撞位置坐标
rnew=sqrt(r^2+L^2*(1-miu^2)+2*r*L*sqrt(1-miu^2)*cos(fai-theta));
z=z+L*miu;
cdth=(rnew^2+r^2-L^2*(1-miu^2))/2/r/rnew;
sdth=L*sqrt(1-miu^2)*sin(fai-theta)/rnew;
dtheta=asin(sdth);
if cdth<0
dtheta=pi-dtheta;
end
theta=theta+dtheta;
r=rnew;
if(r>2)|(z>=4)|(z<0)%判断是否在闪烁体内
break;
else
collidetime=collidetime+1;
end
if rand(1)
E=0;
else%康普顿散射
alpha=E/511;
flag=0;
while flag==0
if rand(1)<=27/(4*alpha+29)
x=(1+2*alpha)/(1+2*alpha*rand(1));
if rand(1)<=0.5*((alpha+1-x/alpha)^2+1)
flag=1;
end
else
x=1+2*alpha*rand(1);
if rand(1)<=27/4*((x-1)^2)/x^3
flag=1;
end end
end E=E/x;
alphat=alpha/x;
miuL=1-1/alphat+1/alpha;%散射后的方向
a=miuL;
b=sqrt(1-a^2);
randangle=2*pi*rand(1);
miunew=a*miu+b*sqrt(1-miu^2)*cos(randangle);
sdf=b*sin(randangle)/sqrt(1-miunew^2);
cdf=(a-miu*miunew)/sqrt(1-miu^2)/sqrt(1-miunew^2);
sfn=sdf*cos(fai)+cdf*sin(fai);
cfn=cdf*cos(fai)-sdf*sin(fai);
fainew=asin(sfn);
if(cfn<0)
matlab蒙特卡罗方法求体积_matlab的蒙特卡洛算法相关推荐
- matlab蒙特卡罗方法求体积_实验二-蒙特卡罗方法计算三维体积
班级: 学号: 姓名: 实验时间: 2014 年 月 日 实验 项目 实验二 蒙特卡罗方法计算三维体积 所属 课程 数学实验 实 验 目 的 了解蒙特卡罗方法的原理,掌握随机数使用技术. 实 验 内 ...
- matlab蒙特卡罗方法求体积_蒙特卡罗方法详细讲解与MATLAB实现.ppt
下面给出几个常用的α与的数值: ? 关于蒙特卡罗方法的误差需说明两点:第一,蒙特卡罗方法的误差为概率误差,这与其他数值计算方法是有区别的.第二,误差中的均方差σ是未知的,必须使用其估计值 来代替,在计 ...
- 2020-4-5 深度学习笔记17 - 蒙特卡罗方法 3 ( 马尔可夫链蒙特卡罗方法MCMC-先验分布/后验分布/似然估计,马尔可夫性质)
第十七章 蒙特卡罗方法 中文 英文 2020-4-4 深度学习笔记17 - 蒙特卡罗方法 1 (采样和蒙特卡罗方法-必要性和合理性) 2020-4-4 深度学习笔记17 - 蒙特卡罗方法 2 ( 重要 ...
- 蒙特卡罗方法在金融领域中的应用:从风险管理到投资组合优化
作者:禅与计算机程序设计艺术 "蒙特卡罗方法"这个词已经存在很久了,它最早由英国数学家罗素提出,是指用随机数模拟的方法解决复杂问题的一个数学方法.由于其随机性质,蒙特卡罗方法在数值 ...
- matlab 蒙特卡洛树搜索算法_蒙特卡罗方法入门、蒙特卡洛树简介(转载)
本文通过五个例子,介绍蒙特卡罗方法(Monte Carlo Method). 一.概述 蒙特卡罗方法是一种计算方法.原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值. 它非常强大和灵活,又 ...
- 欧式期权matlab编码蒙特卡罗方法,基于MATLAB的金融工程方法与实践第七章 基于蒙特卡洛方法的期权定价.ppt...
蒙特卡洛的优缺点 MCMC方法的优点 分布假设更一般,描述市场因素可能变化的统计分布既可以是正态.对数正态的,也可以是带跳的扩散分布.t分布等. 随机生成风险因素的各种各样的未来假想情景,可在模型中融 ...
- matlab碎纸拼接相似函数,基于蒙特卡洛算法构建能量函数的碎纸图片拼接方法
基于蒙特卡洛算法构建能量函数的碎纸图片拼接方法 [专利摘要]本发明提供了一种基于蒙特卡洛算法构建能量函数的碎纸图片拼接方法,主要涉及双面打印文件的拼接及复原问题,通常由于图片较多,信息量较大,故通常为 ...
- 用蒙特卡洛求pi_蒙特卡洛算法(MCS)及其MATLAB实现
基本概念 蒙特卡洛模拟(Monte Carlo Simulation, MCS)是科学家冯·诺伊曼等人在1940年代发明的一种以概率为基础的方法,它以一座赌城命名--蒙特卡洛.如果用一句话来概括它的本 ...
- 蒙特卡罗方法采样算法
蒙特卡罗方法采样算法 蒙特卡罗方法(Monte Carlo Simulation)是一种随机模拟(或者统计模拟)方法. 给定统计样本集,如何估计产生这个样本集的随机变量概率密度函数,是我们比较 ...
最新文章
- java 注册忘记密码操作_Java实战项目(1):swing图书管理系统的登录,注册,找回密码,增删查,个人解析等...
- SHELL脚本 基础一
- 【Android 内存优化】图片文件压缩 ( Android 原生 API 提供的图片压缩功能能 | 图片质量压缩 | 图片尺寸压缩 )
- winform模拟登陆网页_Python爬虫使用selenium爬取群成员信息(全自动实现自动登陆)...
- Java JDBC PreparedStatement类
- Ba Gua Zhen
- 评分卡模型之数据预处理
- (八)冰点还原安装及使用
- 关于降低软件开发过程中沟通成本的思考
- 大数据实战第十六课(上)-Spark-Core04
- 青少年为何有时不会换位思考
- 20230426作业
- MERGE操作学习总结
- 合适的教育ERP管理系统,可让你省去很多麻烦
- pycharm注册码,之前的已经过期
- 直流电机的快衰减和慢衰减模式分析
- linux swift开发环境,Linux平台swift语言开发学习环境搭建
- 数据结构知识点 -- 链表(Java实现)
- 用xcode编译c++代码
- linux 9 aml 设置wifi,aml常用命令.pdf
热门文章
- 【论文阅读】Realtime Robust Malicious Traffic Detection via Frequency Domain Analysis
- 20161128 已知小明同学其中考试成绩,数学97.5分,语文94.5分,英语95.5分,求小明同学的三科总成绩(结果保留一位小数)。...
- OSChina 周三乱弹 —— 姑娘不是我的心上人,请自重
- 海伦公式(根据三角形三条边求面积)
- windows搭建go语言环境eclipse+go
- php购物车登录用cookie,php利用cookies实现购物车的方法
- DCF(Discounted Cashflow)模型二(折现率)
- 【MySQL】单表访问之索引合并
- 联想笔记本ideapad 320C 15IKB笔记本电脑改装总结
- 计算机网络——传输层の选择题整理