Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Varias secuencias

software incluye algoritmos generadores que le permiten crear múltiples secuencias de números aleatorios independientes.MATLAB® El método de fábrica le permite crear tres secuencias que tienen el mismo algoritmo generador y valor de inicialización pero son estadísticamente independientes.RandStream.create

[s1,s2,s3]=RandStream.create('mlfg6331_64','NumStreams',3)  s1 =   mlfg6331_64 random stream       StreamIndex: 1        NumStreams: 3              Seed: 0   NormalTransform: Ziggurat  s2 =   mlfg6331_64 random stream       StreamIndex: 2        NumStreams: 3              Seed: 0   NormalTransform: Ziggurat  s3 =   mlfg6331_64 random stream       StreamIndex: 3        NumStreams: 3              Seed: 0   NormalTransform: Ziggurat

Como evidencia de independencia, se puede ver que estas corrientes están en gran parte no correlacionadas.

r1=rand(s1,100000,1); r2=rand(s2,100000,1);  r3=rand(s3,100000,1); corrcoef([r1,r2,r3])  ans =      1.0000   -0.0017   -0.0010    -0.0017    1.0000   -0.0050    -0.0010   -0.0050    1.0000

Mediante el uso de diferentes semillas, puede crear secuencias que devuelven valores diferentes y actúan por separado entre sí.

s1=RandStream('mt19937ar','seed',1); s2=RandStream('mt19937ar','seed',2); s3=RandStream('mt19937ar','seed',3); 

Los valores de inicialización deben ser enteros entre 0 y 2321. Con diferentes semillas, las secuencias normalmente devuelven valores que no están correlacionados.

r1=rand(s1,100000,1); r2=rand(s2,100000,1); r3=rand(s3,100000,1); corrcoef([r1,r2,r3])  ans =      1.0000    0.0030    0.0045     0.0030    1.0000   -0.0015     0.0045   -0.0015    1.0000

Para los tipos de generadores que no admiten explícitamente secuencias independientes, diferentes semillas proporcionan un método para crear varias secuencias. Sin embargo, el uso de un generador diseñado específicamente para múltiples secuencias independientes es una mejor opción, ya que las propiedades estadísticas a través de los flujos se entienden mejor.

Dependiendo de la aplicación, puede ser útil crear solo algunas de las secuencias en un conjunto de secuencias independientes. La propiedad devuelve el índice de una secuencia especificada a partir de un conjunto de secuencias generadas por el generador.StreamIndex

numLabs=256; labIndex=4; s1=RandStream.create('mlfg6331_64',   'NumStreams',numLabs,'StreamIndices',labIndex)  s1= mlfg6331_64 random stream       StreamIndex: 4        NumStreams: 256              Seed: 0          NormalTransform: Ziggurat

Varias secuencias, ya que son estadísticamente independientes, se pueden utilizar para verificar la precisión de una simulación. Por ejemplo, se puede utilizar un conjunto de secuencias independientes para repetir una simulación de Monte Carlo varias veces en diferentes sesiones o en diferentes procesadores y determinar la varianza en los resultados.MATLAB Esto hace que varias secuencias sean útiles en simulaciones paralelas a gran escala.

Nota

No todos los algoritmos generadores admiten varias secuencias. Consulte la tabla de algoritmos de generador para obtener un resumen de las propiedades del generador.Elegir un generador de números aleatorios