# Contour plot of Rosenbrock's banana function with gradient field
n.grid <- 50
x1 <- seq(-2, 2, length = n.grid)
x2 <- seq(-1, 3, length = n.grid)
y <- outer(x1, x2, function(x1, x2) banana(cbind(x1, x2)))
contour(x1, x2, y, xaxs = "i", yaxs = "i", nlevels = 25, xlab = "x1", ylab = "x2")
x <- expand.grid(seq(-2, 2, length = 25), seq(-1, 3, length = 25))
gradient <- bananaGrad(x)
vectorfield(x, gradient, col = 4, scale = 1)
vectorfield(x, gradient, col = 4, scale = 1, max.len = 0.2)
# Perspective plot of Rosenbrock's banana function
col.pal <- colorRampPalette(c("#00007F", "blue", "#007FFF", "cyan", "#7FFF7F", "yellow",
"#FF7F00", "red", "#7F0000"))
colors <- col.pal(100)
y.facet.center <- (y[-1, -1] + y[-1, -n.grid] + y[-n.grid, -1] + y[-n.grid, -n.grid])/4
y.facet.range <- cut(y.facet.center, 100)
persp(x1, x2, y, phi = 30, theta = -315, expand = 0.75, ticktype = "detailed",
col = colors[y.facet.range])
Run the code above in your browser using DataLab