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.

sobolset

Sobol quasirandom Point set

Descripción

es un objeto de conjunto de punto quasirandom que produce puntos a partir de la secuencia Sobol.sobolset La secuencia Sobol es una secuencia digital de base 2 que rellena el espacio de una manera muy uniforme.

Creación

Descripción

p = sobolset(d) construye un conjunto de puntos dimensional, que es un objeto con valores de propiedad predeterminados.dpsobolset El argumento de entrada corresponde a la propiedad de.dDimensionsp

ejemplo

p = sobolset(d,Name,Value) conjuntos de usar uno o más argumentos de par nombre-valor.Propiedadesp Incluya cada nombre de propiedad entre comillas. Por ejemplo, crea un conjunto de puntos de cinco dimensiones desde el primer punto, cuarto punto, séptimo punto, décimo punto, y así sucesivamente.sobolset(5,'Leap',2)

El objeto devuelto encapsula las propiedades de una secuencia quasirandom de Sobol.p El conjunto de puntos es finito, con una longitud determinada por las propiedades y por los límites del tamaño de los índices del conjunto de puntos (valor máximo de 2SkipLeap53). Los valores del conjunto de puntos se generan cada vez que se accede mediante indexación o paréntesis.pnet Los valores no se almacenan dentro.p

Propiedades

expandir todo

Esta propiedad es de solo lectura.

Número de dimensiones de los puntos en el conjunto de punto, especificado como un escalar entero positivo en el intervalo [1, 1111]. Por ejemplo, cada punto del conjunto de puntos tiene cinco valores.pp.Dimensions = 5

Utilice el argumento de entrada para especificar el número de cotas al crear un conjunto de puntos mediante la función.dsobolset

Utilice la función de objeto para reducir el número de cotas después de crear un conjunto de puntos.reduceDimensions

Intervalo entre los puntos de la secuencia, especificado como un escalar entero positivo. En otras palabras, la propiedad de un punto conjunto especifica el número de puntos en la secuencia para saltar y omitir para cada punto tomado.Leap El valor predeterminado es 0, que corresponde a tomar cada punto de la secuencia.Leap

El salto es una técnica utilizada para mejorar la calidad de un conjunto de puntos. Sin embargo, debe elegir los valores con cuidado.Leap Muchos valores crean secuencias que no se tocan en grandes sub-hiperrectángulos de la unidad hipercubo y, por lo tanto, no pueden ser un conjunto de puntos quasirandom uniforme.Leap Para obtener más información, consulte.[4]

Ejemplo: p = sobolset(__,'Leap',50);

Ejemplo: p.Leap = 100;

Método de generación de puntos, especificado como o.'standard''graycode' La propiedad especifica el orden en el que se producen los puntos de secuencia de Sobol.PointOrder Cuando se establece en, los puntos producidos coinciden con la implementación de la secuencia de Sobol original.PointOrder'standard' Cuando se establece en, la secuencia se genera mediante una implementación que usa el código Gray del índice en lugar del propio índice.PointOrder'graycode'

Puede utilizar la opción para una generación de secuencia más rápida, pero el software cambia el orden de los puntos generados.'graycode' Para obtener más información sobre la implementación del código Gray, consulte.[1]

Ejemplo: p = sobolset(__,'PointOrder','graycode');

Ejemplo: p.PointOrder = 'standard';

Configuración que controla la aleatorización de la secuencia, especificada como una estructura con estos campos:

  • — Un vector de caracteres que contiene el nombre de laType

  • — Una matriz de celdas de valores de parámetro para el ScrambleOptions

Utilice la función de objeto para establecer los Scrambles.Lucha Para obtener una lista de tipos válidos de Scramble, vea el argumento de entrada de.typeLucha Se produce un error si establece un tipo de Scramble no válido para un conjunto de puntos determinado.

La propiedad también acepta una matriz vacía como un valor.ScrambleMethod A continuación, el software borra todos los aleatorización y establece la propiedad para que contenga una estructura.0x0

Número de puntos iniciales de la secuencia que se omiten en el conjunto de punto, especificado como un escalar entero positivo.

Los puntos iniciales de una secuencia a veces exhiben propiedades indeseables. Por ejemplo, el primer punto es a menudo, lo que puede hacer que la secuencia sea desequilibrada porque la contrapartida del punto, nunca aparece.(0,0,0,...)(1,1,1,...) Además, los puntos iniciales a menudo exhiben correlaciones entre diferentes dimensiones, y estas correlaciones desaparecen más adelante en la secuencia.

Ejemplo: p = sobolset(__,'Skip',2e3);

Ejemplo: p.Skip = 1e3;

Esta propiedad es de solo lectura.

Tipo de secuencia en el que se basa el conjunto de puntos quasirandom, especificado como.p'Sobol'

Funciones del objeto

netGenere el conjunto de puntos quasirandom
reduceDimensionsReduzca las dimensiones del conjunto de puntos de Sobol
LuchaScramble set de puntos quasirandom

También puede utilizar las siguientes funciones con un objeto.MATLAB®sobolset El software trata el objeto de conjunto de puntos como una matriz de puntas multidimensionales.

lengthLongitud de la dimensión de matriz más grande
sizeTamaño de un array

Ejemplos

contraer todo

Genere un conjunto de puntos de Sobol tridimensional, omita los primeros 1000 valores y, a continuación, conserve cada punto 101.

p = sobolset(3,'Skip',1e3,'Leap',1e2)
p =  Sobol point set in 3 dimensions (89180190640991 points)  Properties:               Skip : 1000               Leap : 100     ScrambleMethod : none         PointOrder : standard  

Aplicar una lucha lineal aleatoria combinada con un cambio digital aleatorio mediante el uso de.Lucha

p = scramble(p,'MatousekAffineOwen')
p =  Sobol point set in 3 dimensions (89180190640991 points)  Properties:               Skip : 1000               Leap : 100     ScrambleMethod : MatousekAffineOwen         PointOrder : standard  

Genere los primeros cuatro puntos usando.net

X0 = net(p,4)
X0 = 4×3

    0.7601    0.5919    0.9529
    0.1795    0.0856    0.0491
    0.5488    0.0785    0.8483
    0.3882    0.8771    0.8755

Genere cada tercer punto, hasta el undécimo punto, utilizando la indexación de paréntesis.

X = p(1:3:11,:)
X = 4×3

    0.7601    0.5919    0.9529
    0.3882    0.8771    0.8755
    0.6905    0.4951    0.8464
    0.1955    0.5679    0.3192

Sugerencias

  • Las propiedades y son útiles para las aplicaciones paralelas.SkipLeap Por ejemplo, si tiene una licencia, puede particionar una secuencia de puntos entre diferentes trabajadores mediante la función.Parallel Computing Toolbox™Nlabindex En cada trabajo TH, establezca la propiedad del punto establecido ennSkip n – 1 y la propiedad paraLeap N – 1. El código siguiente muestra cómo particionar una secuencia entre tres trabajadores.

    Nworkers = 3; p = sobolset(10,'Leap',Nworkers-1); spmd(Nworkers)     p.Skip = labindex - 1;      % Compute something using points 1,4,7...     % or points 2,5,8... or points 3,6,9... end

Algoritmos

expandir todo

Referencias

[1] Bratley, P., and B. L. Fox. “Algorithm 659 Implementing Sobol's Quasirandom Sequence Generator.” ACM Transactions on Mathematical Software. Vol. 14, No. 1, 1988, pp. 88–100.

[2] Hong, H. S., and F. J. Hickernell. “Algorithm 823: Implementing Scrambled Digital Sequences.” ACM Transactions on Mathematical Software. Vol. 29, No. 2, 2003, pp. 95–109.

[3] Joe, S., and F. Y. Kuo. “Remark on Algorithm 659: Implementing Sobol's Quasirandom Sequence Generator.” ACM Transactions on Mathematical Software. Vol. 29, No. 1, 2003, pp. 49–57.

[4] Kocis, L., and W. J. Whiten. “Computational Investigations of Low-Discrepancy Sequences.” ACM Transactions on Mathematical Software. Vol. 23, No. 2, 1997, pp. 266–294.

[5] Matousek, J. “On the L2-Discrepancy for Anchored Boxes.” Journal of Complexity. Vol. 14, No. 4, 1998, pp. 527–556.

Introducido en R2008a