matlab如何做粒子模拟,求助,如何用matlab做蒙特卡罗模拟!!??

本文提供了一份MATLAB实现的粒子蒙特卡罗模拟代码示例,通过输入模拟粒子数,利用线性插值计算截面数据,并模拟粒子在闪烁体中的输运过程,包括碰撞距离、位置坐标更新以及康普顿散射等。最终计算并展示了探测效率。
摘要由CSDN通过智能技术生成

我这儿正好有份程序,希望有所帮助。

代码:

一份蒙特卡洛程序

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(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值