写MATLAB程序,画出动画来模拟粒子的布朗运动。
在二维坐标系下,假设有100个点,起始坐标都为(0,0),在坐标系下用.画出这100个点。模拟这些点的布朗运动,试写出含有1000步的循环,每一步循环将计算出每个点下一步的新的x和y坐标,然后画出新位置下的这100个点,这样循环1000步,就会画出有1000个图片的动画。每个点下一步的新坐标位置,通过在当前的位置(x,y),对x和y分别加上服从正态分布且标准差为0.005的变量来完成。
%Brownian motion 布朗运动
%清除命令,清空工作区,关闭所有窗口
clc,clear,close all;
% 设置正态分布的均值
mean = 0;
% 点的个数
n = 100;
% 速度
s = 0.01;
% x, y的初始值
x = zeros([n, 1]);
y = zeros([n, 1]);
h = plot(x, y, '.');
title('模拟布朗运动');
for i = 1:1000
x = x + normrnd(mean, 0.005, [n,1]) * s;
y = y + normrnd(mean, 0.005, [n,1]) * s;
set(h,'XData',x,'YData',y) % 重新绘点
drawnow;
end
动态图的实现思路:
- 生成新的
xy坐标值 - 暂时保存
- 重新绘点
视频:
matlab实现布朗运动
参考文章:https://blog.youkuaiyun.com/mygod2008ok/article/details/100855010

该博客详细介绍了如何使用MATLAB编程实现布朗运动的动态模拟。通过设置初始坐标、正态分布参数和循环次数,生成100个点的二维布朗运动轨迹,并利用drawnow函数创建动画效果。在每一步迭代中,每个点的新坐标由当前坐标加上服从正态分布的随机变量决定,从而展现出布朗粒子的随机游走特性。
1905

被折叠的 条评论
为什么被折叠?



