# spline cubica (f.polin. di 3° grado che passi per i punti, sia ivi derivabile fino al 2° ordine)
x <- c(1,3,4,5,7); y <- c(5,20,29,20,20)
x1 <- 0; x2 <- 8; y1 <- -1; y2 <- 30
plot(c(x1,x2),c(y1,y2),type="n",xlab="", ylab="")
abline(h=0,v=0); abline(h=seq(5,30,5),v=seq(1,8,1),lty=3)
points(x,y,col="blue",pch=19)
lines(spline(x,y,n=1000),col="red")
# estensione del tracciamento al di fuori dei dati
lines(spline(x,y,n=1000,xmin=0,xmax=8),col="brown")

# altro esempio
x <- c(20,50,80,110,140,170,200,230,260,290,320,350)
y <- c(13,13.5,12.5,10,9,7.5,6,5,6,7,11,15)
x1 <- 0; x2 <- 350; y1 <- 0; y2 <- 15
plot(c(x1,x2),c(y1,y2),type="n",xlab="", ylab="")
abline(h=0,v=0); abline(h=seq(1,15,1),v=seq(50,350,50),lty=3)
points(x,y,col="blue",pch=19)
lines(spline(x,y,n=1000),col="red")