24小时热门版块排行榜    

查看: 5571  |  回复: 11
本帖产生 1 个 仿真EPI ,点击这里进行查看

Mr123456

铁虫 (初入文坛)

[求助] 二维随机行走运动

一粒子从原点随机选择(上,下,左,右)方向开始移动,经过N步移动后(每步移动的距离为1),求距离原点的平均距离。(N=10000)(要完整的程序,可以在matlab上模拟)
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
Mr123456(金币+1): ★★★★★最佳答案 很不错,很强大。 2012-03-01 20:48:57
臭水沟(金币+5, 仿真EPI+1): 专家辛苦了~~ 2012-03-01 20:50:01
CODE:
function randwalk
ra=0;
for i=1:10
    ra=ra+walk(i);
end
mr=ra/10%10次运行平均值

function rr=walk(x)
clc;close all;
z=0; % 设置初始数值,这里利用一个复数来表示位置
rand('state',x); % 初始化随机数的状态
ph=plot(z);hold on; % 绘图
T=1; % 计算时间的参数
z1=1; % 位置的中间变量
ti=title('time = 0','Fontsize',14,'Fontname','Times new roman'); % 在图题处实时显示时间
while T<1001; % 进行循环1000次进行计算
    [dx,dy]=choose_D(0.25,0.25,0.25,0.25); % 随机生成一个位移量
    z1=z+[dx+i*dy]; % 更新位置数值
    plot(real([z,z1]),imag([z,z1])); % 连接t时刻和t+1时刻两点绘制线段
    z=z1; % 更新z的数值
    set(ti,'String',['time = ',num2str(T)]); % 更新图题处的时间数值
    T=T+1; % 时间值更新
    pause(0.01); % 暂停一下,显示动画效果
end
rr=abs(z)
function [dx,dy]=choose_D(p1,p2,p3,p4);
% p1=0.2; % 向左运动的几率
% p2=0.3; % 向上运动的几率
% p3=0.1; % 向右运动的几率
% p4=0.4; % 向下运动的几率
r=rand; % 产生一个随机数
if r     dx=-1; % x方向的随机移动量
    dy=0; % y方向的随机移动量
elseif r     dx=0; % x方向的随机移动量
    dy=-1; % y方向的随机移动量
elseif r     dx=1; % x方向的随机移动量
    dy=0; % y方向的随机移动量
else
    dx=0; % x方向的随机移动量
    dy=1; % y方向的随机移动量
end

The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
2楼2012-03-01 19:38:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

运行如图所示


The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
3楼2012-03-01 19:58:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

Mr123456

铁虫 (初入文坛)

引用回帖:
: Originally posted by dbb627 at 2012-03-01 19:58:18:
运行如图所示
75/2a/149791_1330603095_490.gif

p1,p2,p3,p4 前面的%去掉有什么影响?
4楼2012-03-01 21:34:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

★ ★
xiegangmai(金币+2, 专家考核): 谢谢参与! 2012-03-01 23:12:27
[dx,dy]=choose_D(0.25,0.25,0.25,0.25); % 随机生成一个位移量
这句表明四个方向概率相等p1=p2=p3=p4=0.25
function [dx,dy]=choose_D(p1,p2,p3,p4);
下面的可以去掉
% p1=0.2; % 向左运动的几率
% p2=0.3; % 向上运动的几率
% p3=0.1; % 向右运动的几率
% p4=0.4; % 向下运动的几率
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
5楼2012-03-01 22:05:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Mr123456

铁虫 (初入文坛)

引用回帖:
: Originally posted by dbb627 at 2012-03-01 22:05:48:
=choose_D(0.25,0.25,0.25,0.25); % 随机生成一个位移量
这句表明四个方向概率相等p1=p2=p3=p4=0.25
function =choose_D(p1,p2,p3,p4);
下面的可以去掉
% p1=0.2; % 向左运动的几率
% p2=0.3; % 向上运动的几 ...

哦,明白了。很感谢。
6楼2012-03-02 13:50:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Mr123456

铁虫 (初入文坛)

引用回帖:
5楼: Originally posted by dbb627 at 2012-03-01 22:05:48:
=choose_D(0.25,0.25,0.25,0.25); % 随机生成一个位移量
这句表明四个方向概率相等p1=p2=p3=p4=0.25
function =choose_D(p1,p2,p3,p4);
下面的可以去掉
% p1=0.2; % 向左运动的几率
% p2=0.3; % 向上运动的几 ...

想再画条步数和平均距离的曲线,要怎么写呢?
7楼2012-03-23 16:38:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mengzqy

新虫 (初入文坛)

为什么这个程序在我的电脑没法运行出来,而是沿着X轴运动
8楼2013-09-04 21:53:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

胡北

新虫 (初入文坛)

引用回帖:
8楼: Originally posted by mengzqy at 2013-09-04 21:53:46
为什么这个程序在我的电脑没法运行出来,而是沿着X轴运动

我也是
9楼2014-12-18 14:42:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

2361640267

新虫 (初入文坛)

引用回帖:
9楼: Originally posted by 胡北 at 2014-12-18 14:42:26
我也是...

我也是,是不是代码哪里错了。楼主能否再看下
10楼2016-03-21 20:41:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Mr123456 的主题更新
信息提示
请填处理意见