<jupyter_start><jupyter_text>---__Universidad Tecnológica Nacional, Buenos Aires__\__Ingeniería Industrial__\__Cátedra de Investigación Operativa__\__Autor: <NAME>__, <EMAIL>---  Ejercicio 5 La cervecería más importante del mundo (Guiness) ha contratado a un analista de investigación de operaciones para analizar su posición en el mercado. Están preocupados en especial por su mayor competidor (Heineken). El analista piensa que el cambio de marca se puede modelar como una cadena de Markov incluyendo tres estados, los estados *G* y *H* representan a los clientes que beben cerveza producida por las mencionadas cervecerías y el estado *I* representa todas las demás marcas. Los datos se toman cada mes y el analista ha construido la siguiente matriz de transición de los datos históricos.| /| G | H  | I  ||--:|--:|---:|---:|| G |0.7|0.2 |0.1 || H |0.2|0.75|0.05|| I |0.1|0.1 |0.8 |  Resolución Importamos las librerías que vamos a usar:<jupyter_code>import numpy as np
import warnings
warnings.filterwarnings('ignore')<jupyter_output><empty_output><jupyter_text>Cargamos la Matriz de transición T con la librería *Numpy*. Recordemos que lo tenemos que hacer de la siguiente forma: armamos una "lista de listas". Lo que estamos creando es una Matriz, donde cada lista es una fila. Luego, esto lo convertimos en un array de *Numpy* ya que nos<jupyter_code># Ingresamos la matriz de transición:
T = np.array([[0.70, 0.20, 0.10], 
              [0.20, 0.75, 0.05], 
              [0.10, 0.10, 0.80]])

# Printeamos la matriz de transición T:
print(f'Matriz de transición: \n{T}')
# Construir matriz A y vector B:
A = (np.transpose(T) - np.identity(3))
B = np.zeros(3)

# Printeamos la Matriz A y vector B
print(f'Matriz A relacionada al sistema lineal de ecauciones: \n{A}\n')

print(f'Vector B relacionado al sistema lineal de ecuaciones: \n{B}')
# Agregar sumatoria de probabilidades:
sum_prob = np.array([[1, 1, 1]])

A = np.concatenate((A, sum_prob), axis=0)

B = np.append(B, 1)


# Printeamos la Matriz A y vector B:
print(f'Matriz A: \n{A}\n')

print(f'Vector B: \n{B}')
# Resolvemos por mínimos cuadrados:
X, _, _, _ = np.linalg.lstsq(A, B)

# Printeamos la solución
print(f'Solución del sistema lineal de ecuaciones: \n{X}')<jupyter_output>Solución del sistema lineal de ecuaciones: 
[0.34615385 0.38461538 0.26923077]
{'fraction_non_alphanumeric': 0.11173184357541899, 'fraction_numerical': 0.035238504512247526, 'mean_word_length': 4.3764434180138565, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 10, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '124289', 'license': 'Apache-2.0', 'n_tokens_mistral': 903, 'n_tokens_neox': 863, 'n_words': 298, 'path': '04_markov/casos_codigo/clase05_ejercicios_codigo/ejercicio_5.ipynb', 'repo_name': 'juanntripaldi/pyOperativ', 'size': '2357'}