当前位置:  开发笔记 > 编程语言 > 正文

加快Levy运动算法的模拟

如何解决《加快Levy运动算法的模拟》经验,为你挑选了0个好方法。

这是我模拟Levy运动的小脚本:

clear all;
clc; close all;
t = 0; T = 1000; I = T-t;
dT = T/I; t = 0:dT:T; tau = T/I;
alpha = 1.5;
sigma = dT^(1/alpha);
mu = 0; beta = 0;
N = 1000;
X = zeros(N, length(I));
for k=1:N
    L = zeros(1,I);
    for i = 1:I-1
       L( (i + 1) * tau ) = L(i*tau) + stable2( alpha, beta, sigma, mu, 1);
    end
    X(k,1:length(L)) = L;
end

q = 0.1:0.1:0.9;
quant = qlines2(X, q, t(1:length(X)), tau);
hold all
for i = 1:length(quant)
    plot( t, quant(i) * t.^(1/alpha), ':k' );
end

其中stable2返回一个给定参数的稳定随机变量(normrnd(mu, sigma)在这种情况下可以替换它,这并不重要); qlines2返回绘图所需的分位数.

但我不想在这里谈论数学.我的问题是这个实现很慢,我想加快速度.不幸的是,计算机科学不是我的主要领域 - 我听说过有关记忆,矢量化等方法的东西,还有很多其他技术,但我不知道如何使用它们.
例如,我很确定我应该以某种方式替换这个肮脏的双循环,但我不知道该怎么做.
编辑:也许我应该使用(并学习......)另一种语言(Python,C,任何功能)?我总是认为Matlab/OCTAVE是为数值计算而设计的,但如果改变了,那么对于哪一个?

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有