Ejercicios · Bloque 4: Entrada/Salida, Cadenas y Computación Científica — 4.3 NumPy y Gráficos
5 ejercicios resueltos paso a paso.
4.3 NumPy y Gráficos
1.
6
1. Desarrolla una función potencial_lennard_jones(r_array, epsilon=1.0, sigma=0.34) que evalúe de forma vectorizada con NumPy el potencial intermolecular $V(r) = 4\epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right]$ sobre un array de distancias interatómicas en nanómetros.
1. Desarrolla una función potencial_lennard_jones(r_array, epsilon=1.0, sigma=0.34) que evalúe de forma vectorizada con NumPy el potencial intermolecular $V(r) = 4\epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right]$ sobre un array de distancias interatómicas en nanómetros.
2.
6
2. Implementa una función comparar_producto_matriz_vector(M,
v) que reciba una matriz cuadrada $N \times N$ y un vector de longitud $N$, calculando el producto matriz-vector $y = M \cdot v$ de dos formas: mediante bucles anidados en Python puro y mediante np.. dot(M, v), comprobando la igualdad numérica absoluta con np.. allclose.
2. Implementa una función comparar_producto_matriz_vector(M,
v) que reciba una matriz cuadrada $N \times N$ y un vector de longitud $N$, calculando el producto matriz-vector $y = M \cdot v$ de dos formas: mediante bucles anidados en Python puro y mediante np.. dot(M, v), comprobando la igualdad numérica absoluta con np.. allclose.
3.
6
3. Desarrolla una función filtrar_senales_numpy(senales, sigma_corte=2.5) que tome un ndarray 1D de medidas con ruido gaussiano, identifique los outliers que disten más de sigma_corte desviaciones típicas de la media, y retorne un array limpio donde los valores anómalos se hayan sustituido por la mediana de la serie.
3. Desarrolla una función filtrar_senales_numpy(senales, sigma_corte=2.5) que tome un ndarray 1D de medidas con ruido gaussiano, identifique los outliers que disten más de sigma_corte desviaciones típicas de la media, y retorne un array limpio donde los valores anómalos se hayan sustituido por la mediana de la serie.
4.
6
4. Escribe una función calibrar_sensor_lineal(x_patron, y_medida) que realice un ajuste por mínimos cuadrados de primer orden utilizando np.. polyfit, calculando la pendiente $m$, el punto de corte $n$ y el coeficiente de determinación $R^2$ entre las medidas observadas y el modelo lineal.
4. Escribe una función calibrar_sensor_lineal(x_patron, y_medida) que realice un ajuste por mínimos cuadrados de primer orden utilizando np.. polyfit, calculando la pendiente $m$, el punto de corte $n$ y el coeficiente de determinación $R^2$ entre las medidas observadas y el modelo lineal.
5.
6
5. Desarrolla un script de visualización con Matplotlib que genere una curva de oscilación amortiguada $y(t) = e^{-\gamma t} \cos(\omega t)$ para $t \in [0, 10]$, configure título, etiquetas de ejes con unidades, rejilla de fondo, y guarde la figura en formato vectorial PNG de alta resolución (300 DPI) con plt.. savefig('oscilacion.. png', dpi=300).
5. Desarrolla un script de visualización con Matplotlib que genere una curva de oscilación amortiguada $y(t) = e^{-\gamma t} \cos(\omega t)$ para $t \in [0, 10]$, configure título, etiquetas de ejes con unidades, rejilla de fondo, y guarde la figura en formato vectorial PNG de alta resolución (300 DPI) con plt.. savefig('oscilacion.. png', dpi=300).