This script implements a fixed-point iteration algorithm in JAX to solve a class of one-to-one matching models with linear transfers.
The main script, MatchingModel.py, sets up and solves a general system of fixed-point equations for the set of equilibrium transfers in a one-to-one matching model for a given specification of discrete choice models. The Script DiscreteChoiceModel.py contains three discrete choice models. Finally, the script examples/main.py sets up and solves three special cases of one-to-one matching models with transferable utility, where the discrete choices of agents on both sides of the matching market are described by:
- Logit model
- Nested logit model
- Generalized nested logit model
If you use this script in your research, I ask that you also cite Andersen (2025).
@article{andersen2025note,
title={Note on solving one-to-one matching models with linear transferable utility},
author={Esben Scrivers Andersen},
year={2025},
eprint={2409.05518},
archivePrefix={arXiv},
primaryClass={econ.GN},
url={https://arxiv.org/pdf/2409.05518},
}
In order to run the scripts, you need to have installed JAX, Simple Pytree, JAXopt, and squarem-JAXopt. The latter is an implementation of the SQUAREM accelerator, see Du and Varadhan (2020).