/* distStudent.js
Essa unidade implementa a distribuição de Student e sua
inversa. Pré-requisitos
distGlobais.js
distBetaI.js
Se for usada a função studentInversa(P,gl):
distInverte.js
*/
/* ************** FUNCTION STUDENT(t,GL,tipo) ***************
Calcula a probabilidade "entrecaudas" da distribuição de Student
com "GL" graus de liberdade. Retorna um objeto da classe
Resultado.
Pré-requisitos:
* função betai(a,b,x)
* classe Resultado()
*/
function student(t,GL,tipo){
var R = new Resultado()
beta = betai(GL/2.0,0.5,GL/(GL+t*t))
if(beta.erro) return R.msg(beta.valor)
if(tipo==ENTRECAUDAS) return R.val(1.0-beta.valor) // entre caudas
else if (t>=0.0) return R.val(1.0-beta.valor/2.0) // acumulada
else return R.val(beta.valor/2.0) // acumulada
}// function student
/* ************* CLASS OBJETOSTUDENT(gl,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
de Student.
O parâmetro "gl" é o número de graus de liberdade.
O método "func(x)" retorna um objeto da classe "Resultado"
cuja propriedade "valor" é a probabilidade qui quadrado com "gl" graus
de liberdade
Pré-requisito: * função student(x,gl)
*/
function ObjetoStudent(gl,tipo){
this.gl=gl
this.tipo=tipo
this.func=function func(x){
return student(x,this.gl,this.tipo)
}// method func
}// objetoStudent
/* ************** FUNCTION STUDENTINVERSA(P,gl,tipo) ***************
Calcula a inversa da probabilidade da distribuição
de Student com "GL" graus de liberdade. Retorna um objeto da classe
Resultado.
Pré-requisitos:
* classe ObjetoStudent
*/
function studentInversa(P,gl,tipo){
var obj = new ObjetoStudent(gl,tipo)
return inverte(obj,P ,0,1,0.0000001)
}// function studentInversa