SchmittGroheUribe MX model



This is the so-called MX model seen in the book of Schmitt-Grohe and Uribe of International Macro. It is a SOE model with 2 sectors (Mportables and Xportables). I have set up the equilibrium conditions just as described in the text. What is missing is the steady state. As a shortcut solution, I try the “initval” command, but it is not reaching a solution. I need help either solving the steady state analytically or tips on finding proper initial values.

Thanks,tot.mod (4.1 KB)


You did not define the parameter beta and set dbar while the parameter is called d_bar


After fixing that I cannot find the steady state still:

Error using print_info (line 83)
Impossible to find the steady state. Either the model doesn’t have a steady state, there are an infinity of steady states, or the guess values are too far from the

Can I use a solver straight away for the whole system if equations or is that only to complement a few equations?


Dear @jpfeifer and others,

I have written the analytical steady state and it works. The problem is that the model only works as long as the parameters used for both sectors are the same. If the Frisch elasticity for labor supply is different in one sector, then the model is not run. Any explanation behind this?

termstrade.mod (6.5 KB)


Why does it not work? Because the steady state cannot be computed? Your steady state file does not seem to account for asymmetric sectors.


Where can I look for models that account for this? Thanks


Nowhere. You need to sit down with pencil and paper and compute the solution


Dear @jpfeifer,
This is another version of the file. I am very close to finding the steady state but there seems to be a problem with equations 9 and 10. I do not know why, because they are correctly specified. They are important because they are the equations for prices of import- and export goods, that lead to the terms of trade.mx2019a.mod (6.5 KB)


You can verify in your computations that your computed ax_o_am is not consistent with the ax and am you compute.


Ok, I am checking that. But that is what the authors do in their Matlab code: