Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

import numpy as np

Estados climáticos

estados = ["Ensolarado", "Nublado", "Chuvoso"]

Matriz de transição

Linhas: estado atual

Colunas: próximo estado

matriz_transicao = np.array([
[0.7, 0.2, 0.1], # Ensolarado
[0.3, 0.4, 0.3], # Nublado
[0.2, 0.3, 0.5] # Chuvoso
])

Estado inicial (100% Ensolarado)

estado_inicial = np.array([1, 0, 0])

Número de dias para previsão

dias = 5

estado_atual = estado_inicial

print("Estado inicial:")
print(estado_atual)

for dia in range(1, dias + 1):
estado_atual = np.dot(estado_atual, matriz_transicao)

print(f"\nDia {dia}:")
for i, estado in enumerate(estados):
    print(f"{estado}: {estado_atual[i]:.2%}")
2 respostas

Oii Michele, tudo bem?

Obrigada por compartilhar seu projeto aqui no fórum! A implementação de Cadeias de Markov para previsão climática ficou bem estruturada. Você escolheu uma boa forma de representar a matriz de transição com numpy e a lógica de multiplicação com np.dot está correta para propagar o estado ao longo dos dias.

Uma observação sobre a identação do código: o print do dia e o for que exibe os estados ficaram fora do bloco do for dia in range(...). Isso faz com que apenas o resultado do último dia seja exibido, em vez de mostrar a progressão dia a dia. Considere ajustar assim:

for dia in range(1, dias + 1):
    estado_atual = np.dot(estado_atual, matriz_transicao)
    print(f"\nDia {dia}:")
    for i, estado in enumerate(estados):
        print(f"{estado}: {estado_atual[i]:.2%}")

Com essa correção, cada dia vai aparecer com suas probabilidades logo após o cálculo, que provavelmente era o comportamento que você queria ver.

O link do colab ta fechado/privado, mas com o código enviado anteriormente deu par ater uma boa base.

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade