clear;clc
N=10000;v0=1; %粒子个数,初始速度
v(1:N)=v0; %定义所有粒子的初始速度为v0
deltv=3*v0/20;
for i=1:20
vbin(i)=(i-0.5)*deltv; %定义一个速度分布区间,用于绘图
end
subplot(3,1,1),hist(v,vbin);
xlabel('v')
ylabel('N')
title('初始速度分布')
for i=1:10*N %碰撞总次数为10*N
j=ceil(rand*N); %随机选取粒子j
k=ceil(rand*N); %随机选取粒子k
while k==j %如果粒子k和j相同,则重新选粒子k,直到k和j不是同一个粒子
k=ceil(rand*N);
end
phij=2*pi*rand;
phik=2*pi*rand;
vj=[v(j)*cos(phij);v(j)*sin(phij)]; %粒子j在x方向和y方向的初始速度
vk=[v(k)*cos(phik);v(k)*sin(phik)]; %粒子k在x方向和y方向的初始速度
vc=(vj+vk)/2; %粒子i和j组成的质心速度(粒子质量为1)
wj=vj-vc; %粒子j在质心系里的初始速度
wk=vk-vc; %粒子k在质心系里的初始速度
phic=rand*2*pi;
cosphic=cos(phic);
sinphic=sin(phic);
vj=[cosphic,-sinphic;sinphic,cosphic]*wj+vc; %实验室系下,粒子j碰撞之后的速度,包括vx分量和vy分量
vk=[cosphic,-sinphic;sinphic,cosphic]*wk+vc; %实验室系下,粒子k碰撞之后的速度,包括vx分量和vy分量
v(j)=sqrt(vj'*vj); %求出粒子j在实验室系下的速度(x方向速度和y方向速度合成)
v(k)=sqrt(vk'*vk); %求出粒子k在实验室系下的速度(x方向速度和y方向速度合成)
if i==N %输出碰撞N次之后的速度分布
subplot(3,1,2),hist(v,vbin);
xlabel('v')
ylabel('N')
title([num2str(N) '次碰撞之后,速度分布'])
end
end
subplot(3,1,3),hist(v,vbin);
xlabel('v')
ylabel('N')
title([num2str(10*N) '次碰撞之后,速度分布'])
%% 欢迎交流学习: QQ:1960009019 微信公众号:大仙一品堂
%绘制与理论值比较的曲线
nv=hist(v,vbin);
p=nv/N/deltv;
for i=1:20
f(i)=exp(-vbin(i)^2/v0^2)*2*vbin(i)/v0^2;
end
figure
plot(vbin,p,'o',vbin,f,'-')
xlabel('v')
ylabel('f(v)')
title('理论曲线比较')
没有合适的资源?快使用搜索试试~ 我知道了~
MATLAB建模仿真案例:32 粒子速度分布.zip
共2个文件
mp4:1个
m:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 57 浏览量
2023-05-26
11:17:35
上传
评论
收藏 4.66MB ZIP 举报
温馨提示
MATLAB建模仿真案例:32 粒子速度分布.zip
资源推荐
资源详情
资源评论
收起资源包目录
MATLAB建模仿真案例:32 粒子速度分布.zip (2个子文件)
32 粒子速度分布
32 粒子速度分布.mp4 5.37MB
lizifenbu.m 2KB
共 2 条
- 1
资源评论
JGiser
- 粉丝: 7577
- 资源: 5112
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功