Created
March 6, 2017 02:31
-
-
Save odarbelaeze/25ce1220ce0a4c434fcf2854acd55414 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Intro\n", | |
"\n", | |
"Este es el primer taller de informática 3, que cubre conceptos básicos de Python, gráficos y ajustes, use este notebook para resolver el taller y, por favor use tantas celdas como necesite pero use las celdas marcadas como primera celda para cada ejercicio, en orden, para que sea más fácil calificar." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Ejecute esta celda para importar las librerías y funciones necesarias\n", | |
"\n", | |
"%matplotlib notebook\n", | |
"from IPython.display import set_matplotlib_formats\n", | |
"set_matplotlib_formats('png', 'pdf')\n", | |
"\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"from numpy import polyfit, polyval\n", | |
"from scipy.stats import linregress\n", | |
"from scipy.optimize import curve_fit" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Gráficos\n", | |
"\n", | |
"Realice los gráficos del pdf adjunto `graficos.pdf`, los gráficos deben tener todos los detalles (colores, grillas, y ordenamiento multigráfico)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir los gráficos en esta celda, use una celda por gráfico\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Ajustes" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Ajustes lineales\n", | |
"\n", | |
"Utilizando la función `linregress`, ajuste los siguíentes datos, produzca un gráfico con los datos originales y la regresión lineal, haga que el `label` del ajuste sea la ecuación de la recta que encontró incluyendo el valor del coeficiente de correlación `r`." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(0, 10)\n", | |
"y = 3.0 * x - 5\n", | |
"y += np.random.normal(0, 0.1, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(0, 10)\n", | |
"y = 3.0 * x - 5\n", | |
"y += np.random.normal(0, 1.0, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(0, 10)\n", | |
"y = 3.0 * x - 5\n", | |
"y += np.random.normal(0, 10.0, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Ajustes linealizados\n", | |
"\n", | |
"Usando linealización y la función `linregress` ajuste los siguientes datos, recuerde recuperar los factores y datos originales al terminar el ajuste lineal, realize el gráfico lado a lado con el ajuste lineal y el ajuste de los datos originales." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(0, 10)\n", | |
"y = 3.0 * x ** 2\n", | |
"y += np.random.normal(0, 0.1, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(0, 10)\n", | |
"y = 3.0 * np.sqrt(x)\n", | |
"y += y * np.random.normal(0, 0.05, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"collapsed": false, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(0, 10)\n", | |
"y = 3.0 * x ** 0.75\n", | |
"y += np.random.normal(0, 0.1, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": false, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(0, 10)\n", | |
"y = np.sqrt(5 * x)\n", | |
"y += y * np.random.normal(0, 0.05, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(0.1, 10)\n", | |
"y = np.log(5 * x)\n", | |
"y += y * np.random.normal(0, 0.05, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Ajustes polinomiales\n", | |
"\n", | |
"Usando la función `polyfit` ajuste los siguientes polinomios, produzca un gráfico con los datos originales y el ajuste del polinomio, escriba el polinomio resultante para cada caso." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(-10, 10)\n", | |
"y = polyval(np.random.normal(0, 3, size=2), x)\n", | |
"y += np.random.normal(0, 0.5, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(-10, 10)\n", | |
"y = polyval(np.random.normal(0, 3, size=3), x)\n", | |
"y += np.random.normal(0, 0.5, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(-50, 50, 1000)\n", | |
"y = polyval(np.random.normal(0, 10, size=4) / np.exp(np.linspace(1, 10, 4))[::-1], x)\n", | |
"y += np.random.normal(0, 0.5, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(-50, 50, 1000)\n", | |
"y = polyval(np.random.normal(0, 10, size=5) / np.exp(np.linspace(1, 10, 5))[::-1], x)\n", | |
"y += np.random.normal(0, 0.5, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Ajustes arbitrarios\n", | |
"\n", | |
"Usando la función `curve_fit` ajuste las siguientes funciones, recuerde incluir un gráfico de los datos originales, así como el ajuste obtenido, e incluya en los gráficos una referencia la la función objetivo usada así como los parámetros optimos obtenidos con el ajuste." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(-50, 50, 1000)\n", | |
"y = np.exp(-(x - 10) ** 2 / 3)\n", | |
"y += np.random.normal(0, 0.01, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(-50, 50, 1000)\n", | |
"y = np.exp(-(x - 10) ** 2 / 3) + np.exp(-(x + 20) ** 2 / 3)\n", | |
"y += np.random.normal(0, 0.01, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(-50, 50, 1000)\n", | |
"y = 4 * np.exp(-(x - 10) ** 2 / 3) + 0.5 * np.exp(-(x + 20) ** 2 / 3)\n", | |
"y += np.random.normal(0, 0.01, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(-50, 50, 1000)\n", | |
"y = np.exp(-(x - 10) ** 2 / 3) + np.exp(-(x + 20) ** 2 / 3) + 0.1 * np.sqrt(np.abs(x))\n", | |
"y += np.random.normal(0, 0.01, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"x = np.linspace(-10, 10, 1000)\n", | |
"y = 100 * np.exp(-(x) ** 2 / 3) + x ** 2\n", | |
"y += np.random.normal(0, 0.01, size=y.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": true, | |
"deletable": true, | |
"editable": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Empiece a construir el gráfico y el ajuste en esta celda\n" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.0" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment