s3Eva2026PAOI_T4 Modelo de caos determinista

Ejercicio: 3Eva2026PAOI_T4 Modelo de caos determinista

Literal a

Siendo las funciones del ejercicio las mostradas, se las ordena, etiqueta como se muestra:

f(t,x,y,z) = \frac{dx}{dt}=-\sigma x + \sigma y g(t,x,y,z) = \frac{dy}{dt} = \rho x-xz-y w(t,x,y,z) = \frac{dz}{dt}= xy-\beta z

Al aplicar el método de Runge-Kutta se inicia las formulas con las variables dependientes, al final se actualiza la variable independiente:

K_{1x} = h f(t_i,x_i, y_i, z_i)

K_{1y} = h g(t_i,x_i, y_i, z_i) K_{1z} = hw(t_i,x_i, y_i, z_i) K_{2x} = h f(t_i+h, x_i +K_{1x}, y_i + K_{1y} , z_i + K_{1z}) K_{2y} = h g(t_i+h, x_i +K_{1x}, y_i + K_{1y} , z_i + K_{1z}) K_{2x} = h w(t_i+h, x_i +K_{1x}, y_i + K_{1y} , z_i + K_{1z}) x_{i+1}=x_i+\frac{K_{1x}+K_{2x}}{2} y_{i+1}=y_i+\frac{K_{1y}+K_{2y}}{2} z_{i+1}=z_i+\frac{K_{1z}+K_{2z}}{2} t_{i+1} = t_i +h

literal b

El ejercicio es muy semejante al tema 2 de la 2da Evaluación, por lo que se deja como tarea realizar las iteraciones.

iteratixiyiziK1xK1yK1zK2xK2yK2z
01657------
11+0.02

literal c

El intervalo a observar es [1,9] con tamaño de paso h=0.02

Se calcula el número de iteraciones como:

iteraciones = (b-a)/h =(9-1)/0.02 = 400

cantidad de iteraciones que se realiza solo con el algoritmo, cuyo resultado adjunto es:

caos Determinista Graf 01
 [ ti, xi, yi, zi]
[[ 1.        6.        5.        7.      ]
 [ 1.02      6.062     7.340653  7.350982]
 [ 1.04      6.527825  9.695109  8.003293]
 ...
 [ 8.96      3.715112  5.768706 19.104632]
 [ 8.98      4.139316  6.369711 18.57629 ]
 [ 9.        4.606063  7.07923  18.183582]]

Algoritmo en Python

Se usa como base el algoritmo de Sistemas EDO y se ajustan las operaciones y variables para obtener lo presentado.

# Sistemas EDO con Runge-Kutta de 2do Orden
import numpy as np
 
def rungekutta2_fgw(f,g,w,t0,x0,y0,z0,h,muestras):
    tamano = muestras +1
    tabla = np.zeros(shape=(tamano,4),dtype=float)
    tabla[0] = [t0,x0,y0,z0]
    ti = t0
    xi = x0
    yi = y0
    zi = z0
    for i in range(1,tamano,1):
        K1x = h * f(ti,xi,yi,zi)
        K1y = h * g(ti,xi,yi,zi)
        K1z = h * w(ti,xi,yi,zi)
         
        K2x = h * f(ti+h, xi + K1x, yi+K1y, zi +K1z)
        K2y = h * g(ti+h, xi + K1x, yi+K1y, zi +K1z)
        K2z = h * w(ti+h, xi + K1x, yi+K1y, zi +K1z)
 
        xi = xi + (1/2)*(K1x+K2x)
        yi = yi + (1/2)*(K1y+K2y)
        zi = zi + (1/2)*(K1z+K2z)
        ti = ti + h
         
        tabla[i] = [ti,xi,yi,zi]
    tabla = np.array(tabla)
    return(tabla)
 
# Programa
# Parámetros de las ecuaciones
a = 10
b = 8/3
r = 28
# Ecuaciones
f = lambda t,x,y,z : -a*x+a*y
g = lambda t,x,y,z : r*x-x*z-y
w = lambda t,x,y,z : x*y-b*z
# Condiciones iniciales
t0 = 1
x0 = 6
y0 = 5
z0 = 7
 
# parámetros del algoritmo
h = 0.02
muestras = 400
 
# PROCEDIMIENTO
tabla = rungekutta2_fgw(f,g,w,t0,x0,y0,z0,h,muestras)
ti = tabla[:,0]
xi = tabla[:,1]
yi = tabla[:,2]
zi = tabla[:,3]
# SALIDA
np.set_printoptions(precision=6)
print(' [ ti, xi, yi, zi]')
print(tabla)
 
# Grafica tiempos vs población
import matplotlib.pyplot as plt

fig3D = plt.figure()
graf3D = fig3D.add_subplot(projection='3d')
graf3D.plot(xi,yi,zi)
graf3D.plot(xi[0],yi[0],zi[0],'o',label='t0')
graf3D.plot(xi[-1],yi[-1],zi[-1],'o',label='tn')
graf3D.set_title('Caos determinista')
graf3D.set_xlabel('xi')
graf3D.set_ylabel('yi')
graf3D.set_zlabel('zi')
plt.legend()
#plt.grid()
plt.show()

Literal d

Las observaciones sobre los resultados en la gráfica confirman lo indicado en el enunciado sobre que los resultados "volverse impredecibles a largo plazo debido a la extrema sensibilidad y por cambios muy pequeños en las condiciones iniciales [1]. Lorenz"

Añada sus propias observaciones sobre lo obtenido comparando con otros ejercicios desarrollados en clases.

Literal e

En esta sección se pide variar algún valor de las constantes en el grupo de propiedades físicas, cambiando su valor en tan solo 0.1.

Los resultados le permitirán completar mas observaciones en el literal d.



Ejemplos por año