# \donttest{
#### Assume that the consumer supplies labor only in the first period,
## and the firm produces only in the first period.
zeta <- 1.25 # the ratio of repayments to loans
dst.firm <- node_new(
"prod2",
type = "CD", alpha = 1,
beta = c(0.5, 0.5),
"prod1", "lab1"
)
dst.bank <- node_new(
"prod1",
type = "Leontief",
a = c(1, 1) * zeta,
"prod2.1", "prod2.2"
)
dst.consumer <- node_new(
"util",
type = "CD", alpha = 1,
beta = c(0.5, 0.25, 0.25),
"prod1", "prod2.1", "prod2.2"
)
ge <- sdm2(
A = c(dst.firm, dst.bank, dst.consumer),
B = matrix(c(
0, 1, 0,
2, 0, 0,
1, 0, 0,
0, 0, 0
), 4, 3, TRUE),
S0Exg = matrix(c(
NA, NA, NA,
NA, NA, NA,
NA, NA, NA,
NA, NA, 100
), 4, 3, TRUE),
names.commodity = c("prod1", "prod2.1", "prod2.2", "lab1"),
names.agent = c("firm", "bank", "consumer"),
numeraire = "lab1",
policy = makePolicyMeanValue(30),
ts = TRUE
)
ge$p
ge$z
addmargins(ge$D, 2)
addmargins(ge$S, 2)
#### Assume that the consumer supplies labor in both periods and
## firms produce in both periods.
zeta <- 1.25 # the ratio of repayments to loans
dst.firm1 <- node_new(
"prod2",
type = "CD", alpha = 2,
beta = c(0.5, 0.5),
"lab1", "prod1"
)
dst.firm2.1 <- node_new(
"prod3.1",
type = "CD", alpha = 2,
beta = c(0.5, 0.5),
"lab2.1", "prod2.1"
)
dst.firm2.2 <- node_new(
"prod3.2",
type = "CD", alpha = 1,
beta = c(0.5, 0.5),
"lab2.2", "prod2.2"
)
dst.bank <- node_new(
"prod1",
type = "Leontief",
a = c(1, 1) * zeta,
"prod3.1", "prod3.2"
)
dst.consumer <- node_new(
"util",
type = "CD", alpha = 1,
beta = c(1 / 3, 1 / 3, 1 / 3),
"prod1", "prod2.1", "prod2.2"
)
ge <- sdm2(
A = c(
dst.firm1, dst.firm2.1, dst.firm2.2,
dst.bank, dst.consumer
),
B = matrix(c(
0, 0, 0, 1, 0,
1, 0, 0, 0, 0,
1, 0, 0, 0, 0,
0, 1, 0, 0, 0,
0, 0, 1, 0, 0,
0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0, 0, 0, 0
), 8, 5, TRUE),
S0Exg = matrix(c(
NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA,
NA, NA, NA, NA, 100,
NA, NA, NA, NA, 100,
NA, NA, NA, NA, 100
), 8, 5, TRUE),
names.commodity = c(
"prod1", "prod2.1", "prod2.2",
"prod3.1", "prod3.2",
"lab1", "lab2.1", "lab2.2"
),
names.agent = c(
"firm1", "firm2.1", "firm2.2",
"bank", "consumer"
),
numeraire = "lab1",
policy = makePolicyMeanValue(30),
ts = TRUE
)
ge$p
ge$z
ge$D
ge$S
ge$DV
ge$SV
# }
Run the code above in your browser using DataLab