General Equations (Descriptions)
(1)
where 0<D1<1, D2 < 0 and D3 >0
The real output depends on the real disposable income, the real interest rate, the real wealth of the private sector and on government expenditure.
(2)
The real disposable income depends on the output/national income, the real taxes, the real value of interest payments on outstanding government bonds, and on expected capital losses on financial wealth (it's the expected inflation tax).
(3)
Financial wealth consists of the stock of money plus government bonds outstanding.
(4)
where, L1>0, L2<0 and
This is the LM curve, where the real money supply depends on the income, the nominal interest rate and and on financial wealth. From (3) we have that A depends on and m and b. Thus, L3 can be considered a measure of risk aversion (absolute or relative: portfolio choices under uncertainty).
(5)
This is the so-called Phillips Curve, where the actual inflation rate (p=
) depend upon the deviation of output from its full-employment (natural) level and upon the expected rate of inflation (whereas,
, this reflects the absence of money illusion).
(6)
where
This equation postulates an adaptative inflationary expectation. (In contrast, by using the rational expectation hypothesis we would have
). This reflects Keynes's ideas on conventions under uncertainty (expectations are formed by looking at the past evolution of the relevant variable: backward looking).
(7)
or
This relation describes the rate of wealth accumulation by the private sector, but it's also the government budget constraint where -p(m + b) is the "inflation tax" on government debt. From this equation, we have that of the four policy instruments (debt, money, taxes and government expenditure), only three can be chosen independently.
By substituing (2) into (1), the effects of an increase of r, A and
would seem to be ambiguous, that is, a increase in r (or
) will have both a positive (negative) income effect and a negative (positive) substitution effect. So we shall consider that
(8a)
. The substitution effect prevails over the income effect.
(8b)
. The Mundell-Tobin effect is higher than the "inflationary tax" effect.
The increse in A will also have an income and a wealth effect. And the sign of the income effect will depend upon the form in which the additional wealth occurs (in form of real bond or real money: b or m). We assume that:
(8c)
and
(8d)
and
In this model, the endogenous variables are:
and the exogenous variables are:
Fixed Real Stock of Money Policy
When m is set constant, the monetary policy become passive.
Redefining Equations:
(1a)
(4)
(5)
(6)
(7a)
Finding the instantaneous equilibrium equations for Y, p and r, and assuming that equations (1a), (4) and (5) are linear we have
>
eq1a := Y = D1*Y-D1*T+D1*r*A-D1*r*m-D1*pi*A+D2*r-D2*pi+D3*A+G;
>
eq4 := m =L1*Y+L2*r+L3*A;
>
eq5 := p = alpha*Y-alpha*Y_nat+pi;
>
inst_eq := solve({eq1a,eq4,eq5},{Y,p,r});
The algebraic solution of the equations above is:
We got the results above by simply substituting the given values.
Finding the the value of the nominal interest rate over time
>
r :=subs(A=A(t),subs(pi=infl(t),subs(inst_eq,r)));
Finding the the value of the prive level over time
>
p :=subs(A=A(t),subs(pi=infl(t),subs(inst_eq,p)));
Partial Derivatives:
Impact of interest rate on real private expenditure
(should be < 0)
>
Dr := D1*b+D2;
Impact of the expected inflation rate on real private expenditure (should be > 0)
>
Dpi := -D1*A(t)-D2;
Impact of the real stock of bonds on real private expenditure (should be > 0)
>
Db := D3+(r-infl(t))*D1;
Impact of the real stock of money on real private expenditure (should be > 0)
>
Dm := D3-infl(t)*D1;
It should be > 0
>
J2 := -L2*(1-D1)-L1*Dr;
Linearized Equation
Taking a Taylor expansion of the above equation around the equilibrium, we have
Obs: Since we found the instantaneous equilibrium equations, we assume that r = r(
,A) and p = p(
,A)
Where the partial derivatives are:
(should be > 1)
>
dpdpi:=1-(alpha*Dpi*L2)/J2;
(should be > 0) - Strong wealth effect
>
dpdA := (alpha*(-L2*Db+Dr*L3))/J2;
(should be > 0)
>
drdpi := (Dpi*L1)/J2;
(should be > 0)
>
drdA := (L3*(1-D1)+Db*L1)/J2;
From the stationary solutions to (6) and (7a), steady-state equilibrium requires that:
and
The equation of the locus
>
eq6 := gama*(subs(inst_eq,p)-pi)=0;
>
locus_infl := simplify(subs(A=A(t),solve(eq6,pi)));
The equation of the locus
>
eq7 := simplify(G-T+subs(inst_eq,r)*(A-m)-subs(inst_eq,p)*A=0);
>
locus_A := subs(A=A(t),solve(eq7,pi));
The steady-state values below must be positive numbers (A>0 and
>0).
>
stdst_sol := solve({eq6,eq7},{A,pi});
Find the solution which A > 0 and
> 0.
>
num_sol:=1:
while subs(stdst_sol[num_sol],A)<0 or subs(stdst_sol[num_sol],pi)<0 do
num_sol := num_sol+1
end do:
>
A_e:=subs(stdst_sol[num_sol],A)+1:
>
pi_e:=subs(stdst_sol[num_sol],pi):
Prevents the system from continuing if A<0 or
<0
>
if A_e <0 or pi_e <0 then
stop
end if;
Then we have,
>
eqdifpi:=diff(infl(t),t)=gama*(p-infl(t));
>
eqdifA:=diff(A(t),t)=G-T+r*(A(t)-m)-p*A(t);
The matrix of the system at the steady-state level:
>
J := matrix([[gama*(subs(A(t)=A_e,dpdpi)-1), gama*subs(A(t)=A_e,subs(infl(t)=pi_e,dpdA))],[A_e*(subs(A(t)=A_e,drdpi)-subs(A(t)=A_e,dpdpi))-m*subs(A(t)=A_e,drdpi), subs(A(t)=A_e,subs(infl(t)=pi_e,r))-subs(A(t)=A_e,subs(infl(t)=pi_e,p))+A_e*(subs(A(t)=A_e,subs(infl(t)=pi_e,drdA))-subs(A(t)=A_e,subs(infl(t)=pi_e,dpdA)))-m*subs(A(t)=A_e,subs(infl(t)=pi_e,drdA))]]);
The Determinant of the matrix:
>
det(J);
The trace of the matrix:
>
trace(J);
The stability requires that Det > 0 and Trace < 0. But then, it's necessary that the real interest rate (r-p) is low and more:
and
.
Graph Boundaries
>
xmax := A_e*2;
>
xmin := 0;
>
ymax := pi_e*2.5;
>
ymin := 0;
>
curves:=DEplot({eqdifA,eqdifpi},[A(t),infl(t)],t=0..tempo,[IC],infl=ymin..ymax,A=xmin..xmax,color=black,arrows=large, linecolour=red,thickness=2):
linelocus_infl:=plot(locus_infl,A=xmin..xmax,infl=ymin..ymax,thickness=3,colour=blue):
linelocus_A:=plot(locus_A,A=xmin..xmax,infl=ymin..ymax,thickness=3,colour=green):
display(curves,linelocus_infl,linelocus_A);
Phase Diagram
Finding the time equations of solution
>
solucao_eqs:=dsolve({eqdifA,eqdifpi} union convert(IC,set), numeric, output=listprocedure,
range=0..tempo):
>
dsolA := subs(solucao_eqs,A(t)):dsolinfl := subs(solucao_eqs,infl(t)):
>
odeplot(solucao_eqs,[[t,A(t)],[t,infl(t)]],0..tempo,linestyle=1,legend=["Financial Wealth","Inflation"], labels=["",""]);
>
dsolr:=subs(A=subs(solucao_eqs,A(t)),subs(pi=subs(solucao_eqs,infl(t)),subs(inst_eq,r))):
dsolp:=subs(A=subs(solucao_eqs,A(t)),subs(pi=subs(solucao_eqs,infl(t)),subs(inst_eq,p))):
dsolY:=subs(A=subs(solucao_eqs,A(t)),subs(pi=subs(solucao_eqs,infl(t)),subs(inst_eq,Y))):
>
grafr:=plot(dsolr(t),t=0..tempo,color=blue,legend="Interest Rate", labels=["",""]):
grafp:=plot(dsolp(t),t=0..tempo,color=red,legend="Price Level", labels=["",""]):
grafY:=plot(dsolY(t),t=0..tempo,color=magenta,legend="Output", labels=["",""]):
display(grafr,grafp,grafY);
Constant Rate of Nominal Monetary Growth
In this case, the monetary authority allows the nominal money supply to increase at a constant rate.
Redefining Equations:
(1a)
(4)
(5)
(6)
(7a)
(8)
Rate of monetary growth
>
mu:=6:
>
unassign('r','m','p'):
Even though equations (1a), (4) and (5) haven't changed, as we have unassigned the values for m, r and p we must find solutions again.
>
eq1a := Y = D1*Y-D1*T+D1*r*A-D1*r*m-D1*pi*A+D2*r-D2*pi+D3*A+G;
>
eq4 := m =L1*Y+L2*r+L3*A;
>
eq5 := p = alpha*Y-alpha*Y_nat+pi;
>
inst_eq := solve({eq1a,eq4,eq5},{Y,p,r});
Finding the the value of the nominal interest rate over time
>
r :=subs(m=m(t),subs(A=A(t),subs(pi=infl(t),subs(inst_eq,r))));
Finding the the value of the price level over time
>
p :=subs(m=m(t),subs(A=A(t),subs(pi=infl(t),subs(inst_eq,p))));
Partial Derivatives:
Impact of interest rate on real private expenditure
(should be < 0)
>
Dr := D1*b+D2;
Impact of the expected inflation rate on real private expenditure (should be > 0)
>
Dpi := -D1*A(t)-D2;
Impact of the real stock of bonds on real private expenditure (should be > 0)
>
Db := D3+(r-infl(t))*D1;
Impact of the real stock of money on real private expenditure (should be > 0)
>
Dm := D3-infl(t)*D1;
It should be > 0
>
J2 := -L2*(1-D1)-L1*Dr;
(should be > 1)
>
dpdpi:=1-(alpha*Dpi*L2)/J2;
(should be > 0) - Strong wealth effect
>
dpdA := (alpha*(-L2*Db+Dr*L3))/J2;
(should be > 0)
>
drdpi := (Dpi*L1)/J2;
(should be > 0)
>
drdA := (L3*(1-D1)+Db*L1)/J2;
(should be > 1)
>
dpdm:=alpha*(L2*D1*r-Dr)/J2;
(should be > 0) - Strong wealth effect
>
drdm := (D1(1-L1*r)-1)/J2;
Linearized Equation
Taking a Taylor expansion of the above equation around the equilibrium, we have
Obs: Since we found the instantaneous equilibrium equations, we assume that r = r(
,A) and p = p(
,A)
From the stationary solutions to (6), (7a) and (8), steady-state equilibrium requires that:
,
and
.
The equation of the locus
>
eq6 := gama*(subs(inst_eq,p)-pi)=0;
>
locus_infl := subs(m=m(t),subs(A=A(t),solve(eq6,pi)));
The equation of the locus
>
eq7 := simplify(G-T+subs(inst_eq,r)*(A-m)-subs(inst_eq,p)*A=0);
>
locus_A := subs(m=m(t),subs(A=A(t),solve(eq7,pi)));
The equation of the locus
>
eq8 := simplify(mu*m-subs(inst_eq,p)*m=0);
>
locus_m := subs(m=m(t),subs(A=A(t),solve(eq8,pi)));
The steady-state values below must be positive numbers (A>0, m>0 and
>0).
>
stdst_sol2 := fsolve({eq6,eq7,eq8},{A,pi,m});
>
A_e:=subs(stdst_sol2,A);
>
m_e:=subs(stdst_sol2,m);
>
pi_e:=mu;
Prevents the system from continuing if A<0, m<0 or
<0
>
if A_e <0 or m_e <0 or pi_e <0 then
cont
end if;
>
eqdifpi:=diff(infl(t),t)=gama*(p-infl(t));
>
eqdifA:=diff(A(t),t)=G-T+r*(A(t)-m(t))-p*A(t);
>
eqdifm:=diff(m(t),t)=m(t)*(mu-p);
Stability Analysis
The nominal interest rate at the steady state
>
r :=subs(m=m_e,subs(A=A_e,subs(pi=pi_e,subs(inst_eq,r))));
The price level at the steady state
>
p :=subs(m=m_e,subs(A=A_e,subs(pi=pi_e,subs(inst_eq,p))));
The partial derivatives at the steady-state
Impact of interest rate on real private expenditure
(should be < 0)
>
Dr := D1*b+D2;
Impact of the expected inflation rate on real private expenditure (should be > 0)
>
Dpi := -D1*A_e-D2;
Impact of the real stock of bonds on real private expenditure (should be > 0)
>
Db := D3+(r-pi_e)*D1;
Impact of the real stock of money on real private expenditure (should be > 0)
>
Dm := D3-pi_e*D1;
It should be > 0
>
J2 := -L2*(1-D1)-L1*Dr;
(should be > 1)
>
dpdpi:=1-(alpha*Dpi*L2)/J2;
(should be > 0) - Strong wealth effect
>
dpdA := (alpha*(-L2*Db+Dr*L3))/J2;
(should be > 0)
>
drdpi := (Dpi*L1)/J2;
(should be > 0)
>
drdA := (L3*(1-D1)+Db*L1)/J2;
(should be > 1)
>
dpdm:=alpha*(L2*D1*r-Dr)/J2;
(should be > 0) - Strong wealth effect
>
drdm := (D1(1-L1*r)-1)/J2;
The Jacobian Matrix at the steady-state level
>
J2:= matrix([[(A_e*(drdpi-dpdpi)-m_e*dpdpi)-lambda, r-p+A_e*(drdA-dpdA)-m_e*dpdA, A_e*(drdm-dpdm)-m_e*dpdm-r], [-m_e*dpdpi, -m_e*dpdA-lambda, mu-p-m_e*dpdm],[gama*(dpdpi-1), gama*dpdA, gama*dpdm-lambda]]);
>
detJ2 := det(J2);
The Routh-Hurwitz Condition says that (Takayama, 1993 p. 343):
A necessary and sufficient condition is that all the roots of the equation
with real coefficients have negative real parts, which in turn holds if and only if
,
,...,
Thus, in a 3x3 system, it means that
,
,
,
>
coef_a1 := coeff(detJ2,lambda,2);
>
coef_a2 := coeff(detJ2,lambda,1);
>
coef_a3 := coeff(detJ2,lambda,0);
>
coef_a1*coef_a2-coef_a3;
Graph Boundaries
>
xmax := A_e*1.5;
>
xmin := A_e*0.5;
>
ymax := m_e*1.5;
>
ymin := m_e*0.5;
>
zmax:= pi_e+0.7;
>
zmin :=pi_e-0.7;
Verifying the economic trajectory around the steady state
>
curves:=DEplot3d({eqdifA,eqdifm,eqdifpi},[A(t),m(t),infl(t)],t=0..tempo,m=ymin..ymax,A=xmin..xmax,[[A(0)=round(A_e),m(0)=round(m_e),infl(0)=round(pi_e)]],color=black,arrows=small, linecolour=red,thickness=3,orientation=[-139,69]):
>
linelocus_infl:=plot3d(locus_infl,A=xmin..xmax,m=ymin..ymax,thickness=1,colour=blue):
linelocus_A:=plot3d(locus_A,A=xmin..xmax,m=ymin..ymax,thickness=1,colour=green):
linelocus_m:=plot3d(locus_m,A=xmin..xmax,m=ymin..ymax,thickness=1,colour=cyan):
display(curves,linelocus_infl,linelocus_A,linelocus_m,view=[xmin..xmax,ymin..ymax,zmin..zmax]);
Or a moving graph:
Powered by: JavaView
obs: If the graph doesn't come out press "reload" in your web browser. You must have enabled/instaled the
Java Virtual Machine.
To rotate, rescale or pick a vertex click the right-button and move your mouse.
The picture may take a few seconds to come out.
Phase Diagram
Finding equations of the solution
>
solucao_eqs2:=dsolve({eqdifA,eqdifm,eqdifpi,A(0)=round(A_e),m(0)=round(m_e),infl(0)=round(pi_e)}, numeric, method=classical[rk4], output=listprocedure):
>
dsolA := subs(solucao_eqs2,A(t)):
dsolm := subs(solucao_eqs2,m(t)):
dsolinfl := subs(solucao_eqs2,infl(t)):
>
odeplot(solucao_eqs2,[[t,A(t)],[t,m(t)],[t,infl(t)]],0..tempo,linestyle=1,legend=["Financial Wealth","Real Money Supply","Inflation"], labels=["",""]);
>
dsolr:=subs(m=subs(solucao_eqs2,m(t)),subs(A=subs(solucao_eqs,A(t)),subs(pi=subs(solucao_eqs,infl(t)),subs(inst_eq,r)))):
dsolp:=subs(m=subs(solucao_eqs2,m(t)),subs(A=subs(solucao_eqs,A(t)),subs(pi=subs(solucao_eqs,infl(t)),subs(inst_eq,p)))):
dsolY:=subs(m=subs(solucao_eqs2,m(t)),subs(A=subs(solucao_eqs,A(t)),subs(pi=subs(solucao_eqs,infl(t)),subs(inst_eq,Y)))):
>
dsolr(0);dsolp(0);dsolY(0);
References:
TAKAYAMA, A. (1993).
Analytical Methods in Economics
. The University of Michigan Press : Michigan PP.342-345.
TURNOVSKY, Stephen J. (1995)
Methods of macroeconomic dynamics
. MIT Press. Cambridge (Mass.) pp. 15-55.
By
Fabio Hideki Ono
-
http://fhono.conjuntura.com.br