est_poly <- function(x,y,slopes,n) {
x_vals <- seq(x[1],x[2],length.out = n)
p0 <- y[1]
p1 <- slopes[1]
p2 <- (3*(y[2]-y[1])/(x_vals[-1]-x_vals[1])-2*(slopes[1])-slopes[2])/(x_vals[-1]-x_vals[1])
p3 <- (slopes[1]+slopes[2]-2*(y[2]-y[1])/(x_vals[-1]-x_vals[1]))/(x_vals[-1]-x_vals[1])^2
x1 <- x_vals[1]
result <- c()
for (i in x_vals) {
poly <- p0+p1*(i-x1)+p2*(i-x1)^2+p3*(i-x1)^3
result <- append(result, poly[4])
}
return(matrix(data = c(x_vals,result), nrow = n))
}
x_eg2 <- c(0,1)
y_eg2 <- c(0,1)
slopes_eg <- c(0,2)
est_poly(x_eg2, y_eg2, slopes_eg, n=5)
Hi just want to know how to use apply or lapply to replace the for loop. Should get this as my output.
Thank you!
