Skip to content

Commit 268225a

Browse files
committed
minor bug fixes
1 parent d20a55b commit 268225a

File tree

3 files changed

+21
-20
lines changed

3 files changed

+21
-20
lines changed

lectures/cagan_ree.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ jupytext:
44
extension: .md
55
format_name: myst
66
format_version: 0.13
7-
jupytext_version: 1.16.1
7+
jupytext_version: 1.17.1
88
kernelspec:
99
display_name: Python 3 (ipykernel)
1010
language: python
@@ -267,6 +267,7 @@ def solve(model, T):
267267
A1 = np.eye(T+1, T+1) - δ * np.eye(T+1, T+1, k=1)
268268
A2 = np.eye(T+1, T+1) - np.eye(T+1, T+1, k=-1)
269269
270+
# Assume γ* = 1
270271
b1 = (1-δ) * μ_seq + np.concatenate([np.zeros(T), [δ * π_end]])
271272
b2 = μ_seq + np.concatenate([[m0], np.zeros(T)])
272273
@@ -326,7 +327,7 @@ T1 = 60
326327
μ_star = 0
327328
T = 80
328329
329-
μ_seq_1 = np.append(μ0*np.ones(T1+1), μ_star*np.ones(T-T1))
330+
μ_seq_1 = np.append(μ0*np.ones(T1), μ_star*np.ones(T-T1+1))
330331
331332
cm = create_cagan_model(μ_seq=μ_seq_1)
332333
@@ -493,32 +494,32 @@ cm1 = create_cagan_model(μ_seq=μ_seq_2_path1)
493494
π_seq_2_path1, m_seq_2_path1, p_seq_2_path1 = solve(cm1, T)
494495
495496
# continuation path
496-
μ_seq_2_cont = μ_star * np.ones(T-T1)
497+
μ_seq_2_cont = μ_star * np.ones(T-T1+1)
497498
498-
cm2 = create_cagan_model(m0=m_seq_2_path1[T1+1],
499+
cm2 = create_cagan_model(m0=m_seq_2_path1[T1],
499500
μ_seq=μ_seq_2_cont)
500-
π_seq_2_cont, m_seq_2_cont1, p_seq_2_cont1 = solve(cm2, T-1-T1)
501+
π_seq_2_cont, m_seq_2_cont1, p_seq_2_cont1 = solve(cm2, T-T1)
501502
502503
503504
# regime 1 - simply glue π_seq, μ_seq
504-
μ_seq_2 = np.concatenate((μ_seq_2_path1[:T1+1],
505+
μ_seq_2 = np.concatenate((μ_seq_2_path1[:T1],
505506
μ_seq_2_cont))
506-
π_seq_2 = np.concatenate((π_seq_2_path1[:T1+1],
507+
π_seq_2 = np.concatenate((π_seq_2_path1[:T1],
507508
π_seq_2_cont))
508-
m_seq_2_regime1 = np.concatenate((m_seq_2_path1[:T1+1],
509+
m_seq_2_regime1 = np.concatenate((m_seq_2_path1[:T1],
509510
m_seq_2_cont1))
510-
p_seq_2_regime1 = np.concatenate((p_seq_2_path1[:T1+1],
511+
p_seq_2_regime1 = np.concatenate((p_seq_2_path1[:T1],
511512
p_seq_2_cont1))
512513
513514
# regime 2 - reset m_T1
514-
m_T1 = (m_seq_2_path1[T1] + μ0) + cm2.α*(μ0 - μ_star)
515+
m_T1 = (m_seq_2_path1[T1-1] + μ0) + cm2.α*(μ0 - μ_star)
515516
516517
cm3 = create_cagan_model(m0=m_T1, μ_seq=μ_seq_2_cont)
517-
π_seq_2_cont2, m_seq_2_cont2, p_seq_2_cont2 = solve(cm3, T-1-T1)
518+
π_seq_2_cont2, m_seq_2_cont2, p_seq_2_cont2 = solve(cm3, T-T1)
518519
519-
m_seq_2_regime2 = np.concatenate((m_seq_2_path1[:T1+1],
520+
m_seq_2_regime2 = np.concatenate((m_seq_2_path1[:T1],
520521
m_seq_2_cont2))
521-
p_seq_2_regime2 = np.concatenate((p_seq_2_path1[:T1+1],
522+
p_seq_2_regime2 = np.concatenate((p_seq_2_path1[:T1],
522523
p_seq_2_cont2))
523524
```
524525

lectures/cons_smooth.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ jupytext:
44
extension: .md
55
format_name: myst
66
format_version: 0.13
7-
jupytext_version: 1.16.4
7+
jupytext_version: 1.17.1
88
kernelspec:
99
display_name: Python 3 (ipykernel)
1010
language: python
@@ -279,7 +279,7 @@ def compute_optimal(model, a0, y_seq):
279279
b = y_seq - c_seq
280280
b[0] = b[0] + a0
281281
282-
a_seq = np.linalg.inv(A) @ b
282+
a_seq = np.linalg.inv(A) @ (R * b)
283283
a_seq = np.concatenate([[a0], a_seq])
284284
285285
return c_seq, a_seq, h0
@@ -361,7 +361,7 @@ def plot_cs(model, # consumption-smoothing model
361361
c_seq, a_seq, h0 = compute_optimal(model, a0, y_seq)
362362
363363
# Sequence length
364-
T = cs_model.T
364+
T = model.T
365365
366366
fig, axes = plt.subplots(1, 2, figsize=(12,5))
367367

lectures/tax_smooth.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ jupytext:
44
extension: .md
55
format_name: myst
66
format_version: 0.13
7-
jupytext_version: 1.16.4
7+
jupytext_version: 1.17.1
88
kernelspec:
99
display_name: Python 3 (ipykernel)
1010
language: python
@@ -283,7 +283,7 @@ def compute_optimal(model, B0, G_seq):
283283
A = np.diag(-R*np.ones(S), k=-1) + np.eye(S+1)
284284
b = G_seq - T_seq
285285
b[0] = b[0] + B0
286-
B_seq = np.linalg.inv(A) @ b
286+
B_seq = np.linalg.inv(A) @ (R * b)
287287
B_seq = np.concatenate([[B0], B_seq])
288288
289289
return T_seq, B_seq, h0
@@ -368,7 +368,7 @@ def plot_ts(model, # tax-smoothing model
368368
T_seq, B_seq, h0 = compute_optimal(model, B0, G_seq)
369369
370370
# Sequence length
371-
S = tax_model.S
371+
S = model.S
372372
373373
fig, axes = plt.subplots(1, 2, figsize=(12,5))
374374
@@ -656,4 +656,4 @@ plt.plot(ξ1_arr, cost_grad)
656656
plt.ylabel('derivative of cost')
657657
plt.xlabel(r'$\phi$')
658658
plt.show()
659-
```
659+
```

0 commit comments

Comments
 (0)