/* Carga los comandos de interpolación */
load(interpol)$
/* Definimos los puntos a interpolar */
p:[[-5,0.4762],[-4,0.7692],[-3,1.4286],[-2,3.3333],[-1,10],
[0,10],[1,3.3333],[2,1.4286],[3,0.7692],[4,0.4762],[5,0.3226]]$
/* Calcula los splines cúbicos naturales y se asignan a f(x) */
f(x):=cspline(p)$
/* Función original */
g(x):=10/(x^2+x+1)$
/* Calcula el polinomio de Lagrange y se asigna a h(x) */
h(x):=lagrange(p)$
/* Imprime los trazadores cúbicos */
print("f(x)=",f(x))$
/* Dibuja los trazadores, el polinomio de Lagrange, la
función original y la nube de puntos */
draw2d( 
color = cyan,
key = "Funcion Lagrange", 
explicit(h(x),x,-5,5),
/* grafica para valores de x desde el -5 hasta 5
   con color rojo los trazadores */
color = red, 
key = "Interpolacion splines cubicos", 
explicit(f(x),x,-5,5), 
color = green,
key = "Funcion original", 
explicit(g(x),x,-5,5),  
point_size = 3, 
color = blue, 
key = "Puntos Marcados", 
points(p))$