In [1]:
# rm(list=ls())
options(OutDec = ",") 
#==============================================================================
# Exemplo do calculo do valor esperado de uma variavel aleatoria qui-quadrada 
# com 'nu' graus de liberdade pela regra do trapezio
#==============================================================================
# Funcao para a integracao numerica pela regra do trapezio
#==============================================================================
trapezio <- function(a,b,f,nsub){
	# (a,b) e' o intervalo de integracao
	# f e' a funcao que se deseja integrar
	# nsub e' o numero de subintervalos
	xseq <- seq(a,b,length=(nsub+1))
	inc  <- xseq[2]-xseq[1] 
	yseq <- f(xseq)
	return(0.5*inc*(yseq[1]+yseq[nsub+1]+2*sum(yseq[2:nsub])))
}
In [2]:
#==============================================================================
# Funcao objetivo - qui-quadrado 2 graus de liberdade
#==============================================================================
fx <- function(x){
	x*dgamma(x,2/2,1/2)
}
In [3]:
#==============================================================================
# Avaliacoes da integral
#==============================================================================
print("===============================")
trapezio(0.0001,30,fx,4)
print("===============================")
trapezio(0.0001,30,fx,20)
print("===============================")
trapezio(0.0001,30,fx,100)
print("===============================")
trapezio(0.0001,30,fx,1000)
[1] "==============================="
0,693828597768591
[1] "==============================="
1,90882860492639
[1] "==============================="
1,99624480720366
[1] "==============================="
1,9999527128869
In [4]:
# rm(list=ls()) 
#==============================================================================
# graphics.off()
#==============================================================================
# Fim
#==============================================================================