A Classical Marxian Two-Sector Endogenous Cycle Model: Integrating Marx, Dutt, and Goodwin
Author
John Cajas Guijarro
Title
A Classical Marxian Two-Sector Endogenous Cycle Model: Integrating Marx, Dutt, and Goodwin
Description
Mathematical supplement to accompany Cajas Guijarro (2023): "A Classical Marxian Two-Sector Endogenous Cycle Model: Integrating Marx, Dutt, and Goodwin", MPRA Paper No. 118665, https://mpra.ub.uni-muenchen.de/118665/
Category
Academic Articles & Supplements
Keywords
two-sector model, labor market dynamics, endogenous cycles, sensitivity of investment to profit rate differentials, long-run equilibrium
URL
http://www.notebookarchive.org/2023-10-1g5rpug/
DOI
https://notebookarchive.org/2023-10-1g5rpug
Date Added
2023-10-03
Date Last Modified
2023-10-03
File Size
6.72 megabytes
Supplements
Rights
CC BY-NC-SA 4.0
![](/img/download-icon.png)
![](/img/Open-In-Cloud-icon.png)
![](/img/3-Dots.png)
Mathematical supplement to accompany Cajas Guijarro (2023): “A Classical Marxian Two-Sector Endogenous Cycle Model: Integrating Marx, Dutt, and Goodwin”, MPRA Paper No. 118665, https://mpra.ub.uni-muenchen.de/118665/
Mathematical supplement to accompany Cajas Guijarro (2023): “A Classical Marxian Two-Sector Endogenous Cycle Model: Integrating Marx, Dutt, and Goodwin”, MPRA Paper No. 118665, https://mpra.ub.uni-muenchen.de/118665/
A Classical Marxian Two-Sector Endogenous Cycle Model: Integrating Marx, Dutt, and Goodwin
A Classical Marxian Two-Sector Endogenous Cycle Model: Integrating Marx, Dutt, and Goodwin
John Cajas Guijarro
This notebook introduces a Classical Marxian Two-Sector Endogenous Cycle (CMTSEC) model, merging Dutt’s (1988) two-sector model of Classical convergence with labor dynamics inspired by Goodwin (1967) and an endogenous labor supply inspired by Harris (1983). Empirical support fortifies these assumptions. Utilizing the Hopf bifurcation theorem and numerical simulations, we demonstrate the model’s capacity to produce stable limit cycles encompassing wage share, employment rate, and sectoral capital distribution. Notably, sectoral profit rates exhibit cyclic fluctuations, prompting a reevaluation of long-run equilibrium. The model underscores the role of investment sensitivity to sectoral profit rate disparities in determining cycle stability. Hence, the CMTSEC model extends Goodwin’s (1967) endogenous cycle model, encapsulating the conflict between capital and labor while delving into the intricate dynamics of capitalist reproduction in a two-sector economy.
In[]:=
ClearAll["Global`*"]
Convergence in Dutt’s (1988) Classical-Marxian Two-Sector Model
In[]:=
eq[1]=1p[t]*a21*r1[t]+V[t]*a01;eq[2]=p[t]p[t]*a22*r2[t]+V[t]*a02;eq[3]=p[t]P1[t]/P2[t];eq[4]={a01L1[t]/X1[t],a02L2[t]/X2[t]};eq[5]={a21K1[t]/X1[t],a22K2[t]/X2[t]};eq[6]=k[t]K1[t]/K2[t];eq[7]=D1[t]V[t](a01*X1[t]+a02*X2[t])+(1-s)p[t](r1[t]*K1[t]+r2[t]*K2[t]);eq[8]=D2[t]s(r1[t]*K1[t]+r2[t]*K2[t]);eq[9]=g1[t]g2[t]+μ(r1[t]-r2[t]);eq[10]=p'[t]f(D2[t]-X2[t]);eq[11]=(Solve[{eq[1],eq[2],eq[5][[1]],eq[5][[2]],eq[6],eq[8],eq[10]},{p'[t],r1[t],r2[t],X1[t],X2[t],K1[t],D2[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[12]={D2[t]X2[t],p'[t]0};eq[13]=(Solve[{eq[11],eq[12][[2]]},{p[t],p'[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[14]=(Solve[eq[13][[2]]0,k[t]][[1,1]]//FullSimplify)/.{RuleEqual};eq[15]=(Solve[{eq[1],eq[13]},{r1[t],p[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[16]=(Solve[{eq[2],eq[13]},{r2[t],p[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[17]=k'[t]/k[t]g1[t]-g2[t];eq[18]=(Solve[{eq[9],eq[17]},{k'[t],g1[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[19]=(Solve[{eq[1],eq[2],eq[18]},{k'[t],r1[t],r2[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[20]=(Solve[{eq[13],eq[19]},{k'[t],p[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[21]=(Solve[eq[20]/.{k'[t]0},{k[t]}][[2,1]]//FullSimplify)/.{RuleEqual};eq[22]=l[t](L1[t]+L2[t])/NN[t];eq[23]=(Solve[{eq[4][[1]],eq[4][[2]],eq[5][[1]],eq[5][[2]],eq[6],eq[22]},{l[t],L1[t],L2[t],X1[t],X2[t],K1[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[24]=NN'[t]/NN[t]n[t];eq[25]=l'[t]/l[t]((D[Log[eq[23][[2]]],t]//FullSimplify)/.{NN'[t]n[t]*NN[t],K2'[t]g2[t]*K2[t]});eq[26]=g1[t]*K1[t]+g2[t]*K2[t]s(r1[t]*K1[t]+r2[t]*K2[t]);eq[27]=(Solve[{eq[6],eq[15],eq[16],eq[17],eq[26]},{g2[t],r1[t],r2[t],K2[t],g1[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[28]=(Solve[{eq[25],eq[27]},{l'[t],g2[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[29]=(Solve[{(Solve[eq[28]/.{k'[t]0,l'[t]0},n[t]][[1,1]]//FullSimplify)/.{RuleEqual},eq[21]},{n[t],k[t]}][[1,1]]//FullSimplify)/.{RuleEqual};
Labor market dynamics
In[]:=
eq[30]=V'[t]/V[t]-γ+ρ*l[t];eq[31]=ω[t]V[t]*(a01*X1[t]+a02*X2[t])/(X1[t]+p[t]*X2[t]);eq[32]=(Solve[{eq[5][[1]],eq[5][[2]],eq[6],eq[13],eq[31]},{V[t],X1[t],X2[t],K2[t],p[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[33]=D[Log[eq[32][[1]]],t](D[Log[eq[32][[2]]],t]//FullSimplify);eq[34]=(Solve[{eq[30],eq[33]},{ω'[t],V'[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[35]=(Solve[{eq[20],eq[32]},{k'[t],V[t]}][[1,1]]//FullSimplify)/.{RuleEqual};eq[36]=n[t]n0+ζ(V'[t]/V[t]);eq[37]=(Solve[{eq[28],eq[30],eq[36]},{l'[t],n[t],V'[t]}][[1,1]]//FullSimplify)/.{RuleEqual};
Dynamical system and equilibrium
In[]:=
eq[38]={m1a21/a01,m2a22/a02};eq[39]={q11/a01,q21/a02};
In[]:=
dynsist=(Solve[Join[{eq[37],eq[34],eq[35]},eq[38],eq[39]],{k'[t],ω'[t],l'[t],a21,a22,a01,a02}][[1,1;;3]]//FullSimplify)/.{RuleEqual}
Out[]=
[t],[t]-(ω[t](1-s+sω[t])(-s(γ-ρl[t])(-1+ω[t])-m1m2s(2m2γ-q2μ-2m2ρl[t])(-1+ω[t])+q2μ(1-s+sω[t])+m1k[t](m1m2sγ+q2(m2-(m1+m2)s)μ+m1m2sρl[t](-1+ω[t])+(-m1m2sγ+q2(m1-m2+(m1+m2)s)μ)ω[t])))(m2(-1+s)sk[t](-1+ω[t])),[t]-(l[t](s(n0-γζ+ζρl[t])(-1+ω[t])+m2s(-m2q2+m2(2m1+m2)(n0-γζ)+(-m1+m2)q2μ+m2(2m1+m2)ζρl[t])(-1+ω[t])+k[t](m1m2s(2q2-(m1+2m2)(n0-γζ))+(m1-m2)q2(-m2+(m1+m2)s)μ+m1m2(m1+2m2)sζρl[t](-1+ω[t])+(m1m2s(-2q2+(m1+2m2)(n0-γζ))-(m1-m2)q2(m1-m2+(m1+m2)s)μ)ω[t])+m1(m1s(-m2n0+q2+m2γζ)+(m1-m2)q2(-1+s)μ+m1m2sζρl[t](-1+ω[t])+s(m1m2(n0-γζ)+m2q2μ-m1q2(1+μ))ω[t])))(m2s(1+k[t])(-1+ω[t]))
′
k
q2μ((m1+m2k[t])(-1+s+sk[t])-(m1s+k[t](m1-m2+(m1+m2)s+m2sk[t]))ω[t])
m2s(m1+m2k[t])(-1+ω[t])
′
ω
3
m2
3
k[t]
2
k[t]
2
m1
2
(m1+m2k[t])
′
l
3
m2
3
k[t]
2
k[t]
2
(m1+m2k[t])
In[]:=
dyneq=(Solve[dynsist/.{l'[t]0,ω'[t]0,k'[t]0},{k[t],ω[t],l[t]}][[1]]//FullSimplify)/.{RuleEqual}
Out[]=
k[t]-1+,ω[t]1+,l[t]
q2
m2n0
m1n0q2
(m1-m2)n0(m2n0-q2)-q2(m1n0-m2n0+q2)s
γ
ρ
Stability and Hopf bifurcation
Jacobian evaluated at the equilibrium point
In[]:=
jacobian=D[{dynsist[[1,2]],dynsist[[2,2]],dynsist[[3,2]]},{{k[t],ω[t],l[t]}}]/.(dyneq/.{EqualRule})//FullSimplify
Out[]=
,μ,0,,-,-,γ-m2+s,-,-γζ
((m1-m2)m2+s)μ
2
n0
2
q2
m2(-m1n0+m2n0-q2)s
2
((-m1+m2)n0(m2n0-q2)+q2(m1n0-m2n0+q2)s)
m1(m1n0-m2n0+q2)s
2
m2
2
n0
m1(m2n0-q2s)(m1n0-m2n0+q2s)((m1-m2)m2+s)μ
2
n0
2
n0
2
q2
(m1n0-m2n0+q2)(-1+s)s
2
((m1-m2)n0(m2n0-q2)-q2(m1n0-m2n0+q2)s)
(m2n0-q2s)(m1n0-m2n0+q2s)μ
m2(m1n0-m2n0+q2)(-1+s)s
(m2n0-q2)(m1n0-m2n0+q2)(m2n0-q2s)(m1n0-m2n0+q2s)ρ
(-1+s)
2
((-m1+m2)n0(m2n0-q2)+q2(m1n0-m2n0+q2)s)
2
n0
(m1-m2)(m1-m2)m2+sμ
2
n0
2
q2
2
(m1n0-m2n0+q2)
q2ρ
(m1-m2)γμ
2
((-m1+m2)n0(m2n0-q2)+q2(m1n0-m2n0+q2)s)
m1m2q2sρ
2
(m1n0-m2n0+q2)
In[]:=
jacobian//MatrixForm
Out[]//MatrixForm=
((m1-m2)m2 2 n0 2 q2 m2(-m1n0+m2n0-q2)s | 2 ((-m1+m2)n0(m2n0-q2)+q2(m1n0-m2n0+q2)s) m1 2 m2 2 n0 | 0 |
m1 2 n0 2 n0 2 q2 (m1n0-m2n0+q2)(-1+s)s 2 ((m1-m2)n0(m2n0-q2)-q2(m1n0-m2n0+q2)s) | - (m2n0-q2s)(m1n0-m2n0+q2s)μ m2(m1n0-m2n0+q2)(-1+s)s | - (m2n0-q2)(m1n0-m2n0+q2)(m2n0-q2s)(m1n0-m2n0+q2s)ρ (-1+s) 2 ((-m1+m2)n0(m2n0-q2)+q2(m1n0-m2n0+q2)s) |
2 n0 (m1-m2)(m1-m2)m2 2 n0 2 q2 2 (m1n0-m2n0+q2) q2ρ | - (m1-m2) 2 ((-m1+m2)n0(m2n0-q2)+q2(m1n0-m2n0+q2)s) m1m2q2 2 (m1n0-m2n0+q2) | -γζ |
In[]:=
(*simplifyZ=Solve[{Z1q2-m2*n0,Z2q2*s-m2*n0,Z3q2-n0*(m2-m1),Z4s*q2^2-n0*(m2-m1)*(q2+Z2)},{q2,s,m1,n0}][[1]]*)
In[]:=
ecb1=b1(-Tr[jacobian]//FullSimplify)
Out[]=
b1γζ+
(m2n0-q2)μ
m2(-1+s)
In[]:=
ecb2=b2(Tr[Minors[jacobian]]//FullSimplify)
Out[]=
b2-
(m2n0-q2)γ((m1-m2)(m2n0-q2s)(m1n0-m2n0+q2s)-m1q2(m1n0-m2n0+q2)sζ)μ
m1m2q2(m1n0-m2n0+q2)(-1+s)s
In[]:=
ecb3=b3(-Det[jacobian]//FullSimplify)
Out[]=
b3-
(m2n0-q2)(m2n0-q2s)(m1n0-m2n0+q2s)γμ
m1m2q2(-1+s)s
In[]:=
ecb123=b1*b2-b3((ecb1[[2]]*ecb2[[2]]-ecb3[[2]])//FullSimplify)
Out[]=
b1b2-b3(m2n0-q2)γμ(m2n0-q2s)(m1n0-m2n0+q2s)-
1
m1m2q2(-1+s)s
((m1-m2)(m2n0-q2s)(m1n0-m2n0+q2s)-m1q2(m1n0-m2n0+q2)sζ)γζ+
(m2n0-q2)μ
m2(-1+s)
m1n0-m2n0+q2
Critical value for μ
In[]:=
criticalμ=μHB(Solve[ecb123[[2]]0,μ][[2,1,2]]//FullSimplify)
Out[]=
μHB(m2(-1+s)((m1n0-m2n0+q2)(m2n0-q2s)(m1n0-m2n0+q2s)-(m1-m2)(m2n0-q2s)(m1n0-m2n0+q2s)γζ+m1q2(m1n0-m2n0+q2)sγ))((m2n0-q2)((m1-m2)(m2n0-q2s)(m1n0-m2n0+q2s)-m1q2(m1n0-m2n0+q2)sζ))
2
ζ
In[]:=
eq[43]=criticalμ;
In[]:=
derivative=dydμHB((D[ecb123[[2]],μ]/.{μcriticalμ[[2]]})//FullSimplify)
Out[]=
dydμHB-((m2n0-q2)γ((m1n0-m2n0+q2)(m2n0-q2s)(m1n0-m2n0+q2s)-(m1-m2)(m2n0-q2s)(m1n0-m2n0+q2s)γζ+m1q2(m1n0-m2n0+q2)sγ))(m1m2q2(m1n0-m2n0+q2)(-1+s)s)
2
ζ
Simulation 1
In[]:=
case1={q11,q21,m11,m21.1,s0.5626761,γ0.3072315,ρ0.3403163,n00.02357968,ζ0.08431691};case1HB=Join[case1,{μcriticalμ[[2]]/.case1}]
Out[]=
{q11,q21,m11,m21.1,s0.562676,γ0.307232,ρ0.340316,n00.0235797,ζ0.0843169,μ8.5738}
In[]:=
case1f=case1HB;(*case1f[[-1]]=μ0.646;*)
In[]:=
dyneq/.case1f
Out[]=
{k[t]37.554,ω[t]0.957822,l[t]0.902782}
In[]:=
simul1=NDSolve[Join[(dynsist/.case1f),{k[0]50,ω[0]0.96,l[0]0.92}],{k,ω,l},{t,0,3000}]
Out[]=
k
InterpolatingFunction
| |||||
Data not in notebook. Store now |
,ωInterpolatingFunction
| |||||
Data not in notebook. Store now |
,lInterpolatingFunction
| |||||
Data not in notebook. Store now |
In[]:=
simhor=100;fig1A1=Plot[{simul1[[1,1,2]][t]},{t,0,simhor},PlotLabel"Sectoral distribution of capital k[t]",PlotStyle{Black,Thickness[0.002]}];fig1A2=Plot[{simul1[[1,2,2]][t]},{t,0,simhor},PlotLabel"Wage share ω[t]",PlotStyle{Black,Thickness[0.002]}];fig1A3=Plot[{simul1[[1,3,2]][t]},{t,0,simhor},PlotLabel"Employment rate l[t]",PlotStyle{Black,Thickness[0.002]}];fig1A=Show[GraphicsGrid[{{fig1A1,fig1A2,fig1A3}},FrameAll]]
Out[]=
In[]:=
simhor=100;fig1B1=ParametricPlot[{simul1[[1,2,2]][t],simul1[[1,3,2]][t]},{t,0,simhor},AxesLabel{"ω[t]","l[t]"},AspectRatio1,PlotStyle{Black,Thickness[0.001]},PlotRangeAll]/.Line[x_]{Arrowheads[Flatten[{0,ConstantArray[0.08,5]}]],Arrow[x]};fig1B2=ParametricPlot[{simul1[[1,2,2]][t],simul1[[1,1,2]][t]},{t,0,simhor},AxesLabel{"ω[t]","k[t]"},AspectRatio1,PlotStyle{Black,Thickness[0.001]},PlotRangeAll]/.Line[x_]{Arrowheads[Flatten[{0,ConstantArray[0.08,5]}]],Arrow[x]};fig1B3=ParametricPlot[{simul1[[1,3,2]][t],simul1[[1,1,2]][t]},{t,0,simhor},AxesLabel{"l[t]","k[t]"},AspectRatio1,PlotStyle{Black,Thickness[0.001]},PlotRangeAll]/.Line[x_]{Arrowheads[Flatten[{0,ConstantArray[0.08,5]}]],Arrow[x]};fig1B=Show[GraphicsGrid[{{fig1B1,fig1B2,fig1B3}},FrameAll]]
Out[]=
In[]:=
fig1C=ParametricPlot3D[{simul1[[1,1,2]][t]/100,simul1[[1,2,2]][t],simul1[[1,3,2]][t]},{t,0,1000},PlotStyle{Black,Thickness[0.001]},PlotRangeAll,AspectRatio0.5,AxesLabel{"k[t]","ω[t]","l[t]"}]/.Line[x_]{Arrowheads[Flatten[{0,ConstantArray[0.0125,10]}]],Arrow[x]}
Out[]=
Simulation 2
In[]:=
case2={q11,q21,m11,m20.9,s0.5626761,γ0.3072315,ρ0.3403163,n00.02357968,ζ0.08431691};case2HB=Join[case2,{μcriticalμ[[2]]/.case2}]
Out[]=
{q11,q21,m11,m20.9,s0.562676,γ0.307232,ρ0.340316,n00.0235797,ζ0.0843169,μ1.56755}
In[]:=
case2f=case2HB;(*case1f[[-1]]=μ0.646;*)
In[]:=
dyneq/.case2f
Out[]=
{k[t]46.1216,ω[t]0.958363,l[t]0.902782}
In[]:=
simul2=NDSolve[Join[(dynsist/.case2f),{k[0]50,ω[0]0.96,l[0]0.92}],{k,ω,l},{t,0,3000}]
Out[]=
kInterpolatingFunction
,ωInterpolatingFunction
,lInterpolatingFunction
|
|
|
In[]:=
simhor=100;fig2A1=Plot[{simul2[[1,1,2]][t]},{t,0,simhor},PlotLabel"Sectoral distribution of capital k[t]",PlotStyle{Black,Thickness[0.002]}];fig2A2=Plot[{simul2[[1,2,2]][t]},{t,0,simhor},PlotLabel"Wage share ω[t]",PlotStyle{Black,Thickness[0.002]}];fig2A3=Plot[{simul2[[1,3,2]][t]},{t,0,simhor},PlotLabel"Employment rate l[t]",PlotStyle{Black,Thickness[0.002]}];fig2A=Show[GraphicsGrid[{{fig2A1,fig2A2,fig2A3}},FrameAll]]
Out[]=
In[]:=
simhor=100;fig2B1=ParametricPlot[{simul2[[1,2,2]][t],simul2[[1,3,2]][t]},{t,0,simhor},AxesLabel{"ω[t]","l[t]"},AspectRatio1,PlotStyle{Black,Thickness[0.001]},PlotRangeAll]/.Line[x_]{Arrowheads[Flatten[{0,ConstantArray[0.075,5]}]],Arrow[x]};fig2B2=ParametricPlot[{simul2[[1,2,2]][t],simul2[[1,1,2]][t]},{t,0,simhor},AxesLabel{"ω[t]","k[t]"},AspectRatio1,PlotStyle{Black,Thickness[0.001]},PlotRangeAll]/.Line[x_]{Arrowheads[Flatten[{0,ConstantArray[0.075,5]}]],Arrow[x]};fig2B3=ParametricPlot[{simul2[[1,3,2]][t],simul2[[1,1,2]][t]},{t,0,simhor},AxesLabel{"l[t]","k[t]"},AspectRatio1,PlotStyle{Black,Thickness[0.001]},PlotRangeAll]/.Line[x_]{Arrowheads[Flatten[{0,ConstantArray[0.075,5]}]],Arrow[x]};fig2B=Show[GraphicsGrid[{{fig2B1,fig2B2,fig2B3}},FrameAll]]
Out[]=
In[]:=
fig2C=ParametricPlot3D[{simul2[[1,1,2]][t]/100,simul2[[1,2,2]][t],simul2[[1,3,2]][t]},{t,0,100},PlotStyle{Black,Thickness[0.001]},PlotRangeAll,AspectRatio0.5,AxesLabel{"k[t]","ω[t]","l[t]"}]/.Line[x_]{Arrowheads[Flatten[{0,ConstantArray[0.015,10]}]],Arrow[x]}
Out[]=
Simulation of the sectoral rates of profit
In[]:=
{eq[44],eq[45]}=(Solve[Flatten[{eq[15],eq[16],eq[38],eq[39],eq[32]}],{r1[t],r2[t],a21,a22,a01,a02,V[t]}][[1,1;;2]]//FullSimplify)/.{RuleEqual}
Out[]=
r1[t]-,r2[t]
q2(m1-m1s+m2(-1+s)k[t](-1+ω[t])+m1sω[t])
m2sk[t](m1+m2k[t])(-1+ω[t])
q2(-m1s+m2sk[t](-1+ω[t])+m1(1+s)ω[t])
m2s(m1+m2k[t])(-1+ω[t])
In[]:=
eq[46]=Solve[Join[{eq[44],eq[45]},dyneq],{r1[t],r2[t],k[t],ω[t],l[t]}][[1,1;;2]]/.{RuleEqual}
Out[]=
r1[t],r2[t]
n0
s
n0
s
In[]:=
simul1PR=NDSolve[Join[(dynsist/.case1f),{k[0]50,ω[0]0.96,l[0]0.92},{eq[44],eq[45]}/.case1f,({r1[0]eq[44][[2]],r2[0]eq[45][[2]]}/.case1f)/.{k[t]50,ω[t]0.96,l[t]0.92}],{k,ω,l,r1,r2},{t,0,3000}]
Out[]=
k
InterpolatingFunction
| |||||
Data not in notebook. Store now |
,ωInterpolatingFunction
| |||||
Data not in notebook. Store now |
,lInterpolatingFunction
| |||||
Data not in notebook. Store now |
,r1InterpolatingFunction
| |||||
Data not in notebook. Store now |
,r2InterpolatingFunction
| |||||
Data not in notebook. Store now |
In[]:=
fig3A=Legended[Plot[{simul1PR[[1,4,2]][t],simul1PR[[1,5,2]][t],eq[46][[1,2]]/.case1f},{t,0,100},PlotStyle{{Black,Thickness[0.002]},{Gray,Thickness[0.002]},{Black,Dashed}},PlotRange{0,0.08}],LineLegend[{{Black,Thickness[0.002]},{Gray,Thickness[0.002]},Dashed},{"r1[t]","r2[t]",""}]]
*
r
Out[]=
|
In[]:=
eq[46]/.case1f
Out[]=
{r1[t]0.0419063,r2[t]0.0419063}
In[]:=
({r1[0]eq[44][[2]],r2[0]eq[45][[2]]}/.case1f)/.{k[t]50,ω[t]0.96,l[t]0.92}
Out[]=
{r1[0]0.0279798,r2[0]0.216667}
In[]:=
fig3B=ParametricPlot[{simul1PR[[1,4,2]][t],simul1PR[[1,5,2]][t]},{t,0,simhor},AxesLabel{"r1[t]","r2[t]"},AspectRatio1,PlotStyle{Black,Thickness[0.001]},PlotRange{0.01,0.07}]/.Line[x_]{Arrowheads[Flatten[{0,ConstantArray[0.05,5]}]],Arrow[x]}
Out[]=
In[]:=
simul2PR=NDSolve[Join[(dynsist/.case2f),{k[0]50,ω[0]0.96,l[0]0.92},{eq[44],eq[45]}/.case2f,({r1[0]eq[44][[2]],r2[0]eq[45][[2]]}/.case2f)/.{k[t]50,ω[t]0.96,l[t]0.92}],{k,ω,l,r1,r2},{t,0,3000}]
Out[]=
k
InterpolatingFunction
| |||||
Data not in notebook. Store now |
,ωInterpolatingFunction
| |||||
Data not in notebook. Store now |
,lInterpolatingFunction
| |||||
Data not in notebook. Store now |
,r1InterpolatingFunction
| |||||
Data not in notebook. Store now |
,r2InterpolatingFunction
| |||||
Data not in notebook. Store now |
In[]:=
fig4A=Legended[Plot[{simul2PR[[1,4,2]][t],simul2PR[[1,5,2]][t],eq[46][[1,2]]/.case2f},{t,0,100},PlotStyle{{Black,Thickness[0.002]},{Gray,Thickness[0.002]},{Black,Dashed}},PlotRange{-0.1,0.15}],LineLegend[{{Black,Thickness[0.002]},{Gray,Thickness[0.002]},Dashed},{"r1[t]","r2[t]",""}]]
*
r
Out[]=
|
In[]:=
fig4B=ParametricPlot[{simul2PR[[1,4,2]][t],simul2PR[[1,5,2]][t]},{t,0,simhor},AxesLabel{"r1[t]","r2[t]"},AspectRatio1,PlotStyle{Black,Thickness[0.001]},PlotRangeAll]/.Line[x_]{Arrowheads[Flatten[{0,ConstantArray[0.05,5]}]],Arrow[x]}
Out[]=
In[]:=
eq[46]/.case2f
Out[]=
{r1[t]0.0419063,r2[t]0.0419063}
In[]:=
({r1[0]eq[44][[2]],r2[0]eq[45][[2]]}/.case2f)/.{k[t]50,ω[t]0.96,l[t]0.92}
Out[]=
{r1[0]0.0378771,r2[0]0.0808378}
Damped and unstable oscillations
In[]:=
case3f={q11,q21,m11,m21.1,s0.5626761,γ0.3072315,ρ0.3403163,n00.02357968,ζ0.08431691,μ20}
Out[]=
{q11,q21,m11,m21.1,s0.562676,γ0.307232,ρ0.340316,n00.0235797,ζ0.0843169,μ20}
In[]:=
simul3PR=NDSolve[Join[(dynsist/.case3f),{k[0]50,ω[0]0.96,l[0]0.92},{eq[44],eq[45]}/.case3f,({r1[0]eq[44][[2]],r2[0]eq[45][[2]]}/.case3f)/.{k[t]50,ω[t]0.96,l[t]0.92}],{k,ω,l,r1,r2},{t,0,3000}]
Out[]=
kInterpolatingFunction
,ωInterpolatingFunction
,lInterpolatingFunction
,r1InterpolatingFunction
,r2InterpolatingFunction
|
|
|
|
|
fig5a=Legended[Plot[{simul3PR[[1,4,2]][t],simul3PR[[1,5,2]][t],eq[46][[1,2]]/.case3f},{t,0,200},PlotStyle{{Black,Thickness[0.002]},{Gray,Thickness[0.002]},{Black,Dashed}},PlotRange{0.02,0.06}],LineLegend[{{Black,Thickness[0.002]},{Gray,Thickness[0.002]},Dashed},{"r1[t]","r2[t]",""}]]
*
r
Out[]=
|
In[]:=
case4f={q11,q21,m11,m21.1,s0.5626761,γ0.3072315,ρ0.3403163,n00.02357968,ζ0.08431691,μ7}
Out[]=
{q11,q21,m11,m21.1,s0.562676,γ0.307232,ρ0.340316,n00.0235797,ζ0.0843169,μ7}
In[]:=
simul4PR=NDSolve[Join[(dynsist/.case4f),{k[0]50,ω[0]0.96,l[0]0.92},{eq[44],eq[45]}/.case4f,({r1[0]eq[44][[2]],r2[0]eq[45][[2]]}/.case4f)/.{k[t]50,ω[t]0.96,l[t]0.92}],{k,ω,l,r1,r2},{t,0,3000}]
![](/dist/cr/SystemResources/Bitmaps/Typeset/Message/ellipsis-8972bdbc6db8eeffad72e44c03df3ddb.png)
Out[]=
k
InterpolatingFunction
| |||||
Data not in notebook. Store now |
,ωInterpolatingFunction
| |||||
Data not in notebook. Store now |
,lInterpolatingFunction
| |||||
Data not in notebook. Store now |
,r1InterpolatingFunction
| |||||
Data not in notebook. Store now |
,r2InterpolatingFunction
| |||||
Data not in notebook. Store now |
fig5b=Legended[Plot[{simul4PR[[1,4,2]][t],simul4PR[[1,5,2]][t],eq[46][[1,2]]/.case4f},{t,0,200},PlotStyle{{Black,Thickness[0.002]},{Gray,Thickness[0.002]},{Black,Dashed}},PlotRange{0,0.08}],LineLegend[{{Black,Thickness[0.002]},{Gray,Thickness[0.002]},Dashed},{"r1[t]","r2[t]",""}]]
*
r
Out[]=
|
Relationship between μHB and model parameters
In[]:=
baseline1={q11,q21,m11,m21.1,s0.5626761,γ0.3072315,ρ0.3403163,n00.02357968,ζ0.08431691};
fig6Aa=Plot[eq[43][[2]]/.Delete[baseline1,1],{q1,0,2.5},PlotStyle{Black,Thickness[0.002]},AxesLabel{"q1","μHB"}];fig6Ab=Plot[eq[43][[2]]/.Delete[baseline1,2],{q2,0,2.5},PlotStyle{Black,Thickness[0.002]},AxesLabel{"q2","μHB"}];fig6Ac=Plot[eq[43][[2]]/.Delete[baseline1,3],{m1,0.9,2},PlotStyle{Black,Thickness[0.002]},AxesLabel{"m1","μHB"},PlotRange{{0.9,2},{0,5}}];fig6Ad=Plot[eq[43][[2]]/.Delete[baseline1,4],{m2,0,1.15},PlotStyle{Black,Thickness[0.002]},AxesLabel{"m2","μHB"}];fig6Ae=Plot[eq[43][[2]]/.Delete[baseline1,5],{s,0,0.87},PlotStyle{Black,Thickness[0.002]},AxesLabel{"s","μHB"},PlotRange{{0,0.87},{0,30}}];fig6Af=Plot[eq[43][[2]]/.Delete[baseline1,6],{γ,0,0.5},PlotStyle{Black,Thickness[0.002]},AxesLabel{"γ","μHB"}];fig6Ag=Plot[eq[43][[2]]/.Delete[baseline1,7],{ρ,0,0.5},PlotStyle{Black,Thickness[0.002]},AxesLabel{"ρ","μHB"}];fig6Ah=Plot[eq[43][[2]]/.Delete[baseline1,8],{n0,0,0.5},PlotStyle{Black,Thickness[0.002]},AxesLabel{"n0","μHB"}];fig6Ai=Plot[eq[43][[2]]/.Delete[baseline1,9],{ζ,0,1.3},PlotStyle{Black,Thickness[0.002]},AxesLabel{"ζ","μHB"},PlotRange{{0,1.3},{0,5}}];fig6A=Show[GraphicsGrid[{{fig6Aa,fig6Ab,fig6Ac},{fig6Ad,fig6Ae,fig6Af},{fig6Ag,fig6Ah,fig6Ai}},FrameAll]]
Out[]=
In[]:=
baseline2={q11,q21,m11,m20.9,s0.5626761,γ0.3072315,ρ0.3403163,n00.02357968,ζ0.08431691};
fig6Ba=Plot[eq[43][[2]]/.Delete[baseline2,1],{q1,0,1.5},PlotStyle{Black,Thickness[0.002]},AxesLabel{"q1","μHB"}];fig6Bb=Plot[eq[43][[2]]/.Delete[baseline2,2],{q2,0,1.5},PlotStyle{Black,Thickness[0.002]},AxesLabel{"q2","μHB"},PlotRange{{0,1.5},{0,2}}];fig6Bc=Plot[eq[43][[2]]/.Delete[baseline2,3],{m1,0.75,2},PlotStyle{Black,Thickness[0.002]},AxesLabel{"m1","μHB"},PlotRange{{0.75,2},{0,5}}];fig6Bd=Plot[eq[43][[2]]/.Delete[baseline2,4],{m2,0,1.2},PlotStyle{Black,Thickness[0.002]},AxesLabel{"m2","μHB"},PlotRange{{0,1.2},{0,5}}];fig6Be=Plot[eq[43][[2]]/.Delete[baseline2,5],{s,0,1},PlotStyle{Black,Thickness[0.002]},AxesLabel{"s","μHB"},PlotRange{{0,1},{0,2}}];fig6Bf=Plot[eq[43][[2]]/.Delete[baseline2,6],{γ,0,0.5},PlotStyle{Black,Thickness[0.002]},AxesLabel{"γ","μHB"}];fig6Bg=Plot[eq[43][[2]]/.Delete[baseline2,7],{ρ,0,0.5},PlotStyle{Black,Thickness[0.002]},AxesLabel{"ρ","μHB"}];fig6Bh=Plot[eq[43][[2]]/.Delete[baseline2,8],{n0,0,0.62},PlotStyle{Black,Thickness[0.002]},AxesLabel{"n0","μHB"}];fig6Bi=Plot[eq[43][[2]]/.Delete[baseline2,9],{ζ,0,1.3},PlotStyle{Black,Thickness[0.002]},AxesLabel{"ζ","μHB"}];fig6B=Show[GraphicsGrid[{{fig6Ba,fig6Bb,fig6Bc},{fig6Bd,fig6Be,fig6Bf},{fig6Bg,fig6Bh,fig6Bi}},FrameAll]]
Out[]=
![](/img/download-icon.png)
![](/img/Open-In-Cloud-icon.png)
Cite this as: John Cajas Guijarro, "A Classical Marxian Two-Sector Endogenous Cycle Model: Integrating Marx, Dutt, and Goodwin" from the Notebook Archive (2023), https://notebookarchive.org/2023-10-1g5rpug
![](/img/download-icon-white.png)
Download
![](/img/Open-In-Cloud-icon-white.png)
![](/img/3-Dots-white.png)