fabiohono@gmail.com

Main

Curriculum

Hobbies

Photos

Links

Courses

Files

Simulations

Versions

Turnovsky's Complete Dynamic Model


Turnovsky's complete dynamic model

Initialization

> restart;

> with( DEtools ):

> with( plots ):

> with( linalg ):

> with( PDEtools ):

>

Warning, the name changecoords has been redefined

Warning, the name adjoint has been redefined

Warning, the protected names norm and trace have been redefined and unprotected

General Equations (Descriptions)

(1) Y = D(Y[D],r-pi,A)+G

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) Y[D] = Y-T+rb-pi*A

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) A = m+b

Financial wealth consists of the stock of money plus government bonds outstanding.

(4) m = L(Y,r,A)

where, L1>0, L2<0 and 0 <= L3 %? <= 1

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) p = alpha(Y-Y^f)+pi

This is the so-called Phillips Curve, where the actual inflation rate (p= diff(P(t),t)/P ) depend upon the deviation of output from its full-employment (natural) level and upon the expected rate of inflation (whereas, p <> pi , this reflects the absence of money illusion).

(6) diff(pi(t),t) = gamma(p-pi)

where 0 < gamma

This equation postulates an adaptative inflationary expectation. (In contrast, by using the rational expectation hypothesis we would have p = pi ). 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) diff(A(t),t) = diff(m(t),t)+diff(b(t),t)

or diff(A(t),t) = G-T+rb-p(m+b)

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 pi would seem to be ambiguous, that is, a increase in r (or pi ) will have both a positive (negative) income effect and a negative (positive) substitution effect. So we shall consider that

(8a) D[r] = D[1]*b+D[2]

D[r] < 0 . The substitution effect prevails over the income effect.

(8b) D[pi] = -D[1]*A-D[2]

0 < D[pi] . 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) D[b] = D[1]*(r-pi)+D[3] and 0 < D[b]

(8d) D[m] = -D[1]*pi+D[3] and 0 < D[m]

In this model, the endogenous variables are: Y, Y[p], r, p, m or b

and the exogenous variables are: pi, A, b or m

Initial Conditions

Real Stock of Bonds

> b := 10:

Real Stock of Money

> m := 15:

Natural level of output

> Y_nat := 40:

Government expenditure

> G := 15:

Real Taxes

> T := 20:

Partial Derivatives

Impact of disposable income on real private expenditure

> D1 := 0.4:

Impact of the real rate of interest on real private expenditure

> D2 := -12:

Impact of financial wealth on real private expenditure

> D3 := 5:

Sensibility of the demand of money on income variations.

> L1 := 0.6:

Sensibility of the demand of money on nominal interest rate variations.

> L2 := -0.9:

Sensibility of the demand of money on financial wealth variations.

> L3 := 0.3:

This coefficient represents the effect of output deviations on the price level.

> alpha := 0.4:

This coefficient represents the sensibility of the expected inflation rate to the forecast error currently being commited

> gama := 0.3:

Fixed Real Stock of Money Policy

When m is set constant, the monetary policy become passive.

Redefining Equations:

(1a) Y = D(Y-T+r(A-m)-pi*A,r-pi,A)+G

(4) m = L(Y,r,A)

(5) p = alpha(Y-Y^f)+pi

(6) diff(pi(t),t) = gamma(p-pi)

(7a) diff(A(t),t) = G-T+r(A-m)-p*A

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;

eq1a := Y = .4*Y+7.0+.4*r*A-18.0*r-.4*pi*A+12*pi+5*...

> eq4 := m =L1*Y+L2*r+L3*A;

eq4 := 15 = .6*Y-.9*r+.3*A

> eq5 := p = alpha*Y-alpha*Y_nat+pi;

eq5 := p = .4*Y-16.0+pi

> inst_eq := solve({eq1a,eq4,eq5},{Y,p,r});

inst_eq := {p = .2000000000*(5910.+32.*pi*A-1305.*p...
inst_eq := {p = .2000000000*(5910.+32.*pi*A-1305.*p...

The algebraic solution of the equations above is:

Y = -(-m*D1*A+m^2*D1-m*D2+L2*D1*T+L2*D2*pi-L2*D3*A+...

p = -(L1*alpha*Y_nat*D2+alpha*Y_nat*L2-L1*D1*pi*A+L...
p = -(L1*alpha*Y_nat*D2+alpha*Y_nat*L2-L1*D1*pi*A+L...
p = -(L1*alpha*Y_nat*D2+alpha*Y_nat*L2-L1*D1*pi*A+L...

r = (L1*D1*T+L1*D2*pi-L1*D3*A+L1*D1*pi*A+m+D1*L3*A-...

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)));

r := (80.+4.*infl(t)*A(t)-120.*infl(t)-53.*A(t))/(4...

Finding the the value of the prive level over time

> p :=subs(A=A(t),subs(pi=infl(t),subs(inst_eq,p)));

p := .2000000000*(5910.+32.*infl(t)*A(t)-1305.*infl...

Partial Derivatives:

Impact of interest rate on real private expenditure (should be < 0)

> Dr := D1*b+D2;

Dr := -8.0

Impact of the expected inflation rate on real private expenditure (should be > 0)

> Dpi := -D1*A(t)-D2;

Dpi := -.4*A(t)+12

Impact of the real stock of bonds on real private expenditure (should be > 0)

> Db := D3+(r-infl(t))*D1;

Db := 5+.4*(80.+4.*infl(t)*A(t)-120.*infl(t)-53.*A(...

Impact of the real stock of money on real private expenditure (should be > 0)

> Dm := D3-infl(t)*D1;

Dm := 5-.4*infl(t)

It should be > 0

> J2 := -L2*(1-D1)-L1*Dr;

J2 := 5.34

Linearized Equation

Taking a Taylor expansion of the above equation around the equilibrium, we have

matrix([[diff(pi(t),t)], [diff(A(t),t)]]) = matrix(...

Obs: Since we found the instantaneous equilibrium equations, we assume that r = r( pi ,A) and p = p( pi ,A)

Where the partial derivatives are:

diff(p,pi) (should be > 1)

> dpdpi:=1-(alpha*Dpi*L2)/J2;

dpdpi := 1.808988764-.2696629214e-1*A(t)

diff(p,A) (should be > 0) - Strong wealth effect

> dpdA := (alpha*(-L2*Db+Dr*L3))/J2;

dpdA := .1573033708+.2696629213e-1*(80.+4.*infl(t)*...
dpdA := .1573033708+.2696629213e-1*(80.+4.*infl(t)*...

diff(r,pi) (should be > 0)

> drdpi := (Dpi*L1)/J2;

drdpi := -.4494382024e-1*A(t)+1.348314607

diff(r,A) (should be > 0)

> drdA := (L3*(1-D1)+Db*L1)/J2;

drdA := .5955056180+.4494382022e-1*(80.+4.*infl(t)*...
drdA := .5955056180+.4494382022e-1*(80.+4.*infl(t)*...

From the stationary solutions to (6) and (7a), steady-state equilibrium requires that:

diff(pi(t),t) = 0 and diff(A(t),t) = 0

The equation of the locus diff(pi(t),t) = 0

> eq6 := gama*(subs(inst_eq,p)-pi)=0;

eq6 := .6000000000e-1*(5910.+32.*pi*A-1305.*pi-90.*...

> locus_infl := simplify(subs(A=A(t),solve(eq6,pi)));

locus_infl := .1666666667*(-2955.+2.*A(t)^2+45.*A(t...

The equation of the locus diff(A(t),t) = 0

> eq7 := simplify(G-T+subs(inst_eq,r)*(A-m)-subs(inst_eq,p)*A=0);

eq7 := -.2000000000*(1635.*A+1275.+12.*pi*A^2-405.*...

> locus_A := subs(A=A(t),solve(eq7,pi));

locus_A := .3333333333*(-1635.*A(t)-1275.-175.*A(t)...

The steady-state values below must be positive numbers (A>0 and pi >0).

> stdst_sol := solve({eq6,eq7},{A,pi});

stdst_sol := {pi = 12.34951684, A = -13.19420209}, ...

Find the solution which A > 0 and pi > 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 pi <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));

eqdifpi := diff(infl(t),t) = .6000000000e-1*(5910.+...

> eqdifA:=diff(A(t),t)=G-T+r*(A(t)-m)-p*A(t);

eqdifA := diff(A(t),t) = -5+(80.+4.*infl(t)*A(t)-12...
eqdifA := diff(A(t),t) = -5+(80.+4.*infl(t)*A(t)-12...

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))]]);

J := matrix([[.65188146e-2, .1427553766], [-29.3145...

The Determinant of the matrix:

> det(J);

4.271637511

The trace of the matrix:

> trace(J);

13.32671409

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: diff(p,pi) < 1 and diff(r,A) < diff(p,A) .

Vector Field Graph

Time Range

> tempo := 0.24:

The initial conditions were defined as the surroundings of the steady state

> IC:=[A(0)=round(A_e),infl(0)=round(pi_e)]:

Graph Boundaries

> xmax := A_e*2;

xmax := 58.38840418

> xmin := 0;

xmin := 0

> ymax := pi_e*2.5;

ymax := 22.25120790

> ymin := 0;

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);

[Maple Plot]

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=["",""]);

[Maple Plot]

> 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);

[Maple Plot]

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) Y = D(Y-T+r(A-m)-pi*A,r-pi,A)+G

(4) m = L(Y,r,A)

(5) p = alpha(Y-Y^f)+pi

(6) diff(pi(t),t) = gamma(p-pi)

(7a) diff(A(t),t) = G-T+r(A-m)-p*A

(8) diff(m(t),t) = m*(mu-p)

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;

eq1a := Y = .4*Y+7.0+.4*r*A-.4*r*m-.4*pi*A-12*r+12*...

> eq4 := m =L1*Y+L2*r+L3*A;

eq4 := m = .6*Y-.9*r+.3*A

> eq5 := p = alpha*Y-alpha*Y_nat+pi;

eq5 := p = .4*Y-16.0+pi

> inst_eq := solve({eq1a,eq4,eq5},{Y,p,r});

inst_eq := {p = .6666666667e-1*(-30330.-96.*pi*A+30...
inst_eq := {p = .6666666667e-1*(-30330.-96.*pi*A+30...
inst_eq := {p = .6666666667e-1*(-30330.-96.*pi*A+30...
inst_eq := {p = .6666666667e-1*(-30330.-96.*pi*A+30...

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))));

r := -1.*(-70.+4.*infl(t)*A(t)-120.*infl(t)-53.*A(t...

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))));

p := .6666666667e-1*(-30330.-96.*infl(t)*A(t)+3015....
p := .6666666667e-1*(-30330.-96.*infl(t)*A(t)+3015....

Partial Derivatives:

Impact of interest rate on real private expenditure (should be < 0)

> Dr := D1*b+D2;

Dr := -8.0

Impact of the expected inflation rate on real private expenditure (should be > 0)

> Dpi := -D1*A(t)-D2;

Dpi := -.4*A(t)+12

Impact of the real stock of bonds on real private expenditure (should be > 0)

> Db := D3+(r-infl(t))*D1;

Db := 5-.4*(-70.+4.*infl(t)*A(t)-120.*infl(t)-53.*A...

Impact of the real stock of money on real private expenditure (should be > 0)

> Dm := D3-infl(t)*D1;

Dm := 5-.4*infl(t)

It should be > 0

> J2 := -L2*(1-D1)-L1*Dr;

J2 := 5.34

diff(p,pi) (should be > 1)

> dpdpi:=1-(alpha*Dpi*L2)/J2;

dpdpi := 1.808988764-.2696629214e-1*A(t)

diff(p,A) (should be > 0) - Strong wealth effect

> dpdA := (alpha*(-L2*Db+Dr*L3))/J2;

dpdA := .1573033708-.2696629213e-1*(-70.+4.*infl(t)...
dpdA := .1573033708-.2696629213e-1*(-70.+4.*infl(t)...

diff(r,pi) (should be > 0)

> drdpi := (Dpi*L1)/J2;

drdpi := -.4494382024e-1*A(t)+1.348314607

diff(r,A) (should be > 0)

> drdA := (L3*(1-D1)+Db*L1)/J2;

drdA := .5955056180-.4494382022e-1*(-70.+4.*infl(t)...
drdA := .5955056180-.4494382022e-1*(-70.+4.*infl(t)...

diff(p,m) (should be > 1)

> dpdm:=alpha*(L2*D1*r-Dr)/J2;

dpdm := .2696629213e-1*(-70.+4.*infl(t)*A(t)-120.*i...

diff(r,m) (should be > 0) - Strong wealth effect

> drdm := (D1(1-L1*r)-1)/J2;

drdm := -.1123595506

Linearized Equation

Taking a Taylor expansion of the above equation around the equilibrium, we have

matrix([[diff(A(t),t)], [diff(m(t),t)], [diff(pi(t)...
matrix([[diff(A(t),t)], [diff(m(t),t)], [diff(pi(t)...
matrix([[diff(A(t),t)], [diff(m(t),t)], [diff(pi(t)...

Obs: Since we found the instantaneous equilibrium equations, we assume that r = r( pi ,A) and p = p( pi ,A)

From the stationary solutions to (6), (7a) and (8), steady-state equilibrium requires that:

diff(pi(t),t) = 0 , diff(A(t),t) = 0 and diff(m(t),t) = 0 .

The equation of the locus diff(pi(t),t) = 0

> eq6 := gama*(subs(inst_eq,p)-pi)=0;

eq6 := .2000000000e-1*(-30330.-96.*pi*A+3015.*pi+10...
eq6 := .2000000000e-1*(-30330.-96.*pi*A+3015.*pi+10...

> locus_infl := subs(m=m(t),subs(A=A(t),solve(eq6,pi)));

locus_infl := .5555555556e-1*(-15165.+525.*A(t)+120...

The equation of the locus diff(A(t),t) = 0

> eq7 := simplify(G-T+subs(inst_eq,r)*(A-m)-subs(inst_eq,p)*A=0);

eq7 := -.1000000000e-10*(-.2112000000e15*A+.9000000...
eq7 := -.1000000000e-10*(-.2112000000e15*A+.9000000...
eq7 := -.1000000000e-10*(-.2112000000e15*A+.9000000...
eq7 := -.1000000000e-10*(-.2112000000e15*A+.9000000...

> locus_A := subs(m=m(t),subs(A=A(t),solve(eq7,pi)));

locus_A := -5.*(-.2112000000e13*A(t)+.9000000000e11...
locus_A := -5.*(-.2112000000e13*A(t)+.9000000000e11...
locus_A := -5.*(-.2112000000e13*A(t)+.9000000000e11...
locus_A := -5.*(-.2112000000e13*A(t)+.9000000000e11...

The equation of the locus diff(m(t),t) = 0

> eq8 := simplify(mu*m-subs(inst_eq,p)*m=0);

eq8 := -.1000000000e-10*m*(.9400000000e13*A-.799999...
eq8 := -.1000000000e-10*m*(.9400000000e13*A-.799999...
eq8 := -.1000000000e-10*m*(.9400000000e13*A-.799999...

> locus_m := subs(m=m(t),subs(A=A(t),solve(eq8,pi)));

locus_m := -.5000000000e-8*(.9400000000e11*A(t)-799...
locus_m := -.5000000000e-8*(.9400000000e11*A(t)-799...
locus_m := -.5000000000e-8*(.9400000000e11*A(t)-799...

The steady-state values below must be positive numbers (A>0, m>0 and pi >0).

> stdst_sol2 := fsolve({eq6,eq7,eq8},{A,pi,m});

stdst_sol2 := {m = 17.61248681, pi = 6.000000001, A...

> A_e:=subs(stdst_sol2,A);

A_e := 28.16684257

> m_e:=subs(stdst_sol2,m);

m_e := 17.61248681

> pi_e:=mu;

pi_e := 6

Prevents the system from continuing if A<0, m<0 or pi <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));

eqdifpi := diff(infl(t),t) = .2000000000e-1*(-30330...
eqdifpi := diff(infl(t),t) = .2000000000e-1*(-30330...

> eqdifA:=diff(A(t),t)=G-T+r*(A(t)-m(t))-p*A(t);

eqdifA := diff(A(t),t) = -5-1.*(-70.+4.*infl(t)*A(t...
eqdifA := diff(A(t),t) = -5-1.*(-70.+4.*infl(t)*A(t...
eqdifA := diff(A(t),t) = -5-1.*(-70.+4.*infl(t)*A(t...

> eqdifm:=diff(m(t),t)=m(t)*(mu-p);

eqdifm := diff(m(t),t) = m(t)*(6-.6666666667e-1*(-3...
eqdifm := diff(m(t),t) = m(t)*(6-.6666666667e-1*(-3...

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))));

r := 16.48618440

The price level at the steady state

> p :=subs(m=m_e,subs(A=A_e,subs(pi=pi_e,subs(inst_eq,p))));

p := 5.999999989

The partial derivatives at the steady-state

Impact of interest rate on real private expenditure (should be < 0)

> Dr := D1*b+D2;

Dr := -8.0

Impact of the expected inflation rate on real private expenditure (should be > 0)

> Dpi := -D1*A_e-D2;

Dpi := .73326297

Impact of the real stock of bonds on real private expenditure (should be > 0)

> Db := D3+(r-pi_e)*D1;

Db := 9.194473760

Impact of the real stock of money on real private expenditure (should be > 0)

> Dm := D3-pi_e*D1;

Dm := 2.6

It should be > 0

> J2 := -L2*(1-D1)-L1*Dr;

J2 := 5.34

diff(p,pi) (should be > 1)

> dpdpi:=1-(alpha*Dpi*L2)/J2;

dpdpi := 1.049433459

diff(p,A) (should be > 0) - Strong wealth effect

> dpdA := (alpha*(-L2*Db+Dr*L3))/J2;

dpdA := .4400768828

diff(r,pi) (should be > 0)

> drdpi := (Dpi*L1)/J2;

drdpi := .8238909775e-1

diff(r,A) (should be > 0)

> drdA := (L3*(1-D1)+Db*L1)/J2;

drdA := 1.066794804

diff(p,m) (should be > 1)

> dpdm:=alpha*(L2*D1*r-Dr)/J2;

dpdm := .1546796716

diff(r,m) (should be > 0) - Strong wealth effect

> drdm := (D1(1-L1*r)-1)/J2;

drdm := -.1123595506

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]]);

J2 := matrix([[-45.72171923-lambda, 20.38800114, -2...

> detJ2 := det(J2);

detJ2 := 78.82187561-729.4910176*lambda-53.42616362...

The Routh-Hurwitz Condition says that (Takayama, 1993 p. 343):

A necessary and sufficient condition is that all the roots of the equation

alpha[0]*lambda^n+alpha[1]*lambda^(n-1)+% .. alpha[...

with real coefficients have negative real parts, which in turn holds if and only if

0 < alpha[1] , 0 < matrix([[alpha[1], alpha[0]], [alpha[3], alpha[... ,..., 0 < matrix([[alpha[1], alpha[0], 0, 0, %, %], [alph...

Thus, in a 3x3 system, it means that

0 < alpha[1] , 0 < alpha[2] , 0 < alpha[3] , 0 < alpha[1]*alpha[2]-alpha[3]

> coef_a1 := coeff(detJ2,lambda,2);

coef_a1 := -53.42616362

> coef_a2 := coeff(detJ2,lambda,1);

coef_a2 := -729.4910176

> coef_a3 := coeff(detJ2,lambda,0);

coef_a3 := 78.82187561

> coef_a1*coef_a2-coef_a3;

38895.08459

Vector Field Graph

Time Range

> tempo := 3:

The initial conditions were defined as the surroundings of the steady state

> IC:=[A(0)=round(A_e),m(0)=round(m_e),infl(0)=round(pi_e)]:

Graph Boundaries

> xmax := A_e*1.5;

xmax := 42.25026386

> xmin := A_e*0.5;

xmin := 14.08342128

> ymax := m_e*1.5;

ymax := 26.41873022

> ymin := m_e*0.5;

ymin := 8.806243405

> zmax:= pi_e+0.7;

zmax := 6.7

> zmin :=pi_e-0.7;

zmin := 5.3

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]);

[Maple Plot]

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=["",""]);

[Maple Plot]

> 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);

17.21176471

9.527058827

41.31764706

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