Si alguien tiene la duda de que es la función meshgrid, les dejo una página que me ayudó . Página
Introducción
Aprendamos sobre cálculo
¿Qué es el cálculo?
Funciones y límites
¿Qué es una función?
Configuración del entorno de trabajo con Google Colab
Dominio y rango de una función
Cómo programar funciones algebraicas
Cómo programar funciones trascendentes
¿Cómo manipular funciones?
Funciones dentro de otras funciones
Características de las funciones
¿Cómo se compone una neurona?
Funciones de activación en una neurona
Función de coste: calcula qué tan erradas son tus predicciones
¿Qué es un límite?
Cálculo diferencial
¿De dónde surge la derivada?
Notación de la derivada
Empecemos a derivar
¿Por qué es importante la derivada?
Máximos y mínimos: subidas y bajadas en una montaña rusa
¿Cómo optimizar una función?
Cálculo multivariable
Más dimensiones para tus funciones
Diseñando mapas: curvas de nivel
Derivadas parciales
Ejemplos de derivadas parciales
Regla de la cadena y su utilidad en cálculo multivariable
Subamos con el gradiente
Proyecto: descenso del gradiente
¿Qué es el descenso del gradiente?
Graficando nuestra función de coste
Aplicando el descenso
¿Cómo continúa tu ruta de aprendizaje?
¡Nunca pares de aprender matemáticas!
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 28
Preguntas 6
Si alguien tiene la duda de que es la función meshgrid, les dejo una página que me ayudó . Página
Me emociones con este tema, le cambie varias veces los colores a mis graficas y al finar resulto algo bien psicodelico 😅
Miren este mapa me ayudo real me ayudo a entenderlo mejor, yo lo veo como cortar rebanadas horizontales a nuestra grafica 3d y ver que grafica en 2d queda desde arriba
Entendiendo las curvas de nivel y los mapas
.
Las curvas de nivel son básicamente la vista en planta (desde arriba) de una superficie. Entonces, a partir de esto puedes tener una idea de cómo es la superficie.
.
Son bastante versátiles para representar valores. También las curvas de nivel se usan para representar un terreno (el de una ciudad, por ejemplo), lo que es útil para ingeniería civil, ciencias geográficas, física y geología.
.
#Grafica 3D
from matplotlib import cm #Para colores
import numpy as np #Para crear lo arreglos y las funciones matematicas
import matplotlib.pyplot as plt #Para graficar
def z(x,y):
return np.sin(x) + 2 * np.cos(y)
res = 100
x = np.linspace(-4,4,num=res)
y = np.linspace(-4,4,num=res)
x,y = np.meshgrid(x,y)
z = z(x,y)
fig , ax = plt.subplots(subplot_kw={"projection":"3d"})
surf = ax.plot_surface(x,y,z,cmap=cm.cool)
fig.colorbar(surf)
Curvas de Nivel
Curvas de Nivel
fig2, ax2 = plt.subplots()
level_map = np.linspace(np.min(z),np.max(z),num = 10)
cp = ax2.contourf(x,y,z,levels = level_map ,cmap=cm.cool)
fig2.colorbar(cp)
Para las personas que quieren interactuar con los gráficos, aquí los pasos (en jupyter-notebook):
Instalar anaconda o crear un ambiente virtual con pip, como virtualenv. Esto lo pueden aprender en el curso de ingeniería de datos con python.
Una vez instalado alguno de los dos, inicialicen el ambiente virtual, e instalen ipympl. En anaconda es con conda install ipyml, si crearon un ambiente virtual propio es pip install ipympl
En la hoja de jupyter-notebook, escribirán lo siguiente y solo lo tendrán que ejecutar una sola vez por cada hoja de jupyter-notebook:
%matplotlib widget
Si, con el signo de porcentaje incluido. Esto consume bastante recursos cuando se trata de un gráfico 3d (también se puede usar para gráficos en 2d). Si quieren volver al original, solo cambien la línea de arriba por lo siguiente y ejecútenla:
%matplotlib inline
Dos mapas
from matplotlib import cm # Para manejar colores
import numpy as np
import matplotlib.pyplot as plt
#SUPERFICIES SUBPLOTS
def f(x,y):
return np.sin(x) + 2*np.cos(y)
res = 100
x = np.linspace(-4, 4, res)
y = np.linspace(-4, 4, res)
#MESHGRID(X,Y): DEVUELVE MATRICES DE COORDENADAS DE VECTORES COORDENADAS
X, Y = np.meshgrid(x, y)
Z = f(X,Y)
# Gráficar la superficie
#SUBPLOTS(NROWS=1,NCOLS=1, ,DPI=100):CREA UN CONJUNTO DE FIGURAS
#DPI:RESOLUCION DE LA FIGURA
#FIGSIZE(ANCHO=6.4, ALTO=4.8):ANCHO Y ALTO EN PULGADAS
#RETORNA FIGURE, AXES
fig,ax = plt.subplots(1,2,figsize=(14,7),dpi=60, subplot_kw={"projection": "3d"})
#CON EL ANTIALIASED (SUAVIZADO) OFF SE OPERA MAS RAPIDO
surf1 = ax[0].plot_surface(X, Y, Z, cmap=cm.cool, linewidth=0, antialiased=False)
fig.colorbar(surf1, ax=ax[0])
ax[0].set_title("Superficie Tema cool")
surf2 = ax[1].plot_surface(X, Y, Z, cmap=cm.hot, linewidth=0, antialiased=False)
fig.colorbar(surf2, ax=ax[1])
ax[1].set_title("Superficie Tema hot")
plt.show()
Con cm=gist_rainbow_r
Recomiendo correrlo en un ambiente virtual en la maquina,
Valle morado está ma, sería montaña para morado y valle para el azul claro
Siempre me pregunte como era que se hacian estos graficos. Lo mejor es que ya entendí este video que vi hace años:
¿Qué es el Descenso del Gradiente? Algoritmo de Inteligencia Artificial | DotCSV
Espero les guste o/
Para hacer la papa de Pringles:
return 4 + y**2 - x**2
Esto me hubiera sido muy útil cuando estudiaba en la carrera la materia de cálculo de multivariables.
Ya habia manejado matplotlib pero nunca así! lo amé! No se si profundizan más en el uso de matplolib en otros cursos, porque quedé encantada
En el minuto 2:00 cuando el profe hizo un silencio raro, alguien más pensó que muteo sin querer el video o que se le dañaron los audífonos 😂😂😂😂
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
def f(x,y):
return np.sin(x) + 2*np.cos(y)
if __name__ == '__main__':
res = 100
x = np.linspace(-4, 4, num=res)
y = np.linspace(-4, 4, num=res)
x, y = np.meshgrid(x,y)
z = f(x,y)
fig, ax = plt.subplots(subplot_kw={"projection":"3d"})
surf = ax.plot_surface(x,y,z, cmap=cm.cool)
fig.colorbar(surf)
plt.show()
En verdad vale la pena correrlo en la máquina con ambiente virtual, lo puedes visualizar un poco mejor al moverlo en 3D. En este caso hice la función:
Z = np.exp(X) + np.sin(Y)
Y me salió como una hoja de papel doblada:
Las curvas de nivel son, como su nombre lo dice, curvas que describen todos los puntos en los cuales un la función f(x,y) = c siendo c una constante, por ejemplo:
Sea f(x,y) = x^2 + y^2 , al igualarla a una constante _c =1 _ entonces la curva es x^2+y^2=1 que es el conjunto de todos los puntos que cumplen esa regla en el plano R^2 y por lo que podemos ver es un circulo. En otras palabras z=f(x,y)=c donde c es una constante podemos ver que si cortamos un plano a la altura c ,desde arriba veríamos esa curva de nivel.
Estoy usando otro notebook diferente al de la clase y si no añado el siguiente código al final nunca hace el plot.
z.show(plt, width='500px')
Creo que necesito descansar, en vez de “curvas de nivel” leí “curvas de miel” jajaja.
Excelente clase, esperaba que todo el curso fuera aplicado con Python.
acá les comparto la documentación de subplots, donde pueden ver que otros argumentos aparte de subplot_kw pueden pasar y también la documentación de add_subplot donde explican que ademas del tipo de proyección, pueden pasar que haga un gráfica polar entre otros.
Excelente la clase, se entiende muy bien
Les dejo mi curva de nivel con la función de la clase. Usé un colorbar que me gusta mucho, se llama “coolwarm”.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.