求一个matlab程序,随机游走以100左右为基准的500个数据,图像类似于股票价格曲线

求一个matlab程序,随机游走以100左右为基准的500个数据,图像类似于股票价格曲线,第1张

先说清楚概率分布啊,灶型你这个所谓的游走表现为均匀分布还是高斯分布还是其他任何种类斗扰的概率分布,方差是多少。如果你只需要一个看的像那么回事的图的话隐销猜,

a=normrnd(100,5,1,500)

plot(1:500,a)

把5改大点可以让波动幅度变大

clc,clear

%一个三维随机运动的小球

r=0.5%球的半径

%运动的范围

x1=0x2=30

y1=0y2=30

z1=0z2=30

%初始位置  随机生成

x0=rand(1)*(x2-x1-2*r)+x1

y0=rand(1)*(y2-y1-2*r)+y1

z0=rand(1)*(z2-z1-2*r)+z1

pos=[x0y0z0]

figure(1)

[x,y,z]  = ellipsoid(pos(1),pos(2),pos(3),r,r,r)

surf(x,y,z,ones(size(x))) %画出来球

n=200%随机运动的次数

p=1  %p可以用来控制每次运动距离的大小

for i=1:n

    %产生运动的方向与运动距离,用一个随机向量表示

    s=0

    while(s==0)

  如滚局      direct=rand(3,1)-0.5

        dd=direct/norm(direct,2)

        dd=dd*p

        post=pos+dd

        if (post(1)>=x1+r&&post(1)<=x2-r)&&(post(2)>=y1+r&&post(2)<=y2-r)&&(post(3)>=z1+r&&post(3)<=z2-r)

       渣让     s=1

        end

    end

    pos=pos+dd

    [x,y,z]  = ellipsoid(pos(1),pos(2),pos(3),r,r,r)

    surf(x,y,z,ones(size(x))) %画出来球

    axis([x1 x2 y1 y2 z1 z2])

    pause(0.1)  %设置暂停时备升间

end

因为是随机运动   如果每次运动的距离设置的不大,小球基本上是在初始位置的范围内运动

这个就是灵活饥宽嫌的使用rand()函数了:

1,定义一个min,max

2,然后就能成才随机数了 x1=min+max.*(randn())

3,再生成一个y1

4,得到一个随机点 (x1,y1)

5,如上,得到一个N个随机点

6,然后定义一个连接举证 R_A

7,定义R_A=(rand(n))>(0.5) 这里的含义是,生成一个随机NXN的矩阵,如果随机的巧握结果是大于0.5的,就定义R_A的矩阵的烂手相应位置为1,否则为0

8,我们认为R_A中的,是1,表示2个点之间存在连线,否则不存在连线。

比如 R_A(2,3)=1表示点2.和点3之间有连线,否则则没有。

好了,东西都生成了

你自己去检索,判断吧,,,,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12445020.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存