代码如下:

clear;
n=10;%粒子数
step=200; %粒子前进的步数
jump=0.1; %每前进一步粒子的跳跃位置,这里认为是一个自然数,甚至程序中给出小数也可以。

figure; %创建绘图窗口
hold on; %打开重绘
grid; %显示网格

%以下是为了显示两个上下极限概率的边界
x_line=(1:step);
y_line_upper=jump*x_line; %上边界的y值
y_line_lower=-jump*x_line; %下边界的y值
plot(x_line,y_line_upper); %绘制上边界
plot(x_line,y_line_lower); %绘制下边界
clear x_line;clear y_line_upper;clear y_line_lower; %清除这几个变量,节省内存

for m=1:n; %粒子数(n)个循环
move_x=zeros(100); %初始化粒子的横坐标位置数组
move_y=zeros(100); %初始化粒子的纵坐标位置数组

y=0; %初始位置的纵坐标
for x=1:step; %粒子随机前进500步
c=rand(1); %生成随机数
%以下生成的是非等概率分布
if c<=0.20
a=-jump; %概率分布为1/4
elseif c>0.10 && c<0.70
a=0; %概率分布为1/2
else
a=jump; %概率分布为1/4
end

y=y+a;%纵坐标y改变,横坐标是步长j
move_x(x)=x; %把当前步长的粒子位置横坐标给位置数组
move_y(x)=y; %把当前步长的粒子位置纵坐标给位置数组
plot(x,y,'.'); %绘当前位置点
pause(0.00001);%延时绘图,动画显示
end
plot(move_x,move_y,'r');%将点连线,形成粒子的运动轨迹
end
clear all; %清除所有变量

视频演示:待更新

 

运行结果图展示:

3个粒子的轨迹:

10个粒子的轨迹

50个粒子的轨迹

100个粒子的轨迹

若要查看动态图片请查看全文

 

从这个例子中我们得到一个结果:随机性告诉了我们世界运动必须是光速的。
假设粒子最快的运动速度就是光速,假设粒子每前进一步,都可以向某处移动a个最小距离(也许是planck长度),那么对于其概率来说,a必须小于步长所允许的范围。理想化的,假设a=+1或者a=-1,那么对于以光速运动的物体来说(假设这里就是光子),它的概率分布必须保持在光速的限制之内,最大只会给出一条直线来。

错了。完全错了。那条线只是说明粒子一直取一种固定值所做的轨迹,并不是光速什么的。即把每次位移步伐变为任意实数,包括小数和大的整数,给出的图像曲线分布仍旧是一样的。

 

 

 

 

 

请使用手机”扫一扫”x

 

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注