Skip to content

Latest commit

 

History

History
71 lines (51 loc) · 2.37 KB

File metadata and controls

71 lines (51 loc) · 2.37 KB

Model and computational structure

Economic states

Each product line and country type $c\in{H,M}$ occupies one of three states:

  • $A$: frontier producer;
  • $B$: producer attempting catch-up;
  • $X$: one-period exit or vacant-line state.

The implemented stationary accounting sends an $X$ line back to $B$ with probability one in the following period. This replacement interpretation is a maintained computational assumption.

Country/state research capital is normalized as

$$ k_{MB}=1,\qquad k_{HB}=\kappa,\qquad k_{MA}=\chi,\qquad k_{HA}=\kappa\chi. $$

Static block

Given the relative wage, state shares, and substitution elasticities, the static block solves production labor allocations and computes wages, expenditure shares, markups, and state-country profits. The static residual is the log gap between two equivalent expenditure-allocation expressions.

Dynamic block

Catch-up follows a complementary-exponential technology,

$$ p_c^{\mathrm{cu}} =1-\exp\left[-\phi^{\mathrm{cu}}k_{cB}^{\eta^{\mathrm{cu}}} h_c^{1-\eta^{\mathrm{cu}}}\right]. $$

Incumbents and challengers enter a multinomial contest. Bellman equations then determine values in $A$ and $B$; the exit value is normalized to zero. The residual system contains:

  1. one static allocation equation;
  2. two type-specific stationarity equations;
  3. two incumbent first-order conditions;
  4. two challenger first-order conditions; and
  5. two catch-up first-order conditions.

Four hard moment equations are added to these nine model conditions.

Parameter transformations

The optimizer works in unrestricted coordinates. Exponentials impose positivity, logistic transformations impose probability bounds, and a nested logistic transform enforces $\eta^{\mathrm{in}}>\eta^{\mathrm{cu}}+0.002$.

The authoritative target values are read from config/hard_exit_moments.json; the search and verification scripts use the same loader.

Numerical search

The search uses SciPy's bounded nonlinear least squares from deterministic seeds. Seeds combine earlier equilibria, alternative incumbent/entrant effort scales, and fixed-seed perturbations. Results are stably sorted before log-distance deduplication. Each run records software versions, solver options, input hashes, worker count, and expected numerical failure categories.

The solver finds sampled numerical roots. It is not an exhaustive proof that all equilibria have been found.