24小时热门版块排行榜    

查看: 2145  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhouyuxing

新虫 (初入文坛)

[求助] matlab 粒子布朗运动逸出区域问题:

以下是1000个例子在三维空间中的布朗运动,运动过程中有粒子溢出坐标轴区域,如何使运动到边界的粒子向内部继续做布朗运动?

n=1000;%指布朗运动的点数

s=0.02;%指温度或速率

%产生n个随机点(x,y,z),处于-0.5~0.5之间

x=2*rand(n,1)-1;

y=2*rand(n,1)-1;

z=2*rand(n,1)-1;

h=plot3(x,y,z,'.');

xmin=-1;

xmax=1;

ymin=-1;

ymax=1;

zmin=-1;

zmax=1;

axis([xmin xmax ymin ymax zmin zmax]);

axis square

grid on

set(h, 'MarkerSize',5);%设置擦除模式

%循环5000次,产生动画效果

for i=linspace(1,10,5000)

drawnow

x=x+s*randn(n,1);

y=y+s*randn(n,1);

z=z+s*randn(n,1);

set(h,'XData',x,'YData',y,'ZData',z);

end

1.png
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zymasxcm

新虫 (小有名气)

引用回帖:
3楼: Originally posted by zhouyuxing at 2013-07-05 12:26:46
自己弄明白了,还是感谢你。...

您好,我想知道,你采用的是周期性边界条件吗
8楼2014-10-14 10:52:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

感谢参与,应助指数 +1
x=x+s*randn(n,1);
y=y+s*randn(n,1);
z=z+s*randn(n,1);
------------------------
这不是更新位置吗?判断一下上下界,如果是碰到边界,让速度方向改变就行了
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2013-05-06 17:41:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhouyuxing

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by libralibra at 2013-05-06 17:41:35
x=x+s*randn(n,1);
y=y+s*randn(n,1);
z=z+s*randn(n,1);
------------------------
这不是更新位置吗?判断一下上下界,如果是碰到边界,让速度方向改变就行了

自己弄明白了,还是感谢你。
3楼2013-07-05 12:26:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

牧马人man

新虫 (初入文坛)

【答案】应助回帖

读博真的很累很那毕业吗?本人研二正在就业与考博之间犹豫,听说读博很难毕业压力很大,现在有点胆却。正在读博的大虾们能给点指点吗?说说读博的真实生活与学习,谢谢啦
4楼2013-07-05 20:47:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见