#PRACTICA 5, Programa biocombustible rm(list=ls(all=TRUE)) # DEFINO TODAS LAS FUNCIONES Polbase = function(s,t,n){ L=0 # No funciona si lo definimos aquí con 1 al crearlo lo defino con 0. for (i in 1:n){ L[i]= 1 for (j in 1:n){ if(i!=j){ #!= diferente HAY QUE PONERLO HACIA ABAJO EL PUNTITO L[i]= L[i]*((t-s[j])/(s[i]-s[j])) } } } return(L) } PolInterp = function(B,L,n){ p=0 for(i in 1:n){ p= p+(B[i]*L[i]) } return(p) } # INTRODUZCO LOS DATOS B= c(10,20,35.33,35.5) ; s= c(1,3.5,5,10) ; n=length(s) ; tt= c(2, 6.5) # LLAMO A LAS FUNCIONES LBASE1 = Polbase(s,tt[1],n) POL1= PolInterp(B,LBASE1,n) #INTERPOLACIÓN EN EL 1º PUNTO POL1 LBASE2 = Polbase(s,tt[2],n) POL2= PolInterp(B,LBASE2,n) #INTERPOLACIÓN EN EL 2º PUNTO POL2 # PARTE 4 x= seq(s[1], s[n],length=1001) # PARTE 5 f=0 for(k in 1:1001){ POLINOMIOS_BASE = Polbase(s,x[k],n) f[k]= PolInterp(B,POLINOMIOS_BASE,n) } f # REPRESENTACIÓN GRÁFICA plot(x,f,type='l',lwd=3, col='green',ylim=c(0,60),ylab='BIOETANOL (g/l)', xlab='TIEMPO (h)', main = 'PRODUCCIÓN BIOETANOL') # lwd= line width par(new='TRUE') plot(s,B,pch=15,cex= 2,col='red', ylim=c(0,60),xlab='',ylab='') # HAY QUE PONER LOS LÍMITES DEL GRÁFICO PORQUE SI NO, ME REPRESENTA CADA FUNCIÓN # EN UNA ESCALA DIFERENTE