在Octave 4.0.0和MATLAB 2014中都運行了下面的代碼。時差是愚蠢的,即超過兩個數量級。在Windows筆記本上運行。可以做些什麼來提高八度計算速度?倍頻很慢;建議
startTime = cputime;
iter = 1; % iter is the current iteration of the loop
itSum = 0; % itSum is the sum of the iterations
stopCrit = sqrt(275); % stopCrit is the stopping criteria for the while loop
while itSum < stopCrit
itSum = itSum + 1/iter;
iter = iter + 1;
if iter > 1e7, break, end
end
iter-1
totTime = cputime - startTime
八度:totTime〜112
MATLAB:totTime < 0.4
我不知道你是否注意到你的函數計算了諧波系列的總和。因此,如果您有很多迭代,最好使用sum(1 ./(1:exp(stopCrit))作爲例子,然後調整和直到該總和(1 ./(1:#iteration))= stopCrit。 – obchardon