En esta entrada, mostramos como plotear esta función en el lenguaje R:
# Límite del valor de las variables
x1 = seq(-5.12, 5.12, length = 500)
x2 = x1
# Rastrigin
f = function(x1,x2) { 20+(x1^2-10*cos(2*3.1416*x1))+(x2^2-10*cos(2*3.1416*x2)) }
# Evaluación
z1 = outer(x1,x2,f)
z1[is.na(z1)] = 1
# Paleta de colores (200 colores en gradiente)
# Instala viridis (si aún no lo está)
colors = viridis::viridis(200)
# Tamaño de las regiones
z.facet.center = (z1[-1, -1] + z1[-1, -ncol(z1)] + z1[-nrow(z1), -1] + z1[-nrow(z1), -ncol(z1)])/4
# Rango de la región central en escala 200 (número de colores)
z.facet.range = cut(z.facet.center, 200)
# Comienza el ploteo 3D
persp(x1,x2,z1, theta=30, phi=20, expand=1.0, col=colors[z.facet.range], border=NA, scale=TRUE, ltheta=90, shade=0.1, ticktype="detailed", d=5, r=sqrt(10), nticks=5, box=TRUE, axes=TRUE, xlab="x1", ylab="x2", zlab="f(x1,x2)")
No hay comentarios.:
Publicar un comentario