import numpy as np
Estados posibles del clima
estados = ["Soleado", "Nublado", "Lluvioso"]
Matriz de transición (probabilidades de pasar de un estado a otro)
matriz_transicion = [
[0.8, 0.15, 0.05], # Desde "Soleado"
[0.2, 0.6, 0.2], # Desde "Nublado"
[0.25, 0.25, 0.5] # Desde "Lluvioso"
]
Estado inicial y número de días a predecir
estado_inicial = "Soleado"
numero_dias = 10
Función para obtener el índice del estado
def obtener_indice_estado(estado):
return estados.index(estado)
Función principal para predecir el clima
def predecir_clima(estado_inicial, numero_dias):
estado_actual = estado_inicial
pronostico = [estado_actual]
for _ in range(numero_dias - 1):
indice_actual = obtener_indice_estado(estado_actual)
probabilidades = matriz_transicion[indice_actual]
siguiente_estado = np.random.choice(estados, p=probabilidades)
pronostico.append(siguiente_estado)
estado_actual = siguiente_estado
return pronostico
Ejecutar la predicción
pronostico = predecir_clima(estado_inicial, numero_dias)
print("PREDICCIÓN DEL CLIMA - CADENA DE MARKOV ")
print(f"Estado inicial: {estado_inicial}")
print(f"Días a predecir: {numero_dias}\n")
print("Pronóstico para los próximos días:")
print(pronostico)