Genera números aleatorios distribuidos uniforme, normal o exponencialmente.
Sintaxis
Noise(Value, [ Distribution = NOISE_UNIFORM ] [ , Init ])
La sintaxis de la función Noise consta de los siguientes elementos:
Parte |
Descripción |
||||||||
|---|---|---|---|---|---|---|---|---|---|
Value |
Cualquier valor que determina el número, la estructura de datos y la unidad de los números aleatorios. Todas las estructuras de datos están permitidas. Se permiten todos los tipos de datos numéricos. Si el argumento es una lista, la función se ejecuta para cada elemento de la lista y el resultado también es una lista. |
||||||||
Distribution |
Determina la distribución estadística que deben tener los números aleatorios. El argumento Distribution puede tener los siguientes valores:
Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso. Se establece el valor predeterminado NOISE_UNIFORM si no se especifica el argumento. |
||||||||
Init |
Es el valor de inicialización del generador de números aleatorios. Si indica 0, el generador no se reinicializa, es decir, se continúa la secuencia ya iniciada con una llamada anterior. Si omite el argumento o ejecuta la función por primera vez, el generador se inicializa con la hora actual del sistema. Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos numéricos. Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso. |
Notas
El tipo de datos del resultado es siempre En coma flotante de 64 bits.
La estructura del resultado corresponde a la del argumento Value.
Si Value tiene una estructura de datos compuesta, es decir, una señal, una serie de señales o una curva espacial, los componentes X y, en caso necesario, Z se copian en el resultado y se genera un número aleatorio para cada valor del componente Y.
Para generar los números aleatorios distribuidos uniformemente, la función utiliza un generador aleatorio con una longitud de ciclo aleatoria, como la descrita como generador "RANROT Type W" en [1].
Los números aleatorios distribuidos normalmente se generan a partir de los números aleatorios distribuidos uniformemente mediante el método Box-Mueller. Los números aleatorios generados tienen un valor medio de 0 y una desviación típica de 1. Cualquier otra distribución normal puede derivarse de esta mediante una simple transformación lineal: μ + σ * Noise(x, NOISE_NORMAL), con el valor medio deseado μ y la desviación típica deseada σ.
Los números aleatorios distribuidos exponencialmente se derivan de los distribuidos uniformemente mediante el procedimiento de transformación. Los números aleatorios generados tienen un lambda de 1. Se puede generar cualquier otra distribución exponencial a partir de esta por división: Ruido(x, NOISE_EXPONENTIAL)/λ, con la λ deseada.
Ambos procedimientos de transformación se describen, entre otros, en [2].
Disponibilidad
FlexPro Basic, Professional, Developer Suite
Ejemplos
Noise(1) |
Resulta (por azar) 0,8499. |
x = (1000, 0.1 s, 0.01 s) |
Genera una señal con 1000 números aleatorios distribuidos uniformemente en el intervalo [0, 1] V y con componente X de 0 s a 10 s. |
3. + 2. * Noise(1#100, NOISE_NORMAL) |
Genera una serie de datos con 100 números aleatorios distribuidos normalmente con un valor medio de 3 y una desviación típica de 2. |
Véase también
Bibliografía
[1] "William H. Press et al.": "Numerical Recipes in C, Second Edition". http://www.agner.org/random/theory, 2001.
[2] "William H. Press et al.": "Numerical Recipes in C, Second Edition", página 274. "Cambridge University Press", 1992. ISBN 0-552-43108-5.