s1Eva_2023PAOI_T1 Desacople de cohete de dos etapas

Ejercicio: 1Eva_2023PAOI_T1 Desacople de cohete de dos etapas

literal a. Planteamiento

La ecuación a usar según el enunciado es y usando los valores dados es:

v = u \ln\Big(\frac{m_0}{m_0-qt}\Big) - gt 800 = 1870 \ln\Big(\frac{195000}{195000-2500 t}\Big) - 9.8 t

con lo que la función para buscar la raíz es:

f(t) = 1870 \ln\Big(\frac{195000}{195000-2500 t}\Big) - 9.8 t -800

Literal b. Intervalo de búsqueda

Para el intervalo de búsqueda se puede usar una gráfica e interpretar el punto a buscar alrededor de 800 m/s. Que de la gráfica se observa que un intervalo alrededor de 35 sería válido para el método de la Bisección. Para otros métodos abiertos, también es posible deducir un punto t0.

La validación se muestra con la primera iteración al evaluar f(30) que es negativo y f(40) que es de signo positivo.

Desacople de cohete de dos etapasInstrucciones en Python

# 1Eva_2023PAOI_T1 Desacople de cohete de dos etapas
import numpy as np
import matplotlib.pyplot as plt

# INGRESO
v = lambda t: 1870*np.log(195000/(195000-2500*t))-9.8*t
a = 0
b = 40
tramos = 51

# PROCEDIMIENTO
ti = np.linspace(a,b,tramos)
vi = v(ti)

# SALIDA
plt.plot(ti,vi)
plt.xlabel('ti')
plt.ylabel('vi')
plt.title('Velocidad vertical vs tiempo')
plt.grid()
plt.show()

literal c. Desarrollo con algoritmo de Bisección

itera =0, intervalo [30,40]

f(30) = 1870 \ln\Big(\frac{195000}{195000-2500 (30)}\Big) - 9.8 (30) -800 = -186.100 f(40) = 1870 \ln\Big(\frac{195000}{195000-2500 (40)}\Big) - 9.8 (40) -800 = 152.759 c= \frac{a+b}{2}= \frac{30+40}{2} = 35 f(35) = 1870 \ln\Big(\frac{195000}{195000-2500 (35)}\Big) - 9.8 (35) -800 = -29.399

error = tramo = |40-30| = 10

como f(a) y f(c) son del mismo signo, el intervalo nuevo será [35,40]

itera =1 , intervalo [35,40]

c= \frac{35+40}{2} = 37.5 f(37.5) = 1870 \ln\Big(\frac{195000}{195000-2500 (37.5)}\Big) - 9.8 (37.5) -800 = 58.111

error = tramo = |40-35| = 5

como f(c) y f(b) son del mismo signo, el intervalo nuevo será [35,37.5]

itera =2 , intervalo [35,37.5]

c= \frac{37.5+35}{2} = 36.25 f(36.25) = 1870 \ln\Big(\frac{195000}{195000-2500 (36.25)}\Big) - 9.8 (36.25) -800 = 13.518

error = tramo = |37.5-35| = 2.5

como f(c) y f(b) son del mismo signo, el intervalo nuevo será [35,36.25]

[ i, a,    c,     b,     f(a),    f(c),   f(b),   tramo]
  1 30.000 35.000 40.000 -186.100 -29.399 152.759 10.000 
  2 35.000 37.500 40.000 -29.399   58.111 152.759  5.000 
  3 35.000 36.250 37.500 -29.399   13.518 58.111   2.500 
  4 35.000 35.625 36.250 -29.399   -8.144 13.518   1.250 
  5 35.625 35.938 36.250 -8.144     2.635 13.518   0.625 
  6 35.625 35.781 35.938 -8.144    -2.767 2.635    0.312 
  7 35.781 35.859 35.938 -2.767    -0.069 2.635    0.156 
  8 35.859 35.898 35.938 -0.069     1.282 2.635    0.078 
raiz:  35.8984375
>>>

literal d. tolerancia y errores

La tolerancia depende de la escala a la que se mide y el instrumento de medición. Si consideramos décimas de segundo la tolerancia será de 10-1. ó 0.1

Los errores entre iteraciones se muestran en el literal anterior.

literal e. convergencia

Los errores en cada iteración disminuye, lo que muestra que el método converge. Luego de 8 iteraciones se encuentra el tiempo ti a usar como 35.8 s.

Se adjunta el algoritmo de la bisección ajustado para el ejercicio. La gráfica es complementaria a la presentada en el literal b, que puede ser incorporada al mismo algoritmo para la presentación.

Instrucciones en Python

# Algoritmo de Bisección
# 1Eva_2023PAOI_T1 Desacople de cohete de dos etapas
import numpy as np

# INGRESO
fx = lambda t: 1870*np.log(195000/(195000-2500*t))-9.8*t -800
a = 30
b = 40
tolera = 0.1

# PROCEDIMIENTO
tabla = []
tramo = b-a

fa = fx(a)
fb = fx(b)
i = 1
while (tramo>tolera):
    c = (a+b)/2
    fc = fx(c)
    tabla.append([i,a,c,b,fa,fc,fb,tramo])
    i = i + 1
                 
    cambia = np.sign(fa)*np.sign(fc)
    if (cambia<0):
        b = c
        fb = fc
    else:
        a=c
        fa = fc
    tramo = b-a
c = (a+b)/2
fc = fx(c)
tabla.append([i,a,c,b,fa,fc,fb,tramo])
tabla = np.array(tabla)

raiz = c

# SALIDA
np.set_printoptions(precision = 4)
print('[ i, a, c, b, f(a), f(c), f(b), tramo]')
# print(tabla)

# Tabla con formato
n=len(tabla)
for i in range(0,n,1):
    unafila = tabla[i]
    formato = '{:.0f}'+' '+(len(unafila)-1)*'{:.3f} '
    unafila = formato.format(*unafila)
    print(unafila)
    
print('raiz: ',raiz)

1Eva_2023PAOI_T1 Desacople de cohete de dos etapas

1ra Evaluación 2023-2024 PAO I. 4/Julio/2023

Tema 1 (30 puntos) El 20 de abril del 2023 será recordado por SpaceX por ser el día en que Starship, el cohete totalmente re – utilizable más alto y más potente de la historia, consiguió alzar el vuelo. cohete dos etapas hot staging

Sin embargo, la nave ha explotado pocos minutos después de su despegue.

El sistema de lanzamiento es de dos etapas: la primera etapa impulsa el vehículo al momento del lanzamiento, en la segunda etapa el cohete propulsor se desacopla y la nave sigue su camino en solitario encendiendo otros seis motores.

Para el siguiente lanzamiento se usa la separación de etapas en caliente (hot staging), que arranca los  motores de la etapa superior, o nave, mientras que la primera etapa, todavía está acoplada y funcionando.

Considere que la velocidad vertical de un cohete se calcula con la fórmula:

v = u \ln\Big(\frac{m_0}{m_0-qt}\Big) - gt

Donde:

v   = velocidad hacia arriba,
u   = 1870 m/s, velocidad a que se expele el combustible en relación con el cohete,
m0 = 195 000 kg, masa inicial del cohete en el tiempo t = 0,
q    = 2 500 kg/s,  tasa de consumo de combustible y
g    = 9.8 m/s2, aceleración de la gravedad

Si la segunda etapa debe iniciar cuando la velocidad del vehículo ha alcanzado los 800 m/s, encuentre el valor de tiempo cuando se debe iniciar el encendido de los seis motores de la nave.

a. Plantee el ejercicio a resolver usando un método numérico para búsqueda de raíces

b. Verifique el intervalo a usar

c. Desarrolle al menos tres iteraciones con todas las expresiones

d. Muestre la tolerancia y errores a considerar

e. Realice las observaciones de convergencia

Rúbrica: literal a (3 puntos), literal b (2puntos), literal c (15puntos), literal d (5 puntos), literal e (5 puntos)

Referencia: [1] En su reconstrucción de Starship, Spacex ha encontrado una inspiración sorprendente: el Soyuz soviético. 28 Junio 2023. https://www.xataka.com/espacio/spacex-se-prepara-para-volver-a-lanzar-starship-starship-grandes-cambios-que-recuerdan-al-soyuz-sovietico

[2] Los 4 minutos de gloria del cohete Starship. nationalgeographic.com.es  02 de mayo de 2023. https://www.nationalgeographic.com.es/ciencia/starship-primera-mision-cohete-mas-potente-historia_19780

[3] Starship Explosion Video: Watch Elon Musk’s Rocket Explode After Launch. Wall Street Journal. 20 abr 2023.

3Eva_2022PAOII_T4 Recesión económica, PIB y diferenciación numérica

3ra Evaluación 2022-2023 PAO II. 7/febrero/2023

Tema 4. (20 puntos) Las recesiones económicas se caracterizan por presentar una disminución del consumo, de la inversión y de la producción de bienes y servicios. Lo cual provoca, a su vez, que se despidan trabajadores y por tanto, aumente el desempleo. La recesión es también conocida como el periodo de «vacas flacas».

PIBEcuador2022_crecimiento01

La opinión emitida por Julius Shiskin en un artículo publicado el 28 de agosto de 1975 en el diario New York Times en torno a dos trimestres consecutivos de caída del PIB como plazo definitorio para el considerar una recesión.

a. Plantee y describa los métodos de diferenciación numérica que usen dos y tres puntos para primera derivada.

b. Realice tres iteraciones con los métodos numéricos seleccionados. Describa el tamaño de paso usado en cada método.

c. Compare los resultados del literal anterior y escriba sus observaciones respecto a las cotas de error.

d. Determine los periodos de “recesión económica” para los datos proporcionados entre el año 2012 y 20122. Liste acorde a lo definido por J. Shiskin. Use los algoritmos y adjunte los archivos usados (py,txt,png).

trimestres = ['2012.I', '2012.II', '2012.III', '2012.IV',
 '2013.I', '2013.II', '2013.III', '2013.IV', '2014.I',
 '2014.II', '2014.III', '2014.IV', '2015.I', '2015.II',
 '2015.III', '2015.IV', '2016.I', '2016.II', '2016.III',
 '2016.IV', '2017.I', '2017.II', '2017.III', '2017.IV',
 '2018.I', '2018.II', '2018.III', '2018.IV', '2019.I',
 '2019.II', '2019.III', '2019.IV', '2020.I', '2020.II',
 '2020.III', '2020.IV', '2021.I', '2021.II', '2021.III',
 '2021.IV', '2022.I', '2022.II', '2022.III']

PIB trimestral = [21.622937, 21.908844, 22.106937,
 22.285826, 23.019786, 23.441324, 24.238576, 24.429973,
 24.829431, 25.540887, 25.9404, 25.415613, 25.052739,
 25.086195, 24.779738, 24.371709, 24.913573, 24.926186,
 24.910741, 25.187196, 26.000261, 25.99355, 25.960907,
 26.341144, 26.510612, 26.761827, 27.078404, 27.211165,
 26.914897, 27.058331, 27.054758, 27.080023, 26.314576,
 23.110752, 24.64388, 25.221916, 25.412756, 26.20682,
 26.828611, 27.717679, 28.372038, 28.74092, 29.334581]

Rúbrica: literal a (3 puntos), literal b (9 puntos). literal c(3 puntos) literal d (5 puntos)

Referencia: Recesión económica. Wikipedia. https://es.wikipedia.org/wiki/Recesi%C3%B3n
Recesión económica. economipedia. https://economipedia.com/definiciones/recesion-economica.html

Boletín de Cuentas Nacionales Trimestrales No. 121, valores constantes USD 2007 y corrientes, período : 2000.I – 2022.IIIIT  Banco Central del Ecuador (2022) https://contenido.bce.fin.ec/documentos/PublicacionesNotas/Catalogo/CuentasNacionales/Indices/c121122022.htm

3Eva_2022PAOII_T3 EDO cabezal lector en disco duro

3ra Evaluación 2022-2023 PAO II. 7/febrero/2023

Tema 3. (35 puntos) El objetivo de un sistema de Disco duro es posicionar con precisión el dispositivo de lectura en la pista buscada y moverse entre una pista y otra. disco duro lectora01

Se requiere identificar el plato de disco, el sensor y el controlador.

El disco duro usa un motor DC de imán permanente para posicionar el brazo lector con el sensor en un extremo. Un resorte metálico se usa para permitir que el cabezal flote sobe el disco a una distancia menor a 100nm.

El cabezal toma lectura del flujo magnético y da una señal al amplificador.

Suponiendo que dispone del dispositivo de lectura de precisión, una aproximación del modelo de control del motor con Ka=40, se supone que el brazo es rígido con parámetros como los mostrados, el sistema se puede aproximar como un sistema de orden 2 en el dominio s o en su forma de ecuación diferencial.

Y(s)(s^2+20s+5K_a )=X(s)5K_a \frac{\delta^2}{\delta t^2 } y(t) + 20 \frac{\delta}{\delta t} y(t) + 5 K_a y(t) = x(t) 5 K_a

y(0) = 0         y’(0) = 0

x(t) = \begin{cases} 0 & t\lt 0 \\ 1 & t≥0 \end{cases}

Encuentre la respuesta del sistema y(t) ante una señal de entrada x(t), con las condiciones iniciales dadas.

a. Plantee la solución usando el método de Runge-Kutta de 2do orden.
b. Desarrolle tres iteraciones para Δt = 0.01
c. Estime el error del modelo usado
d. Realice la gráfica para y(t) para el intervalo de [0,1] segundos. Adjunte los archivos de los algoritmos.py usados para los cálculos, los resultados.txt y gráfica.png

Rúbrica:  literal a (5 puntos), literal b (15 puntos), literal c (5 puntos), literal d y adjuntos (10 puntos)

Referencia: Bishop R. & Dorf R. (2017) 13th Edition. 2.10 sequential Design example: Disk Drive read system. p122.
How do Hard Disk Drives Work? Branch Education. 22 diciembre 2022.

3Eva_2022PAOII_T2 Globo meteorológico espía distancia mas cercana

3ra Evaluación 2022-2023 PAO II. 7/febrero/2023

Tema 2. (20 puntos) Se requiere hacer el seguimiento a la trayectoria del globo aerostático del tema anterior, para descartar las sospechas de espionaje.

Area51 Simpson LisaDadas las coordenadas de un lugar considerado como de seguridad nacional p1(x,y)=[25,50] , se requiere revisar la distancia más cercana de la trayectoria y(x) del globo al punto de “interés”.

Se compararía la distancia mínima con el alcance las cámaras y sensores encontrados en los escombros del globo derribado.

Usando la trayectoria obtenida como resultado del tema anterior, se requiere:

a. Plantee el ejercicio describiendo los criterios usados, el método numérico y una tolerancia a usar.

b. Desarrolle el método para encontrar la raíz de la ecuación planteada, con al menos tres iteraciones.

c. Estime la cota de error, compare con la tolerancia descrita en el literal a.

Nota: Si el resultado del tema 1 no es satisfactorio, desarrolle el tema con y(x) = 70sin(0.1πx+0.5)

Rúbrica: literal a (5 puntos), literal b (10 puntos), literal c (5 puntos)

3Eva_2022PAOII_T1 Globo meteorológico espía derribado

3ra Evaluación 2022-2023 PAO II. 7/febrero/2023

Tema 1. (25 puntos) En enero del 2023 se detectó un globo aerostático globo aerostatico 01supuestamente espía sobre el territorio soberano de un país, que sobrevoló a 18 Km de altura en la estratosfera y que «no representaba ningún riesgo militar o físico los ciudadanos en la superficie».

Otro país vecino al mismo tiempo hacía seguimiento a otro «posible segundo incidente», se anunció en los medios de comunicación. En el primer caso se decidió no destruir el aparato por el temor de que la caída de sus escombros podría haber sido peligrosa para la superficie y no representaba el globo un peligro inmediato.

Como seguimiento al caso, se requiere describir la trayectoria del globo mediante ecuaciones a partir de las coordenadas de avistamiento reportadas por civiles.

ti    = [11, 12, 14, 15, 17, 19]
x(ti) = [15, 18, 25, 27, 31, 40]
y(ti) = [45, 55, 65, 58, 55, 40]

a. Plantear el ejercicio, describiendo los criterios, método numérico, segmentos a usar en las ecuaciones para realizar la interpolación polinómica de Lagrange.

minimizando oscilaciones del polinomio que puedan resultar en interpretaciones erradas.

b. Realizar el desarrollo analítico de las ecuaciones planteadas y presente el  polinomio simplificado.

c. Validar los resultados usando el algoritmo, adjunte los archivos.py, resultados.txt, gráfica.png

Rúbrica: literal a (5 puntos), literal b (10 puntos), literal c (10 puntos)

Referencias: Detectan un globo aerostático espía sobre territorio. Rtve.es/Agencias 03/febrero/2023. https://www.rtve.es/noticias/20230203/eeuu-detecta-globo-aerostatico-espia-china-sobre-su-territorio/2420646.shtml

Derriban globo «espía» sobre la costa del Atlántico. DW 04/febrero/2023. https://www.dw.com/es/eeuu-derriba-globo-esp%C3%ADa-chino-sobre-la-costa-del-atl%C3%A1ntico/a-64613403

EE.UU. derriba el presunto globo espía de China. CNN en Español. 4 feb 2023.

Globos chinos en América desatan preocupación mundial. DW Español
DW Español. 10 feb 2023

2Eva_2022PAOII_T3 EDP Parabólica con coseno 3/4π

2da Evaluación 2022-2023 PAO II. 24/Enero/2023

Tema 3. (35 puntos) Aproxime la solución a la siguiente ecuación diferencial parcial parabólica

\frac{\partial^2 u}{\partial x^2} = b \frac{\partial u}{\partial t}

2Eva2022PAOII_T3 EDP ParabolicaCon las siguientes condiciones de frontera:
u(0,t)=1
u(1,t)=0

Y las condiciones iniciales
u(x,0) = \cos \Big( \frac{3π}{2}x\Big)

Utilice diferencias finitas centradas para x, para t hacia adelante.

a. Plantee las ecuaciones para usar un método numérico en un nodo i,j
b. Realice la gráfica de malla,
c. desarrolle y obtenga el modelo discreto para u(xi,tj)

Suponga que b = 2, Aproxime la solución con Δx = 0.2, Δt = Δx/100.

d. Realice al menos tres iteraciones en el eje tiempo.
e. Estime el error de u(xi,tj), y presente observaciones sobre la convergencia del método.

Rúbrica: literal a (5 puntos), literal b (5 puntos), literal c (5 puntos), literal d (15 puntos), literal e (5 puntos).

Referencia: Chapra & R. Canale (2010). Métodos Numéricos para Ingenieros. Ejercicio 30.15 p904,
Solving the heat equation | DE3. 3Blue1Brown 16 Junio 2019.

 

s2Eva_2022PAOII_T3 EDP Parabólica con coseno 3/4π

Ejercicio: 2Eva_2022PAOII_T3 EDP Parabólica con coseno 3/4π

\frac{\partial^2 u}{\partial x^2} = b \frac{\partial u}{\partial t}

2Eva_2022PAOII_T3 EDP Parabolica Malla

\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{(\Delta x)^2} = b\frac{u_{i,j+1}-u_{i,j}}{\Delta t}

agrupando variables

\frac{\Delta t}{b} \frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{(\Delta x)^2} = \frac{\Delta t}{b}b\frac{u_{i,j+1}-u_{i,j}}{\Delta t} λ = \frac{\Delta t}{b(\Delta x)^2} λ = \frac{0.002}{2(0.2)^2} =0.025

como λ<0.5 el método converge.

\lambda \Big[u[i+1,j]-2u[i,j]+u[i-1,j]\Big] = u[i,j+1]-u[i,j]

por el método explícito:

u[i,j+1] =\lambda \Big[u[i+1,j]-2u[i,j]+u[i-1,j]\Big] + u[i,j] u[i,j+1] =\lambda u[i+1,j]+(1-2\lambda)u[i,j]+\lambda u[i-1,j]

iteración i=1, j=0

u[1,1] =\lambda u[0,0]+(1-2\lambda)u[1,0]+\lambda u[2,0] u[1,1] =0.025(1) +(1-2(0.025))\cos \Big( \frac{3π}{2}0.2\Big)+0.025 \cos \Big( \frac{3π}{2}0.4\Big)

iteración i=2, j=0

u[2,1] =\lambda u[1,0]+(1-2\lambda)u[2,0]+\lambda u[3,0] u[2,1] =0.025\cos \Big( \frac{3π}{2}0.2\Big) +(1-2(0.025))\cos \Big( \frac{3π}{2}0.4\Big) +0.025 \cos \Big( \frac{3π}{2}0.6\Big)

iteración i=3, j=0

u[3,1] =\lambda u[2,0]+(1-2\lambda)u[3,0]+\lambda u[4,0] u[3,1] =0.025\cos \Big( \frac{3π}{2}0.4\Big) +(1-2(0.025))\cos \Big( \frac{3π}{2}0.6\Big) +0.025 \cos \Big( \frac{3π}{2}0.8\Big)

iteración i=4, j=0

u[4,1] =\lambda u[3,0]+(1-2\lambda)u[4,0]+\lambda u[5,0] u[4,1] =0.025\cos \Big( \frac{3π}{2}0.6\Big) +(1-2(0.025))\cos \Big( \frac{3π}{2}0.8\Big) +0.025 (0)

continuar con las iteraciones en el algoritmo

Resultados con el algoritmo

Tabla de resultados
[[ 1.    1.    1.    1.    1.    1.    1.    1.    1.    1.  ]
 [ 0.59  0.58  0.56  0.55  0.54  0.53  0.53  0.52  0.51  0.5 ]
 [-0.31 -0.3  -0.3  -0.29 -0.28 -0.28 -0.27 -0.27 -0.26 -0.26]
 [-0.95 -0.93 -0.91 -0.89 -0.88 -0.86 -0.84 -0.82 -0.81 -0.79]
 [-0.81 -0.79 -0.78 -0.76 -0.74 -0.73 -0.71 -0.7  -0.68 -0.67]
 [ 0.    0.    0.    0.    0.    0.    0.    0.    0.    0.  ]]

2Eva2022PAOII_T3 EDP Parabolica 02

Instrucciones en Python

# EDP parabólicas d2u/dx2  = K du/dt
# método explícito,usando diferencias divididas
import numpy as np
import matplotlib.pyplot as plt

# INGRESO
# Valores de frontera
Ta = 1
Tb = 0
#T0 = 25
fx = lambda x: np.cos(3*np.pi/2*x)
# longitud en x
a = 0
b = 1
# Constante K
K = 2
# Tamaño de paso
dx = 0.2
dt = dx/100
# iteraciones en tiempo
n = 10

# PROCEDIMIENTO
# iteraciones en longitud
xi = np.arange(a,b+dx,dx)
fi = fx(xi)
m = len(xi)
ultimox = m-1

# Resultados en tabla u[x,t]
u = np.zeros(shape=(m,n), dtype=float)

# valores iniciales de u[:,j]
j=0
ultimot = n-1
u[0,:]= Ta
u[1:ultimox,j] = fi[1:ultimox]
u[ultimox,:] = Tb

# factores P,Q,R
lamb = dt/(K*dx**2)
P = lamb
Q = 1 - 2*lamb
R = lamb

# Calcula U para cada tiempo + dt
j = 0
while not(j>=ultimot): # igual con lazo for
    for i in range(1,ultimox,1):
        u[i,j+1] = P*u[i-1,j] + Q*u[i,j] + R*u[i+1,j]
    j=j+1

# SALIDA
print('Tabla de resultados')
np.set_printoptions(precision=2)
print(u)

# Gráfica
salto = int(n/10)
if (salto == 0):
    salto = 1
for j in range(0,n,salto):
    vector = u[:,j]
    plt.plot(xi,vector)
    plt.plot(xi,vector, '.r')
    
plt.xlabel('x[i]')
plt.ylabel('t[j]')
plt.title('Solución EDP parabólica')
plt.show()

2Eva_2022PAOII_T2 EDO – población de protestantes en una sociedad

2da Evaluación 2022-2023 PAO II. 24/Enero/2023

Tema 1. (35 puntos) protestantismoEn el libro titulado “Looking at History Through Mathematics”, Rashevsky propone un modelo que se puede relacionar con el “protestantismo” en el siglo XVI como una reacción y denuncia de abusos impuestos sobre la sociedad de la época.

En un modelo de Rashevsky modificado con la ecuación logística de Verhulst, la población x(t) de individuos en la sociedad para cada año t, con tasas de natalidad b=0.02 y mortalidad d=0.015, cambia según la ecuación:

\frac{\delta}{\delta t}x(t) = b x(t) - d (x(t))^2 x(0)=1

La cantidad de individuos “protestantes” y(t) en la población se incrementa según la ecuación diferencial compuesta de dos términos.

\frac{\delta}{\delta t}y(t) = b y(t) - d (y(t))^2 +r b (x(t)-y(t)) y(0)=0.01

El primer término supone que todas familias de padre y madre “protestantes” tienen hijos que también se identifican como tales.

El segundo término supone que una porción r = 0.1 de jóvenes descendientes de los “conformistas” al meditar sobre la situación actual, los hechos y los argumentos de protesta se convierten a “protestantes”.

a.       Realice el planteamiento del ejercicio usando Runge-Kutta de 2do Orden

b.       Desarrolle tres iteraciones para x(t), y(t) con tamaño de paso h=0.5.

c.       Usando el algoritmo, aproxime la solución entre t=0 a t=200 años, adjunte sus resultados en la evaluación.

d.       Realice una observación sobre el crecimiento de población y(t) a lo largo del tiempo.

Rúbrica: literal a (5 puntos), literal b (15 puntos), literal c (10 puntos), literal d (5 puntos)

Referencia: Burden 5.2 Ejercicio 17 p276, Rashevsky, MIT 1968. pp102-110, Protestantismo https://es.wikipedia.org/wiki/Protestantismo. 3Eva_IIT2014_T2 Crecimiento demográfico. http://blog.espol.edu.ec/analisisnumerico/3eva_iit2014_t2-crecimiento-demografico/

La Reforma protestante y Lutero. Academia Play. 27 agosto 2019

 

s2Eva_2022PAOII_T2 EDO – población de protestantes en una sociedad

Ejercicio: 2Eva_2022PAOII_T2 EDO – población de protestantes en una sociedad

\frac{\delta}{\delta t}x(t) = b x(t) - d (x(t))^2 \frac{\delta}{\delta t}y(t) = b y(t) - d (y(t))^2 +r b (x(t)-y(t))

literal a

simplificando la nomenclatura

x' = b x - d x^2 y' = b y - d y^2 +r b (x-y)

sustituyendo constantes, y considerando x(0)=1 ; y(0)=0.01 ; h=0.5

x' = 0.02 x - 0.015 x^2 y' = 0.02 y - 0.015 y^2 +0.1(0.02) (x-y)

el planteamiento de Runge Kutta se hace junto a la primera iteración, además de encontrarse en las instrucciones con Python.

literal b

Se describen 3 iteraciones usando los resultados de la tabla con el algoritmo, para mostrar la comprensión del algoritmo.

t = 0
K1x = 0.5 (0.02 (1) – 0.015 (1)2 = 0.0025
K1y = 0.5(0.02 (0.01) – 0.015 (0.01)2 +0.1(0.02) (1-0.01)= 0.001089

K2x = 0.5 (0.02 (1+0.0025) – 0.015 (1+0.0025)2= 0.00248
K2y = 0.5(0.02 (0.01+0.00108) – 0.015 (0.01+0.00108)2+0.1(0.02) ((1+0.0025)-(0.01+0.00108)) = 0.001101

x1 = 1 + (1/2)(0.0025+0.00248) = 1.0025
y1 = 0.01 + (1/2)(0.001089+0.001101) = 0.01109
t1 = 0 + 0.5 =0.5

t=0.5
K1x = 0.5 (0.02 (1.0025) – 0.015 (1.0025)2 = 0.002487
K1y = 0.5(0.02 (0.01109) – 0.015 (0.01109)2 +0.1(0.02) (1.0025-0.01109)= 0.001101

K2x = 0.5 (0.02 (1.0025+ 0.002487) – 0.015 (1.0025+ 0.002487)2= 0.002474
K2y = 0.5(0.02 (0.01109+0.001101) – 0.015 (0.01109+0.001101)2+0.1(0.02) ((1.0025+ 0.002487)-(0.01109+0.001101)) = 0.001113

x2 = 1.0025 + (1/2)(0.002487+0.002474) = 1.0050
y2 = 0.01109 + (1/2)(0.001101+0.001113) = 0.01220
t2 = 0.5 + 0.5 = 1

t=1
K1x = 0.5 (0.02 (1.0050) – 0.015 (1.0050)2 = 0.002474
K1y = 0.5(0.02 (0.01220) – 0.015 (0.01220)2 +0.1(0.02) (1.0050-0.01220)= 0.001113

K2x = 0.5 (0.02 (1.0050+ 0.002474) – 0.015 (1.0050+ 0.002474)2= 0.002462
K2y = 0.5(0.02 (0.01220+0.001113) – 0.015 (0.01220+0.001113)2+0.1(0.02) ((1.0050+ 0.002474)-(0.01220+0.001113)) = 0.001126

x3 = 1.0050 + (1/2)(0.002474+0.002462) = 1.0074
y3 = 0.01220 + (1/2)(0.001113+0.001126) = 0.01332
t3 = 1 + 0.5 = 1.5

Resultado con el algoritmo

Para obtener los datos de las iteraciones, primero se ejecuta el algoritmo para pocas iteraciones.
Para la pregunta sobre 200 años, se incrementa las iteraciones a 2 por año y las condiciones iniciales, es decir 401 muestras.

 [ ti, xi, yi]
 [ ti, xi, yi]
[[0.0000e+00 1.0000e+00 1.0000e-02 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00]
 [5.0000e-01 1.0025e+00 1.1095e-02 2.5000e-03 1.0892e-03 2.4875e-03 1.1014e-03]
 [1.0000e+00 1.0050e+00 1.2203e-02 2.4875e-03 1.1014e-03 2.4749e-03 1.1136e-03]
 [1.5000e+00 1.0074e+00 1.3323e-02 2.4749e-03 1.1137e-03 2.4623e-03 1.1260e-03]
 [2.0000e+00 1.0099e+00 1.4455e-02 2.4624e-03 1.1260e-03 2.4497e-03 1.1384e-03]
 [2.5000e+00 1.0123e+00 1.5600e-02 2.4498e-03 1.1384e-03 2.4371e-03 1.1509e-03]
 [3.0000e+00 1.0148e+00 1.6757e-02 2.4371e-03 1.1509e-03 2.4245e-03 1.1634e-03]
 [3.5000e+00 1.0172e+00 1.7926e-02 2.4245e-03 1.1635e-03 2.4118e-03 1.1761e-03]
 [4.0000e+00 1.0196e+00 1.9109e-02 2.4118e-03 1.1761e-03 2.3991e-03 1.1888e-03]
...
 [1.9950e+02 1.3252e+00 1.1561e+00 ... 1.7202e-03 8.1217e-05 1.7059e-03]
 [2.0000e+02 1.3252e+00 1.1578e+00 ... 1.7060e-03 8.0418e-05 1.6918e-03]
 [2.0050e+02 1.3253e+00 1.1595e+00 ... 1.6919e-03 7.9628e-05 1.6778e-03]]
>>> 

Observación: La población identificada como protestante, continua creciendo, mientras que la proporción de «conformistas» se reduce según los parámetros indicados en el ejercicio. Los valores de natalidad y defunción cambian con el tiempo mucho más en años por otras variables, por lo que se deben realizar ajustes si se pretende extender el modelo.

2Eva2022PAOII_T2 poblacion protestantes
Instrucciones en Python

# Modelo predador-presa de Lotka-Volterra
# Sistemas EDO con Runge Kutta de 2do Orden
import numpy as np

def rungekutta2_fg(f,g,t0,x0,y0,h,muestras):
    tamano = muestras +1
    tabla = np.zeros(shape=(tamano,7),dtype=float)
    tabla[0] = [t0,x0,y0,0,0,0,0]
    ti = t0
    xi = x0
    yi = y0
    for i in range(1,tamano,1):
        K1x = h * f(ti,xi,yi)
        K1y = h * g(ti,xi,yi)
        
        K2x = h * f(ti+h, xi + K1x, yi+K1y)
        K2y = h * g(ti+h, xi + K1x, yi+K1y)

        xi = xi + (1/2)*(K1x+K2x)
        yi = yi + (1/2)*(K1y+K2y)
        ti = ti + h
        
        tabla[i] = [ti,xi,yi,K1x,K1y,K2x,K2y]
    tabla = np.array(tabla)
    return(tabla)

# PROGRAMA ------------------

# INGRESO
# Parámetros de las ecuaciones
b = 0.02
d = 0.015
r = 0.1

# Ecuaciones
f = lambda t,x,y : (b-d*x)*x
g = lambda t,x,y : (b-d*y)*y + r*b*(x-y)

# Condiciones iniciales
t0 = 0
x0 = 1
y0 = 0.01

# parámetros del algoritmo
h = 0.5
muestras = 401

# PROCEDIMIENTO
tabla = rungekutta2_fg(f,g,t0,x0,y0,h,muestras)
ti = tabla[:,0]
xi = tabla[:,1]
yi = tabla[:,2]

# SALIDA
np.set_printoptions(precision=6)
print(' [ ti, xi, yi, K1x, K1y, K2x, K2y]')
print(tabla)

# Grafica tiempos vs población
import matplotlib.pyplot as plt

plt.plot(ti,xi, label='xi poblacion')
plt.plot(ti,yi, label='yi protestante')

plt.title('población y protestantes')
plt.xlabel('t años')
plt.ylabel('población')
plt.legend()
plt.grid()
plt.show()

# gráfica xi vs yi
plt.plot(xi,yi)

plt.title('población y protestantes [xi,yi]')
plt.xlabel('x población')
plt.ylabel('y protestantes')
plt.grid()
plt.show()