24小时热门版块排行榜    

查看: 5570  |  回复: 11
本帖产生 1 个 仿真EPI ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

Mr123456

铁虫 (初入文坛)

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

一粒子从原点随机选择(上,下,左,右)方向开始移动,经过N步移动后(每步移动的距离为1),求距离原点的平均距离。(N=10000)(要完整的程序,可以在matlab上模拟)
回复此楼
已阅   回复此楼   关注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的回帖
查看全部 12 个回答

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

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的回帖
信息提示
请填处理意见