Texto y código sujeto bajo Creative Commons Attribution license, CC-BY-SA. (c) Original por Lorena A. Barba, 2013, traducido libremente por F.J. Navarro-Brull para CAChemE.org %pylab inline # El comando de arriba hará que figuras de este notebook se representen junto al texto import numpy as np # estamos importando numpy y abreviándolo con np import matplotlib.pyplot as plt # junto con librería de gráficos 2D, llamándola plt nx = 41 dx = 2./(nx-1) nt = 20 # nt es el número de intervalos de tiempo que se desea calcular dt = .025 # dt es la cantidad de tiempo que cada incremento de tiempo comprende (delta t) u = np.ones(nx) # como antes, se inicializa 'u' con cada valor igual a 1. u[.5/dx : 1/dx+1]=2 # a continuación, u = 2 entre 0,5 y 1 para completar la C.I. (condiciones inicial) un = np.ones(nx) #inicializar el marcador de posición de conjunto de 'un', para almacenar la solución de tiempo instante por instante for n in range(nt): # iteración con respecto al tiempo un[:] = u[:] ## copia los valores existentes de 'u' en 'un' for i in range(1,nx): ## ahora iteraremos por el array 'u' ### Esto que viene a continuación ### es la línea del Paso 1, copia exacta. Edítala para nuestra nueva equación. ### después descoméntala y ejecuta la celda para evaluar la ec. de conv. no lineal. ###u[i] = un[i]-c*dt/dx*(un[i]-un[i-1]) plt.plot(np.linspace(0,2,nx),u) ## Representa los resultados from IPython.display import YouTubeVideo YouTubeVideo('y2WaK7_iMRI') from IPython.core.display import HTML def css_styling(): styles = open("../styles/custom.css", "r").read() return HTML(styles) css_styling()