Integrar es una de las principales operaciones que realizamos a lo largo del curso en distintas asignaturas como puede ser matemáticas, física e incluso en química se realizan, por lo que a
continuación os dejamos un video explicativo de Analytics University para aclararos dudas que podáis tener acerca de la formación del código.
Y dos formas de integración que hemos realizado gracias a la ayuda de Arturo (incluyendo gráficas de representacion de la función:
INTEGRACIÓN SIMPLE
f=function(x){ #Expreso f como función
N=(1+x^2)*exp(-(x^2))
}
a<-0; b<-5
Frect=function(a,b){ #Rectángulo
v=f(a)*(b-a)}
FPMed<-function(a,b){ #Punto Medio
v<-(b-a)*f((a+b)/2)}
FTrap<-function(a,b){ #Trapecio
v<-(b-a)*(f(a)+f(b))/2}
FSimp<-function(a,b){ #Simpson
z<-(a+b)/2
v<-(b-a)*(f(a)+4*f(z)+f(b))/6
return(v)}
valR<-Frect(a,b); valPM<-FPMed(a,b) #Pido resultados
valT<-FTrap(a,b);valS<-FSimp(a,b)
valR; valPM; valT; valS
INTEGRACIÓN COMPUESTA
f=function(x){ #Expreso f como función
v=(1+x^2)*exp(-(x^2))
return(v)
}
sum1=0; sum2=0; sum3=0; sum4=0; sum5=0 #Inicializo variables
#La integración das ding an sich
RectComp=function(j,h,s){ #Rectángulo Compuesto
for (i in 1:j){
sum1=sum1+f(s[i])
}
valor=h*sum1
return(valor)
}
TrapComp=function(j,h,s){ #Trapecio Compuesto
for (i in 2:j){
sum2=sum2+f(s[i])
}
valor=(h/2)*(2*sum2+f(s[1])+f(s[j+1]))
return(valor)
}
PmComp=function(j,h,s){ #Punto Medio Compuesto
for (i in 1:j){
sum3=sum3+f((s[i]+s[i+1])/2)
}
valor=(h)*(sum3)
return(valor)
}
SimpsonComp=function(j,h,s){ #Simpson Compuesta
for(i in 1:j){
sum4=sum4+f((s[i]+s[i+1])/2)
}
for (i in 2:j){
sum5=sum5+f(s[i])
}
valor=(h/6)*(f(s[i])+4*sum4+2*sum5+f(s[i+i]))
return(valor)
}
#Lo del MaxNumInterv, que voy a llamar n por pura pereza
n=60 #Introduzco datos
a<-0; b<-5
InterpR=0; InterpT=0; InterpP=0; InterpS=0; xx=0;
for (j in 1:n){ #Rallada de bucle
h=(b-a)/j #En serio, no se pq pone la h aquí
for (i in 1:j+1){
s[i]=a+(i-1)*h
}
xx[j]=j
InterpR[j]=RectComp(j,h,s)
InterpT[j]=TrapComp(j,h,s)
InterpP[j]=PmComp(j,h,s)
InterpS[j]=SimpsonComp(j,h,s)
}
InterpR
InterpT
InterpP
InterpS
par(mfrow=c(3,2)) #Represento las funciones
plot(xx,InterpR,pch=9,col="purple",main="Rectángulo Compuesto")
plot(xx,InterpT,col="green",type="b",main="Trapecio Compuesto")
plot(xx,InterpP,col="yellow",type="l",main="Punto Medio Compuesto")
plot(xx,InterpS,pch=9,col="black",type="s",main="Simpson Compuesto")
ff<-0 #Esto ni idea de lo que es
xf=seq(0,5,length=50)
for (i in 1:50){
ff[i]<-f(xf[i])
}
plot(xf,ff,col="magenta",type="h",ylab="valor de la función",xlab="x",main="f(x)")
Comentarios