C#, cálculo numérico: método de cálculo y programa fuente de distribución normal logarítmica

 

La distribución normal logarítmica (logarithmic normal distribution) significa que el logaritmo de una variable aleatoria obedece a la distribución normal, luego la variable aleatoria obedece a la distribución normal logarítmica. La distribución lognormal está muy cerca de la distribución normal en el corto plazo. Pero a la larga, la distribución lognormal distribuye más valores hacia arriba.

Algunas cantidades son inherentemente asimétricas. Por ejemplo, considere el tiempo que le toma a la gente completar una tarea en particular: dado que todos son diferentes, obtenemos una distribución. Sin embargo, todos los valores son necesariamente positivos (ya que el tiempo no puede ser negativo). Además, también podemos predecir la forma probable de la distribución: hay un tiempo mínimo que nadie puede vencer, luego unos pocos "campeones" muy rápidos, seguidos por un pico de los tiempos de finalización más representativos de la gente común y finalmente un larga lista de "rezagados" al final. Obviamente, una distribución gaussiana no describiría bien tal distribución, porque en una distribución gaussiana x se puede definir como positivo o negativo, es simétrico y tiene colas muy cortas.
En muchas aplicaciones, especialmente en confiabilidad y mantenibilidad, los datos pueden no seguir una distribución normal. Sin embargo, el logaritmo de una variable aleatoria puede tener una distribución normal, que se denomina distribución lognormal. Si se aplica una distribución lognormal, la gráfica de los datos en una gráfica lognormal será una línea recta. El procedimiento para graficar es el mismo que para otras distribuciones. El proceso de análisis incluye calcular la media y la desviación estándar de los valores logarítmicos y tomar el logaritmo del resultado final.
La distribución lognormal es similar a la distribución normal, excepto que su distribución de probabilidad se desplaza hacia la derecha. La distribución lognormal está muy cerca de la distribución normal en el corto plazo. Pero a la larga, la distribución lognormal distribuye más valores hacia arriba. Más precisamente, en la distribución lognormal, existe una mayor posibilidad de fluctuaciones al alza y una menor posibilidad de fluctuaciones a la baja.
La distribución lognormal se usa en el análisis de confiabilidad de dispositivos semiconductores y la vida de fatiga de ciertos tipos de piezas mecánicas. Su uso principal es para el análisis exacto de los datos de tiempo de reparación en el análisis de mantenibilidad.
Conociendo la función de densidad de la distribución lognormal, las expresiones de la función de confiabilidad y la función de no confiabilidad de la distribución se pueden calcular de acuerdo con la definición de la función de confiabilidad y la función de no confiabilidad.

La distribución lognormal tiene las siguientes propiedades:
(1) La distribución normal es una distribución lognormal después de la transformación exponencial; la distribución lognormal es una distribución normal después de la transformación logarítmica.
(2) γ, t es un número real positivo, X es una distribución lognormal con parámetros (μ, σ), entonces sigue siendo una distribución lognormal con parámetros .
(3) El logaritmo normal siempre está sesgado a la derecha.
(4) La media y la varianza de la distribución lognormal son funciones crecientes de sus parámetros (μ, σ).
(5) Para un parámetro μ dado, cuando σ tiende a cero, la media de la distribución lognormal tiende a exp(μ) y la varianza tiende a cero.
 

utilizando el sistema;

espacio de nombres Legalsoft.Truffer
{     public class Lognormaldist : Erf     {         private double mu { get; colocar; }         firma doble privada { get; colocar; }



        public Lognormaldist(doble mmu = 0.0, doble ssig = 1.0)
        {             this.mu = mmu;             this.sig = ssig;             if (sig <= 0.0)             {                 throw new Exception("sig incorrecto en Lognormaldist");             }         }






        public double p(doble x)
        {             if (x < 0.0)             {                 throw new Exception("mala x en Lognormaldist");             }             //if (x == 0.0)             if (Math.Abs(x) <= float.Epsilon)             {                 return 0.0;             }             return (0.398942280401432678 / (sig * x)) * Math.Exp(-0.5 * Globals.SQR((Math.Log(x) - mu) / sig));         }










        public double cdf(doble x)
        {             if (x < 0.0)             {                 throw new Exception("mala x en Lognormaldist");             }             //if (x == 0.0)             if (Math.Abs(x) <= float.Epsilon)             {                 return 0.0;             }             devuelve 0.5 * erfc(-0.707106781186547524 * (Math.Log(x) - mu) / sig);         }










        public double invcdf(doble p)
        {             if (p <= 0.0 || p >= 1.0)             {                 throw new Exception("mala p en Lognormaldist");             }             return Math.Exp(-1.41421356237309505 * sig * inverfc(2.0 * p) + mu);         } }     }








 

Supongo que te gusta

Origin blog.csdn.net/beijinghorn/article/details/131894187
Recomendado
Clasificación