# tracé de la loi loi normale # ****************************************** # trace.loi.normale(mu,sigma,limx,aire) : # * Variables d'entrées : # * mu et sigma : les paramètres de la loi normale (moyenne et écart-type) # par défaut respectivement égaux à 0 et 1. # * limx=NULL par défaut : calcul automatique des abscisses minimales et maximales de x # si égal à c(xmin,xmax), graphe sur [xmin,xmax] # * aire=NULL par défaut : tracé d'une aire # si égal à c(a,b), ou -Inf<=a<=b<=+Inf, tracé en rouge de l'aire comprise entre a et b, sous la normale # *sortie : # * le graphe trace.loi.normale<- function(mu=0,sigma=1,limx=NULL,aire=NULL) { if (is.null(limx)) { seuilgraphique<-1e-5 xlim<-mu+c(-1,1)*sigma*sqrt(-log(seuilgraphique))} else {xlim<-limx} .x <- seq(xlim[1],xlim[2],length=500) plot(.x, dnorm(.x, mean=mu, sd=sigma), xlab="x", ylab="Density", main=paste("Normal Distribution: mu=",mu,", sigma=",sigma), type="l") abline(h=0, col="gray") if (!is.null(aire)) {a<-aire[1] b<-aire[2] if ((b>=xlim[1])&(a<=xlim[2])) { alpha<-max(c(a,xlim[1])) beta<-min(c(b,xlim[2])) if (alpha==beta) {abline(v=a,col="green") points(c(alpha,alpha),c(0,dnorm(alpha,mean=mu,sd=sigma)),col="red",type="l")} else {abline(v=c(a,b),col="green") pp<-1000 auxi<-seq(beta,alpha,length=pp) X<-c(alpha,beta,auxi) Y<-c(0,0,dnorm(auxi,mean=mu,sd=sigma)) polygon(X,Y,col = "red") } } } }