Halton序列扩展

时间:2013-05-25 15:33:54

标签: algorithm matlab random octave uniform

我试图填充由2个区间[a,b] x [c,d]定义的区域,点均匀分布,我正在实施Halton sequence。我使用以下代码(生成子数字)。

      The number I is input.
      The number H is output.

   for i = 1:N
      H = 0
      half = 1 / 2
      I = rand() % MATLAB rand()
      do while ( I is not zero )
        digit = mod ( I, 2 )
        H = H + digit * half
        I = ( I - digit ) / 2
        half = half / 2
      end
      x(i) = H
   end

对于x轴,我使用基座2,对于y轴,我使用基座3。 因为我除以2,3我似乎无法完全填满整个[0,1] x [0,1]空间。我必须填[0,1] x [0,1],我实际上填[0,0.5] x [0,0.35]。当我尝试扩展[a,b] x [c,d]的算法时,我得到[a,b-0.5] x [c,d-1]中的点。 我该怎么做才能填写正确的full间隔?

0 个答案:

没有答案