C#, cálculo numérico - método de cálculo e programa fonte de distribuição normal logarítmica

 

A distribuição normal logarítmica (distribuição normal logarítmica) significa que o logaritmo de uma variável aleatória obedece à distribuição normal, então a variável aleatória obedece à distribuição normal logarítmica. A distribuição lognormal é muito próxima da distribuição normal no curto prazo. Mas no longo prazo, a distribuição lognormal distribui mais valores para cima.

Algumas quantidades são inerentemente assimétricas. Por exemplo, considere o tempo que as pessoas levam para concluir uma determinada tarefa: como todos são diferentes, obtemos uma distribuição. No entanto, todos os valores são necessariamente positivos (já que o tempo não pode ser negativo). Além disso, podemos também prever a forma provável da distribuição: há um tempo mínimo que ninguém consegue vencer, depois alguns "campeões" muito rápidos, seguidos de um pico dos tempos de finalização mais representativos das pessoas comuns e, finalmente, um longa lista de "desgarrados" no final. Obviamente, uma distribuição gaussiana não descreveria bem tal distribuição, porque em uma distribuição gaussiana x pode ser definido como positivo ou negativo, é simétrico e tem caudas muito curtas.
Em muitas aplicações, especialmente confiabilidade e facilidade de manutenção, os dados podem não seguir uma distribuição normal. No entanto, o logaritmo de uma variável aleatória pode ter uma distribuição normal, que é chamada de distribuição lognormal. Se uma distribuição lognormal for aplicada, o gráfico dos dados em um gráfico lognormal será uma linha reta. O procedimento para traçar é o mesmo que para outras distribuições. O processo de análise inclui o cálculo da média e desvio padrão dos valores logarítmicos e a obtenção do logaritmo do resultado final.
A distribuição lognormal é semelhante à distribuição normal, exceto que sua distribuição de probabilidade é deslocada para a direita. A distribuição lognormal é muito próxima da distribuição normal no curto prazo. Mas no longo prazo, a distribuição lognormal distribui mais valores para cima. Mais precisamente, na distribuição lognormal, há maior possibilidade de flutuações ascendentes e menor possibilidade de flutuações descendentes.
A distribuição lognormal é usada na análise de confiabilidade de dispositivos semicondutores e na vida à fadiga de certos tipos de peças mecânicas. Seu principal uso é para análise exata de dados de tempo de reparo na análise de manutenibilidade.
Conhecendo a função de densidade da distribuição lognormal, as expressões da função de confiabilidade e da função de não confiabilidade da distribuição podem ser calculadas de acordo com a definição da função de confiabilidade e da função de não confiabilidade.

A distribuição lognormal tem as seguintes propriedades:
(1) A distribuição normal é a distribuição lognormal após a transformação exponencial; a distribuição lognormal é a distribuição normal após a transformação logarítmica.
(2) γ, t é um número real positivo, X é uma distribuição lognormal com parâmetros (μ, σ), então ainda é uma distribuição lognormal com parâmetros .
(3) O lognormal é sempre assimétrico à direita.
(4) A média e a variância da distribuição lognormal são funções crescentes de seus parâmetros (μ, σ).
(5) Para um determinado parâmetro μ, quando σ tende a zero, a média da distribuição lognormal tende a exp(μ) e a variância tende a zero.
 

usando Sistema;

namespace Legalsoft.Truffer
{     public class Lognormaldist : Erf     {         private double mu { get; definir; }         private double sign { get; definir; }



        public Lognormaldist(double mmu = 0.0, double ssig = 1.0)
        {             this.mu = mmu;             this.sig = ssig;             if (sig <= 0.0)             {                 throw new Exception("sig inválido em Lognormaldist");             }         }






        public double p(double x)
        {             if (x < 0.0)             {                 throw new Exception("x ruim em 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(double x)
        {             if (x < 0.0)             {                 throw new Exception("x ruim em Lognormaldist");             }             //if (x == 0.0)             if (Math.Abs(x) <= float.Epsilon)             {                 return 0.0;             }             return 0,5 * erfc(-0,707106781186547524 * (Math.Log(x) - mu) / sig);         }










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








 

Acho que você gosta

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