# Estimating DSGE by Maximum Likelihood in Python
# Author: Michal Miktus
# Date: 20.03.2019
# Import libraries
from LinApp_Solve import LinApp_Solve
import matplotlib.pyplot as plt
import seaborn as sn
import pandas as pd
import numpy as np
import pickle
from numpy import vstack, hstack, zeros, eye
from Linear_Time_Iteration import Linear_Time_Iteration
# %matplotlib inline
# Set printing options
np.set_printoptions(precision=3, suppress=True, linewidth=120)
pd.set_option(
    'float_format',
    lambda x: '%.3g' % x,
)
# --------------------------------------------------------------------------
# -- Define the model
# --------------------------------------------------------------------------
#  VARIABLES   [M,3] cell array: Variable name (case sensitive) ~ Variable type ~ Description
#              Variable type: 'X' ... Endogenous state variable
#                             'Y' ... Endogenous other (jump) variable
#                             'Z' ... Exogenous state variable
#                             'U' ... Innovation to exogenous state variable
#                             ''  ... Skip variable
variable_symbols = [
    r'$e_a$', r'$e_I$', r'$e_b$', r'$e_L$', r'$e_G$', r'$e_pi$', r'$pi$',