Skip to content

Commit 6964bf3

Browse files
authored
[bug] Fix obvious bugs across all lectures (#95)
* update solow * complex and trig * fix bugs * update bugs * update bug
1 parent e9f502a commit 6964bf3

28 files changed

+750
-102
lines changed

lectures/ar1_processes.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ kernelspec:
4242
import numpy as np
4343
import matplotlib.pyplot as plt
4444
plt.rcParams["figure.figsize"] = (11, 5) # 设置默认图像大小
45+
46+
import matplotlib as mpl
47+
FONTPATH = "fonts/SourceHanSerifSC-SemiBold.otf"
48+
mpl.font_manager.fontManager.addfont(FONTPATH)
49+
plt.rcParams['font.family'] = ['Source Han Serif SC']
4550
```
4651

4752
## AR(1) 模型

lectures/cagan_adaptive.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,14 +182,18 @@ $$
182182
我们因此解决了我们模型所决定的两个关键内生时间序列,即预期通货膨胀率序列 $\pi^*$ 和实际通货膨胀率序列 $\pi$。
183183
184184
知道了这些,我们就可以从方程 {eq}`eq:eqfiscth1` 快速计算出相关的价格水平对数序列 $p$。
185+
185186
让我们填补这一步骤的细节。
186187
187188
既然我们现在知道了 $\mu$,计算 $m$ 就很容易了。
189+
188190
因此,注意到我们可以将方程
189191
$$
190192
m_{t+1} = m_t + \mu_t , \quad t = 0, 1, \ldots, T
191193
$$
194+
192195
表示为矩阵方程
196+
193197
$$
194198
\begin{bmatrix}
195199
1 & 0 & 0 & \cdots & 0 & 0 \cr
@@ -217,12 +221,16 @@ m_t = m_0 + \sum_{s=0}^{t-1} \mu_s, \quad t =1, \ldots, T+1
217221
$$ (eq:mcum_ad)
218222
219223
方程 {eq}`eq:mcum_ad` 表明,时间 $t$ 的货币供应对数等于初始货币供应对数 $m_0$ 加上 $0$ 到 $t$ 时间之间货币增长率的累积。
224+
220225
然后我们可以从方程 {eq}`eq:eqfiscth1` 计算每个 $t$ 的 $p_t$。
226+
221227
我们可以为 $p$ 写一个紧凑的公式
222228
$$
223229
p = m + \alpha \hat \pi^*
224230
$$
231+
225232
其中
233+
226234
$$
227235
\hat \pi^* = \begin{bmatrix} \pi_0^* \cr
228236
\pi_1^* \cr
@@ -231,15 +239,19 @@ $$
231239
\pi_{T}^*
232240
\end{bmatrix},
233241
$$
242+
234243
这只是去掉最后一个元素的 $\pi^*$。
235244
236245
## 预测误差
237246
238247
我们的计算将验证
248+
239249
$$
240250
\hat \pi^* \neq \pi,
241251
$$
252+
242253
因此通常
254+
243255
$$
244256
\pi_t^* \neq \pi_t, \quad t = 0, 1, \ldots , T
245257
$$ (eq:notre)
@@ -249,6 +261,7 @@ $$ (eq:notre)
249261
在讲座 {doc}`价格水平的货币主义理论 <cagan_ree>` 中,我们研究了用"完美预见"或"理性预期"假设替代假设 {eq}`eq:adaptexpn` 的模型版本。
250262
251263
但现在,让我们深入并用适应性预期版本的模型进行一些计算。
264+
252265
像往常一样,我们将从导入一些 Python 模块开始。
253266
254267
@@ -382,9 +395,11 @@ print(λ - α*(1-λ))
382395
现在我们来看一些实验。
383396
384397
### 实验1
398+
385399
我们将研究一种情况,其中货币供应量的增长率从t=0到t=T_1时为$\mu_0$,然后在t=T_1时永久下降到$\mu^*$。
386400
387401
因此,设$T_1 \in (0, T)$。
402+
388403
所以当$\mu_0 > \mu^*$时,我们假设
389404
390405
$$
@@ -395,6 +410,7 @@ $$
395410
$$
396411
397412
注意,我们在这个讲座{doc}`货币主义价格水平理论<cagan_ree>`中的理性预期版本模型中研究了完全相同的实验。
413+
398414
因此,通过比较这两个讲座的结果,我们可以了解假设适应性预期(如我们在这里所做的)而不是理性预期(如我们在另一个讲座中所假设的)的后果。
399415
400416
```{code-cell} ipython3

lectures/cagan_ree.md

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,11 @@ import numpy as np
223223
from collections import namedtuple
224224
import matplotlib.pyplot as plt
225225
plt.rcParams['figure.dpi'] = 200
226+
227+
import matplotlib as mpl
228+
FONTPATH = "fonts/SourceHanSerifSC-SemiBold.otf"
229+
mpl.font_manager.fontManager.addfont(FONTPATH)
230+
plt.rcParams['font.family'] = ['Source Han Serif SC']
226231
```
227232
首先,我们将参数存储在一个`namedtuple`中:
228233
@@ -369,7 +374,7 @@ $$ (eq:pfiscaltheory2)
369374
是 $p_{T_1}$ 还是 $m_{T_1}$?
370375
371376
如果我们坚持认为货币供应 $m_{T_1}$ 锁定在从过去继承的 $m_{T_1}^1$ 值,那么公式 {eq}`eq:pformula2` 意味着价格水平在时间 $T_1$ 向下跳跃,以与
372-
$\pi_{T_1}$ 的向下跳跃一致
377+
$\pi_{T_1}$ 的向下跳跃一致.
373378
374379
关于货币供应水平的另一个假设是,作为"通货膨胀稳定"的一部分,
375380
政府根据以下公式重置 $m_{T_1}$:
@@ -502,11 +507,11 @@ plot_configs = [
502507
{'data': [(T_seq, π_seq_2)], 'ylabel': r'$\pi$'},
503508
{'data': [(T_seq, m_seq_2_regime1 - p_seq_2_regime1)],
504509
'ylabel': r'$m - p$'},
505-
{'data': [(T_seq, m_seq_2_regime1, 'Smooth $m_{T_1}$'),
506-
(T_seq, m_seq_2_regime2, 'Jumpy $m_{T_1}$')],
510+
{'data': [(T_seq, m_seq_2_regime1, '平滑的 $m_{T_1}$'),
511+
(T_seq, m_seq_2_regime2, '非平滑的 $m_{T_1}$')],
507512
'ylabel': r'$m$'},
508-
{'data': [(T_seq, p_seq_2_regime1, 'Smooth $p_{T_1}$'),
509-
(T_seq, p_seq_2_regime2, 'Jumpy $p_{T_1}$')],
513+
{'data': [(T_seq, p_seq_2_regime1, '平滑的 $p_{T_1}$'),
514+
(T_seq, p_seq_2_regime2, '非平滑的 $p_{T_1}$')],
510515
'ylabel': r'$p$'}
511516
]
512517
@@ -527,14 +532,20 @@ def experiment_plot(plot_configs, ax):
527532
experiment_plot(plot_configs, ax)
528533
```
529534
我们邀请您将这些图表与上面实验1中分析的预期稳定化的相应图表进行比较。
535+
530536
请注意,第二个面板中的通货膨胀图现在与顶部面板中的货币增长图完全相同,以及现在在第三个面板中描绘的实际余额的对数在时间$T_1$时向上跳跃。
537+
531538
底部两个面板绘制了在$m_{T_1}$可能调整的两种方式下的$m$和$p$,以满足在$T_1$时$m - p$的向上跳跃的要求。
539+
532540
* 橙色线让$m_{T_1}$向上跳跃,以确保对数价格水平$p_{T_1}$不会下降。
533541
* 蓝色线让$p_{T_1}$下降,同时阻止货币供应量跳跃。
534542
535543
以下是一种解释政府在橙色线政策实施时所做的事情的方法。
544+
536545
政府通过印钞来资助支出,利用从货币供应增长率永久性下降带来的实际余额需求增加中获得的"速度红利"。
546+
537547
接下来的代码生成一个多面板图,包括实验1和实验2的结果。
548+
538549
这使我们能够评估理解$\mu_t$在$t=T_1$时的突然永久性下降是完全预期的(如实验1中)还是完全未预期的(如实验2中)的重要性。
539550
540551
```{code-cell} ipython3
@@ -545,16 +556,16 @@ fig, ax = plt.subplots(5, figsize=(5, 12))
545556
546557
plot_configs = [
547558
{'data': [(T_seq[:-1], μ_seq_2)], 'ylabel': r'$\mu$'},
548-
{'data': [(T_seq, π_seq_2, 'Unforeseen'),
549-
(T_seq, π_seq_1, 'Foreseen')], 'ylabel': r'$p$'},
550-
{'data': [(T_seq, m_seq_2_regime1 - p_seq_2_regime1, 'Unforeseen'),
551-
(T_seq, m_seq_1 - p_seq_1, 'Foreseen')], 'ylabel': r'$m - p$'},
552-
{'data': [(T_seq, m_seq_2_regime1, 'Unforeseen (Smooth $m_{T_1}$)'),
553-
(T_seq, m_seq_2_regime2, 'Unforeseen ($m_{T_1}$ jumps)'),
554-
(T_seq, m_seq_1, 'Foreseen')], 'ylabel': r'$m$'},
555-
{'data': [(T_seq, p_seq_2_regime1, 'Unforeseen (Smooth $m_{T_1}$)'),
556-
(T_seq, p_seq_2_regime2, 'Unforeseen ($m_{T_1}$ jumps)'),
557-
(T_seq, p_seq_1, 'Foreseen')], 'ylabel': r'$p$'}
559+
{'data': [(T_seq, π_seq_2, '不可预见的'),
560+
(T_seq, π_seq_1, '可预见的')], 'ylabel': r'$p$'},
561+
{'data': [(T_seq, m_seq_2_regime1 - p_seq_2_regime1, '不可预见的'),
562+
(T_seq, m_seq_1 - p_seq_1, '可预见的')], 'ylabel': r'$m - p$'},
563+
{'data': [(T_seq, m_seq_2_regime1, '不可预见的 (平滑的 $m_{T_1}$)'),
564+
(T_seq, m_seq_2_regime2, '不可预见的 ($m_{T_1}$ 跳变)'),
565+
(T_seq, m_seq_1, '可预见的')], 'ylabel': r'$m$'},
566+
{'data': [(T_seq, p_seq_2_regime1, '不可预见的 (平滑的 $m_{T_1}$)'),
567+
(T_seq, p_seq_2_regime2, '不可预见的 ($m_{T_1}$ 跳变)'),
568+
(T_seq, p_seq_1, '可预见的')], 'ylabel': r'$p$'}
558569
]
559570
560571
experiment_plot(plot_configs, ax)
@@ -600,5 +611,7 @@ plot_sequences(sequences, (r'$\mu$', r'$\pi$',
600611
## 续篇
601612
602613
另一篇讲座 {doc}`带有适应性预期的价格水平货币主义理论 <cagan_adaptive>` 描述了凯根模型的"适应性预期"版本。
614+
603615
这个版本的动态变得更加复杂,代数运算也更加繁琐。
616+
604617
如今,在中央银行家和为他们提供建议的经济学家中,该模型的"理性预期"版本更受欢迎。

lectures/cobweb.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ kernelspec:
4141
```{code-cell} ipython3
4242
import numpy as np
4343
import matplotlib.pyplot as plt
44+
45+
import matplotlib as mpl
46+
FONTPATH = "fonts/SourceHanSerifSC-SemiBold.otf"
47+
mpl.font_manager.fontManager.addfont(FONTPATH)
48+
plt.rcParams['font.family'] = ['Source Han Serif SC']
4449
```
4550

4651
## 历史
@@ -334,8 +339,8 @@ def ts_plot_price(model, # 市场模型
334339
ts_plot_price(m, 4, ts_length=15)
335340
```
336341

337-
我们看到一个循环已经形成,而且这个循环是持续的。
338-
(您可以通过绘制更长时间范围的图表来确认这一点。)
342+
我们看到一个循环已经形成,而且这个循环是持续的。(您可以通过绘制更长时间范围的图表来确认这一点。)
343+
339344
这个循环是"稳定的",意味着从大多数起始条件开始,价格都会收敛到这个循环。
340345
例如,
341346

@@ -347,9 +352,13 @@ ts_plot_price(m, 10, ts_length=15)
347352
## 适应性预期
348353

349354
朴素预期相当简单,也在我们发现的周期中起着重要的驱动作用。
355+
350356
如果预期以不同的方式形成会怎样?
357+
351358
接下来我们考虑适应性预期。
359+
352360
这指的是生产者对下一期价格的预期形成是基于他们上一次猜测和当前现货价格的加权平均。
361+
353362
也就是说,
354363

355364
```{math}

lectures/commod_price.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ import matplotlib.pyplot as plt
4949
from scipy.interpolate import interp1d
5050
from scipy.optimize import brentq
5151
from scipy.stats import beta
52+
53+
import matplotlib as mpl
54+
FONTPATH = "fonts/SourceHanSerifSC-SemiBold.otf"
55+
mpl.font_manager.fontManager.addfont(FONTPATH)
56+
plt.rcParams['font.family'] = ['Source Han Serif SC']
5257
```
5358

5459
## 数据

0 commit comments

Comments
 (0)