intro
I'm looking at a simple model with 1 consumer, 2 goods and 2 firms.
I'm trying to get a price vector [p0, p1]
that makes it work.
By makes it work, I mean, supply = demand in all 3 markets.
the problem
The problem is that I'm actually getting a set of price vectors that work.
Consider the picture below :
little details
consumer
There is one consumer who owns both firms and their profits and they go :
$$ u = \ln x + \gamma \ln b $$ where $b$ is leisure, and $\gamma$ is their relative want of leisure
And their budget is :
$$ M = wL + \pi_0+ \pi_1 $$ where $w$ is wage, $L$ is their time endowment ($n + b = L$), and $\pi_0$ and $\pi_1$ are each firm's profits.
Solving that gives $x$ and $b$, so labor supply is $n = L - b$.
$$b=\dfrac{\gamma}{1+\gamma} \cdot \dfrac{M}{w}, 0 < b < L$$ $$x=\dfrac{1}{1+\gamma} \cdot \dfrac{M}{p_1}$$ $$n=L-b$$
firms[0]
The first firm, firms[0]
, uses just labor to make an intermediate good :
$$\pi_0 = p_0 \cdot z_0^{\alpha} - w z_0$$ where $0 < \alpha < 1$, $z_0$ is their labor demand, and $y_0 = z_0^{\alpha}$ is their output.
firms[1]
The other firm, firms[1]
, uses labor and firms[0]
's output, $y_0$.
$$\pi_1 = p_1 \cdot z_1^{\beta} \cdot (k_1+1)^{1-\beta} - w \cdot z_1 - p_0 \cdot k_1$$
Here, $z_1$ is their labor demand, $k_1$ is their intermediate goods demand, and $0 < \beta < 1$. Their output is $y_1=f_1(z_1,k_1)=z_1^{\beta} \cdot (k_1+1)^{1-\beta}$
This firm is almost constant returns to scale. That is, if it can make profit at some level $(z_1,k_1)$, then it will make more profit at $(az_1,ak_1)$ where $a>1$. That means that this firm won't settle on some profit maximizing allocation of $(z_1,k_1)$ since it will choose to keep buying more, at a given price level. So this firm uses $y_0$ as its limiting factor. And from there it decides how much labor to use.
Also, I made it so that $k_1$ could be 0. So like, depending on $[\alpha, \beta, \gamma, L]$ it could be that firms[0]
doesn't even produce.
the markets
So the markets look like this :
Labor : n = z[0] + z[1] @ w
Middle : y[0] = k[1] @ p[0]
Final : y[1] = x @ p[1]
how i'm solving them
First, it's important to note that I do not know what I am doing. I'm doing this purely out of boredom, so please don't be surprised if the answer is something really obvious and I just plum don't know about it.
So I have a little function that takes some random price, say [1, 1], and uses that price vector to get the sum of squares of excess supply, exx
. Like, it does "supply minus demand" for each market and squares it, and adds it to the total. It's my way of measuring how bad a price vector is. (Is there a way to measure how bad a price vector is?)
Then it checks a bunch of price vectors around it, like [1+dp, 1], [1-dp, 1], [1, 1+dp] etc.. where dp is the size of the step. And when finds a point around it with a lower exx
, it makes that the new price. And repeats. And when it doesn't find a better point, it shrinks dp and does it again.
the problem
The price vector I get changes depending on the starting point. And most of the time I get an exx = 0
(or very very near 0). The problem is that (just based on my graphing it), exx(p[0],p[1])
doesn't seem to be continuous. When I graph exx against p[0]
(x-axis) and p[1]
(y-axis), I get a whole set (a line) of price vectors and when I check them manually, they work.
centrally planned
When I solve the central planner problem it looks like this :
$$u= \ln x + \gamma \cdot \ln b$$
But $x=y_1=z_1^{\beta} \cdot (k_1+1)^{1-\beta}$ and $k_1=y_0=z_0^{\alpha}$ so that gives the following :
$$u = \beta \cdot \ln n_1 + (1-\beta) \cdot \ln (n_0^{\alpha} + 1) + \gamma \cdot \ln (L - n_0 - n_1)$$
Take $\frac{du}{dn_0}$ and $\frac{du}{dn_1}$ and that gives you something like :
$$0 = C_0 \cdot n_0^{1-\alpha} + C_1 \cdot n_0 + C_2$$
Where $[C_0, C_1, C_2]$ are constants made from the the exogenous variables $[\alpha, \beta, \gamma, L]$
Which is an equation I don't know how to solve but I do it numerically and I can verify that it is the utility-maximizing allocation.
I guess for me the important thing is the solution this gives is on that line I get when I graph $exx$ against $p_0$ and $p_1$. Important insofar as the algorithmic approach I used isn't too wrong, that is.
Anyhow, the reason I want the algorithmic approach to work is because I can easily add lots of consumers, firms, products, firm ownerships etc, and in order to do that, which is fun, I need to make sure my approach, in a technical sense, is sound and actually works.
questions
Does this problem have a unique solution?
Is there a proper way of solving for the solution(s)?
I guess that's all. I can possibly add a link to the work I did.
edit: 2021-06-22
Here's a link to where I'm playing around with this. There seem to be lots of price vectors that work. But since I'm solving them numerically, 'work' really just means 'below a certain level of error'.