/* distNormal.js
Esta unidade calcula a distribuição normal. Para utilizá-la
é necessário utilizar também as unidades:
distGlobais.js e
distGammaI.js
para usar a função normalInversa é necessário
usar a unidade
distInverte.js
*/
/* *************** FUNCTION NORMAL(z, tipo) *************
Esta função calcula a função a probabilidade de uma distribuição
normal padrão. O parâmetro "tipo" especifica se a probabilidade
retornada será a probab. acumulada (tipo=0) ou entre as
caudas (tipo=1 diferente de zero).
Ela retorna um objeto da classe "Resultado". Caso a
propriedade "erro" seja true, a mensagem de erro estará na
propriedade "valor". Caso não haja erro o objeto retornado
terá a propriedade "valor" contendo a probabilidade.
O parâmetro "tipo" indica se a probabilidade retornada
é acumulada (tipo=0) ou central (tipo != 0). Caso o
valor se z seja negativo o parâmetro tipo é ignorado
e a probabilidade retornada é a acumulada.
Pré-requisitos:
* a classe Resultado
* a função gammp(a,x)
*/
function normal(z,tipo){
var R = new Resultado()
var G = gammp(0.5,0.5*z*z)
if(G.erro) return R.msg(G.valor)
else {
if(z>=0.0)
if(tipo==ACUMULADA) return R.val((1+G.valor)/2.0) //acumulada
else return R.val(G.valor) //entre caudas
else return R.val((1-G.valor)/2.0) //acumulada
}
}// normal
/* ********* CLASS OBJETONORMAL(tipo) *******************
Encapsula as propriedades e métodos necessários para a
criação de um objeto a ser usado como parâmetro das funções
zbrac e "inverte" na geração da inversa da distribuição
normal.
O parâmetro "tipo" indica se a distribuição é acumulada
(tipo=0) ou entre caudas (tipo não zero).
O método "func(x)" retorna um objeto da classe "Resultado"
com a probabilidade normal na propriedade "valor"
Pré-requisito:
* função normal(z, tipo)
*/
function ObjetoNormal(tipo){
this.tipo=tipo
this.func=function func(x){
return normal(x,tipo)
} // method func(x)
}// ObjetoNormal
/* *************** FUNCTION NORMALINVERSA(P, tipo) *************
Esta função calcula a função a inversa da probabilidade com uma
distribuição normal padrão. O parâmetro "tipo" especifica se a
probabilidade retornada será a probab. acumulada (tipo=0) ou entre as
caudas (tipo=1 diferente de zero).
Ela retorna um objeto da classe "Resultado". Caso a
propriedade "erro" seja true, a mensagem de erro estará na
propriedade "valor". Caso não haja erro o objeto retornado
terá a propriedade "valor" contendo a probabilidade.
Pré-requisitos:
* a classe Resultado
* a função inverte
*/
function normalInversa(P,tipo){
var R = new Resultado()
var obj = new ObjetoNormal(tipo)
return inverte(obj,P ,0,1,0.0000001)
}//function normalInversa