24小时热门版块排行榜    

查看: 2144  |  回复: 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的回帖

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的回帖

阿萌宝贝1987

银虫 (正式写手)

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

楼主 你好 你是在做颗粒成长模型吗 我也是研究相关领域的 可以他探讨一下哈
5楼2013-08-17 23:31:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阿萌宝贝1987

银虫 (正式写手)

引用回帖:
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);
------------------------
这不是更新位置吗?判断一下上下界,如果是碰到边界,让速度方向改变就行了

你好 关于这个例子 我想请问下 判断上下界的程序语言应该怎么写呢?以什么标准判断粒子是否碰到边界呢?是粒子和边界之间的距离吗?多谢回复,我也再做这样的模型
6楼2013-08-17 23:37:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

引用回帖:
6楼: Originally posted by 阿萌宝贝1987 at 2013-08-17 23:37:36
你好 关于这个例子 我想请问下 判断上下界的程序语言应该怎么写呢?以什么标准判断粒子是否碰到边界呢?是粒子和边界之间的距离吗?多谢回复,我也再做这样的模型...

axis([xmin xmax ymin ymax zmin zmax]);
这是三维的边界,
需要判断粒子坐标的x,y,z在这个区域内,否则按照碰撞处理,重新计算位置
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
7楼2013-08-19 22:18:16
已阅   回复此楼   关注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的回帖
相关版块跳转 我要订阅楼主 zhouyuxing 的主题更新
信息提示
请填处理意见