top of page

PRÁCTICA 6: 

Polinomio interpolador de Lagrange en R

EJERCICIO 1:

11-down.png

SOLUCIÓN:

#Paso 1#

PolBase=function(t,s){

    n=length(s)

    L=c(0)

    for (i in 1:n){

        L[i]=1

        for (j in 1:n){ 

            if (j!=i){

                L[i]=L[i]*(t-s[j])/(s[i]-s[j])

            }

        }

    }

    return(L)

}

#Paso 2#

PolInterp=function(B,L){

    n=length(B)

    p=0

    for (i in 1:n){

        p=p+B[i]*L[i]

    }

    return(p)

}

#Paso 3#

#t=2

t=2

L1=PolBase(t,s)

pol1=PolInterp(B,Lb)

L1

pol1

#t=6.5

t=6.5

L2=PolBase(t,s)

pol2=PolInterp(B,Ln)

L2

pol2

#Paso 4#

x=seq(s[1],s[n],length=1001)

#Paso 5#

f=c(0)

for (k in 1:1001){

    t=x[k]

    lo=PolBase(t,s)

    f[k]=PolInterp(B,lo)

}

f

Captul.PNG

SOLUCIÓN:

plot(s,B,xlim=c(s[1],s[n]),ylim=c(0,60),pch=19,col='blue', xlab='x',ylab='Concentracion',main='Produccion de bioetanol')

par(new='TRUE')

plot(x,f, xlim=c(s[1],s[n]),ylim=c(0,60)) 

  

Otra idea: para obtener 1001 abscisas equidistantes en el intervalo [s[1],s[n]] y almacenarlas en el vector x

1º: otra opción es poner lo que mide cada trozo

h= ((s[n]- s[1]) / 1000)

x=seq(s[1],s[n],h)

2º: y otra opción sería hacer un bucle:

for (i in 1:1001){

   x[i]=s[1]+(i-1)h

¡¡CUIDADO!!

ERRORES COMUNES:

pp.PNG

   -La función está definida por un sumatorio, asegúrate de inicializar el vector L, como L=0, FUERA del bucle for.

  • Cada bucle que abres, ya sea condicional, while o for, DEBES CERRARLO. Las funciones TAMBIÉN.

  • Ten cautela con los paréntesis, todos los que abres se deben cerrar. 

  • Si son vectores debes añadir el igual y la c como digo en la explicación. El vector tiene la siguiente: vector=c(Datos)

  • Deberás poner () en el bucle para poner desde donde oscila n 

  • Se escribe lenght en lugar de length.

  • Deberás poner el comando return () tras la función

  • par=(new...) es incorrecto, la forma correcta es par(new...)

  • Deberás poner las llaves de los if, según se cierre el paréntesis 

  • Mantén el orden de las variables de las funciones descritas a la hora de realizar las operaciones. Ej: Polbase=function(n,s,t) 

Explicación en vídeo:

Para más información se puede acceder al repositorio a través del enlace

* DESCARGA AQUÍ EL DOCUMENTO CON LA PRÁCTICA 6 RESUELTA

Fuentes: Logo diseñado por una integrante de nuestro grupo, las imágenes de fondo han sido encontradas en la plataforma que nos proporcionó nuestro profesor y en la galería de wix, los enunciados de ejercicios son capturas de nuestros apuntes

©2020 por Grupo T12, programación.

bottom of page