@@ -25,19 +25,19 @@ kernelspec:
25
25
在经济学中,许多变量依赖于它们的过去值。
26
26
27
27
例如,我们有理由相信去年的通货膨胀会影响今年的通货膨胀。
28
- (也许去年的高通胀会导致人们要求更高的工资作为补偿,这将导致今年的价格进一步上涨 。)
28
+ (比如去年的高通胀会导致人们要求更高的工资作为补偿,导致今年的价格进一步上涨 。)
29
29
30
- 让 $\pi_t$表示今年的通货膨胀率,$\pi_ {t-1}$表示去年的通货膨胀率,我们可以用一般形式将这种关系写成:
30
+ 用 $\pi_t$表示今年的通货膨胀率,$\pi_ {t-1}$表示去年的通货膨胀率,我们可以用一般形式将这种关系写成:
31
31
32
32
$$ \pi_t = f(\pi_{t-1}) $$
33
33
34
34
其中$f$是描述变量之间关系的某个函数。
35
35
36
- 这个方程是一维离散时间动态系统的一个例子 。
36
+ 这个方程是一维离散时间动力系统的典型例子 。
37
37
38
- 在本讲座中,我们将介绍一维离散时间动力学的基础知识 。
38
+ 在本讲中,我们将探讨一维离散时间动力学的基本原理 。
39
39
40
- (虽然大多数定量模型有两个或更多的状态变量,但一维设置是学习基础知识和理解关键概念的好地方 。)
40
+ (虽然实际经济模型通常包含两个或更多状态变量,但一维框架为我们理解基础理论和掌握核心概念提供了绝佳的起点 。)
41
41
42
42
让我们从一些标准导入开始:
43
43
@@ -47,44 +47,45 @@ import numpy as np
47
47
```
48
48
## 一些定义
49
49
50
- 本节阐述了我们关注的对象和研究的属性类型 。
50
+ 本节将介绍我们要研究的对象和关键概念 。
51
51
52
52
### 函数组合
53
53
54
- 对于本讲座,您应该了解以下内容 :
54
+ 首先,让我们回顾一下函数组合的概念 :
55
55
56
56
如果
57
57
58
- * $g$ 是从 $A$ 到 $B$ 的函数,且
59
-
60
- * $f$ 是从 $B$ 到 $C$ 的函数,
58
+ * $g$ 是从集合 $A$ 到集合 $B$ 的函数,且
59
+ * $f$ 是从集合 $B$ 到集合 $C$ 的函数
61
60
62
61
那么 $f$ 和 $g$ 的** 组合** $f \circ g$ 定义为
63
62
64
63
$$
65
64
(f \circ g)(x) = f(g(x))
66
65
$$
67
66
68
- 例如 ,如果
67
+ 举个简单的例子 ,如果
69
68
70
- * $A=B=C=\mathbb R$,即实数集,
69
+ * $A=B=C=\mathbb R$(实数集)
70
+ * $g(x)=x^2$ 且 $f(x)=\sqrt{x}$
71
71
72
- * $g(x)=x^2$ 且 $f(x)=\sqrt{x}$, 那么 $(f \circ g)(x) = \sqrt{x^2} = |x|$。
72
+ 那么 $(f \circ g)(x) = \sqrt{x^2} = |x|$
73
73
74
- 如果 $f$ 是从 $A$ 到其自身的函数 ,那么 $f^2$ 是 $f$ 与自身的组合。
74
+ 当函数映射到自身的集合时,我们可以定义函数的多次组合。 如果 $f$ 是从集合 $A$ 到自身的函数 ,那么 $f^2$ 表示 $f$ 与自身的组合。
75
75
76
- 例如,如果 $A = (0, \infty)$,即正数集, 且 $f(x) = \sqrt{x}$,那么
76
+ 例如,当 $A = (0, \infty)$(正实数集) 且 $f(x) = \sqrt{x}$ 时,我们有
77
77
78
78
$$
79
79
f^2(x) = \sqrt{\sqrt{x}} = x^{1/4}
80
80
$$
81
81
82
- 同样,如果 $n$ 是正整数,那么 $f^n$ 是 $f$ 与自身的 $n$ 次组合。
82
+ 更一般地,对于任意正整数 $n$, $f^n$ 表示 $f$ 与自身的 $n$ 次组合。
83
83
84
84
在上面的例子中,$f^n(x) = x^{1/(2^n)}$。
85
85
86
86
### 动态系统
87
- ** (离散时间)动态系统** 是一个集合 $S$ 和一个将集合 $S$ 映射回自身的函数 $g$。
87
+
88
+ ** (离散时间)动态系统** 由一个集合 $S$ 和一个将 $S$ 映射到自身的函数 $g$ 组成。
88
89
89
90
动态系统的例子包括:
90
91
94
95
95
96
* $S = \mathbb Z$(整数集)且 $g(x) = 2 x$
96
97
97
- 另一方面, 如果 $S = (-1, 1)$ 且 $g(x) = x+1$,那么 $S$ 和 $g$ 不构成动态系统,因为 $g(1) = 2$。
98
+ 如果 $S = (-1, 1)$ 且 $g(x) = x+1$,那么 $S$ 和 $g$ 不构成动态系统,因为 $g(1) = 2$。
98
99
99
- * $g$ 并不总是将 $S$ 中的点映射回 $S$。
100
+ * 即 $g$ 并不总是将 $S$ 中的点映射回 $S$。
100
101
101
- 我们关心动态系统是因为我们可以用它们来研究动态!
102
+ 研究动态系统的重要性在于它们能帮助我们理解和分析动态过程的基本特性。
102
103
103
104
给定由集合 $S$ 和函数 $g$ 组成的动态系统,我们可以通过设定
104
105
110
111
x_0 \text{给定}
111
112
```
112
113
113
- 来创建 $S$ 中点的序列 $\{ x_t\} $。
114
+ 来创建由 $S$ 中点组成的序列 $\{ x_t\} $。
114
115
115
116
这意味着我们选择 $S$ 中的某个数 $x_0$,然后取
116
117
124
125
125
126
这个序列 $\{ x_t\} $ 被称为 $x_0$ 在 $g$ 下的** 轨迹** 。
126
127
127
- 在这种情况下 ,$S$ 被称为** 状态空间** ,$x_t$ 被称为** 状态变量** 。
128
+ 在这个理论框架下 ,$S$ 被称为** 状态空间** ,$x_t$ 被称为** 状态变量** 。
128
129
129
130
回想一下 $g^n$ 是 $g$ 与自身的 $n$ 次组合,
130
131
我们可以更简单地将轨迹写为
132
+
131
133
$$
132
134
x_t = g^t(x_0) \quad \text{对于} t = 0, 1, 2, \ldots
133
135
$$
136
138
137
139
方程 {eq}` sdsod ` 有时被称为** 一阶差分方程**
138
140
139
- * 一阶意味着只依赖于一个滞后(即,像 $x_ {t-1}$ 这样的早期状态不会出现在 {eq}` sdsod ` 中)。
141
+ * 一阶意味着只依赖于一个滞后(即,像 $x_ {t-1}$ 这样的更早期的状态不会出现在 {eq}` sdsod ` 中)。
140
142
141
143
### 示例:线性模型
142
144
143
- 动态系统的一个简单例子是当 $S=\mathbb R$ 且 $g(x)=ax + b$ 时,其中 $a, b$ 是常数(有时称为"参数")。
145
+ 动态系统的一个典型例子是状态空间 $S=\mathbb R$ 与映射函数 $g(x)=ax + b$ ,其中 $a, b$ 是常数(有时称为"参数")。
146
+
147
+ 由此可得** 线性差分方程**
144
148
145
- 这导致了** 线性差分方程**
146
149
$$
147
150
x_{t+1} = a x_t + b
148
151
\quad \text{其中}
149
152
x_0 \text{已给定}。
150
153
$$
151
- $x_0$ 的轨迹是
154
+
155
+ 其中$x_0$ 的轨迹是
152
156
153
157
``` {math}
154
158
:label: sdslinmodpath
@@ -164,32 +168,31 @@ a^2 x_0 + a b + b, \quad \text{等等}
164
168
:label: sdslinmod
165
169
166
170
x_t = a^t x_0 + b \frac{1 - a^t}{1 - a}
167
-
168
171
```
169
172
170
- 我们得到了所有非负整数 $t$ 的 $x_t$ 的精确表达式,从而完全理解了其动态 。
173
+ 我们可以对任意非负整数 $t$ 求出 $x_t$ 的精确表达式,这让我们能够完全理解系统的动态特性 。
171
174
172
- 特别注意,如果 $|a| < 1$,那么根据上式,我们有
175
+ 值得注意的是,当 $|a| < 1$ 时,根据上面的公式,我们得到
173
176
174
177
``` {math}
175
178
:label: sdslinmodc
176
179
177
180
x_t \to \frac{b}{1 - a} \text{ 当 } t \to \infty
178
181
```
179
182
180
- 无论 $x_0$ 为何值。
183
+ 无论起点 $x_0$ 为何值。
181
184
182
- 这是所谓全局稳定性的一个例子 ,我们将在后面再次讨论这个话题。
185
+ 这是被称为全局稳定性的一个例子 ,我们将在后面再次讨论这个话题。
183
186
184
187
### 示例:非线性模型
185
188
186
- 在上面的线性例子中,我们得到了 $x_t$ 关于任意非负整数 $t$ 和 $x_0$ 的精确解析表达式 。
189
+ 在上面的线性例子中,我们得到了 $x_t$ 关于任意非负整数 $t$ 和 $x_0$ 的精确解析式 。
187
190
188
- 这使得动态分析变得非常容易 。
191
+ 这使得动力学分析变得轻而易举 。
189
192
190
193
然而,当模型是非线性时,情况可能会大不相同。
191
194
192
- 例如,在后面的索洛讲座中,我们将研究索洛-斯旺增长模型,其动态为
195
+ 以索洛-斯旺增长模型为例(后续章节将深入分析),其动态规律由以下方程给出
193
196
194
197
``` {math}
195
198
:label: solow_lom2
@@ -198,19 +201,18 @@ k_{t+1} = s A k_t^{\alpha} + (1 - \delta) k_t
198
201
199
202
```
200
203
201
- 这里 $k=K/L$ 是人均资本存量 ,$s$ 是储蓄率 ,$A$ 是全要素生产率 ,$\alpha$ 是资本份额 ,$\delta$ 是折旧率 。
204
+ 这里 $k=K/L$ 表示人均资本存量 ,$s$ 为储蓄率 ,$A$ 表示全要素生产率 ,$\alpha$ 为资本份额 ,$\delta$ 为折旧率 。
202
205
203
206
所有这些参数都是正数,且 $0 < \alpha, \delta < 1$。
204
207
205
- 如果你尝试像我们在线性模型中那样迭代 ,你会发现代数运算很快就变得复杂。
208
+ 如果你尝试像我们在线性模型中做的那样迭代 ,你会发现代数运算很快就变得复杂。
206
209
207
210
分析这个模型的动态需要一种不同的方法(见下文)。
208
211
209
212
## 稳定性
210
213
211
- 考虑一个动态系统,由集合 $S \subset \mathbb R$ 和将 $S$ 映射到 $S$ 的函数 $g$ 组成。
214
+ 考虑这样一个动态系统,其由集合 $S \subset \mathbb R$ 和将 $S$ 映射到 $S$ 的函数 $g$ 组成。
212
215
213
- (scalar-dynam: steady-state )=
214
216
### 稳态
215
217
216
218
该系统的** 稳态** 是 $S$ 中的一个点 $x^* $,满足 $x^* = g(x^* )$。
@@ -225,7 +227,6 @@ k_{t+1} = s A k_t^{\alpha} + (1 - \delta) k_t
225
227
226
228
* 如果 $a = 1$ 且 $b \not= 0$,那么这个线性模型在 $\mathbb R$ 中没有稳态。
227
229
228
- (scalar-dynam: global-stability )=
229
230
### 全局稳定性
230
231
231
232
如果对于所有的 $x_0 \in S$,都有
242
243
243
244
* 否则不是全局稳定的。
244
245
245
- 这直接从方程 {eq}` sdslinmod ` 得出。
246
+ 以上可以直接从方程 {eq}` sdslinmod ` 得出。
246
247
247
248
### 局部稳定性
248
249
276
277
277
278
没有一种单一的方法可以处理所有的非线性模型。
278
279
279
- 然而,对于一维模型,有一种技术可以提供大量的直观理解 。
280
+ 然而,对于一维模型,有一种技巧可以提供大量的直观理解 。
280
281
281
282
这是一种基于** 45度图** 的图形方法。
282
283
283
284
让我们看一个例子:索洛-斯旺模型,其动态由{eq}` solow_lom2 ` 给出。
284
285
285
286
我们首先从一些绘图代码开始,你可以在第一次阅读时忽略这些代码。
286
287
287
- 这段代码的功能是生成45度图和时间序列图 。
288
+ 这段代码的功能是生成45度图和时序图 。
288
289
289
290
``` {code-cell} ipython
290
291
---
@@ -384,17 +385,17 @@ def g(k, A = 2, s = 0.3, alpha = 0.3, delta = 0.4):
384
385
return A * s * k**alpha + (1 - delta) * k
385
386
```
386
387
387
- 这里是一个45度图 。
388
+ 以下是一个45度图 。
388
389
389
390
``` {code-cell} ipython
390
391
xmin, xmax = 0, 4 # 适合的绘图区域
391
392
392
393
plot45(g, xmin, xmax, 0, num_arrows=0)
393
394
```
394
395
395
- 图表显示了函数 $g$ 和45度线。
396
+ 这张图显示了函数 $g$ 和45度线。
396
397
397
- 将 $k_t$ 视为横轴上的一个值。
398
+ 可以将 $k_t$ 视为横轴上的一个值。
398
399
399
400
要计算 $k_ {t+1}$,我们可以使用 $g$ 的图像来查看其在纵轴上的值。
400
401
@@ -412,7 +413,7 @@ plot45(g, xmin, xmax, 0, num_arrows=0)
412
413
413
414
* 唯一的正数,使得 $k = s z k^{\alpha} + (1 - \delta) k$。
414
415
415
- 通过一些代数运算,我们可以证明在第二种情况下,稳态是
416
+ 通过一些代数运算,我们可以证明在第二种情况下,其稳态是
416
417
417
418
$$
418
419
k^* = \left( \frac{sz}{\delta} \right)^{1/(1-\alpha)}
@@ -432,13 +433,13 @@ k0 = 0.25
432
433
plot45(g, xmin, xmax, k0, num_arrows=5, var='k')
433
434
```
434
435
435
- 我们可以按照上图所示,绘制人均资本随时间变化的时间序列图 ,具体如下:
436
+ 我们可以按照上图所示,绘制人均资本随时间变化的时序图 ,具体如下:
436
437
437
438
``` {code-cell} ipython
438
439
ts_plot(g, xmin, xmax, k0, var='k')
439
440
```
440
441
441
- 这里是一个稍长一些的视角 :
442
+ 这里是一个稍长期一些的视角 :
442
443
443
444
``` {code-cell} ipython
444
445
ts_plot(g, xmin, xmax, k0, ts_length=20, var='k')
@@ -460,9 +461,10 @@ ts_plot(g, xmin, xmax, k0, var='k')
460
461
461
462
### 复杂动态
462
463
463
- 索洛-斯旺模型是非线性的,但仍然产生非常规律的动态。
464
+ 尽管索洛-斯旺模型是非线性的,它仍然能生成非常规律的动态。
465
+
466
+ ** 二次映射** 是一个能生成不规则动态的模型
464
467
465
- 一个能产生不规则动态的模型是** 二次映射**
466
468
$$
467
469
g(x) = 4 x (1 - x),
468
470
\qquad x \in [0, 1]
@@ -478,14 +480,16 @@ g = lambda x: 4 * x * (1 - x)
478
480
x0 = 0.3
479
481
plot45(g, xmin, xmax, x0, num_arrows=0)
480
482
```
481
- 现在让我们来看一个典型的轨迹。
483
+
484
+ 现在让我们来看一个特定的轨迹。
482
485
483
486
``` {code-cell} ipython
484
487
plot45(g, xmin, xmax, x0, num_arrows=6)
485
488
```
486
- 注意它是多么不规则。
487
489
488
- 这是相应的时间序列图。
490
+ 注意这个轨迹的不规则性。这种混沌行为是二次映射的典型特征。
491
+
492
+ 这是相应的时序图。
489
493
490
494
``` {code-cell} ipython
491
495
ts_plot(g, xmin, xmax, x0, ts_length=6)
@@ -503,15 +507,15 @@ ts_plot(g, xmin, xmax, x0, ts_length=20)
503
507
504
508
再次考虑线性模型 $x_{t+1} = a x_t + b$,其中 $a \not=1$。
505
509
506
- 唯一的稳态为 $b / (1 - a)$。
510
+ 其唯一的稳态为 $b / (1 - a)$。
507
511
508
512
当 $|a| < 1$ 时,该稳态是全局稳定的。
509
513
510
- 尝试通过观察一系列初始条件来图形化地说明这一点 。
514
+ 请通过选择不同的初始条件并绘制相应的图像来验证这一性质 。
511
515
512
516
在 $a \in (-1, 0)$ 和 $a \in (0, 1)$ 的情况下,你注意到了什么区别?
513
517
514
- 使用 $a=0.5$ 然后使用 $a=-0.5$ 并研究轨迹 。
518
+ 使用 $a=0.5$ 和 $a=-0.5$ 并分别研究轨迹 。
515
519
516
520
在整个过程中设置 $b=1$。
517
521
@@ -522,6 +526,7 @@ ts_plot(g, xmin, xmax, x0, ts_length=20)
522
526
```
523
527
524
528
我们将从 $a=0.5$ 的情况开始。
529
+
525
530
让我们设置模型和绘图区域:
526
531
527
532
``` {code-cell} ipython
@@ -545,7 +550,7 @@ ts_plot(g, xmin, xmax, x0, ts_length=10)
545
550
546
551
现在让我们尝试 $a=-0.5$ 并观察有什么不同。
547
552
548
- 让我们设置模型和绘图区域 :
553
+ 我们设置模型和绘图区域为 :
549
554
550
555
``` {code-cell} ipython
551
556
a, b = -0.5, 1
@@ -559,17 +564,18 @@ g = lambda x: a * x + b
559
564
x0 = -0.5
560
565
plot45(g, xmin, xmax, x0, num_arrows=5)
561
566
```
562
- 这是相应的时间序列,它收敛于稳态。
567
+
568
+ 以上是相应的时间序列,它收敛于稳态。
563
569
564
570
``` {code-cell} ipython
565
571
ts_plot(g, xmin, xmax, x0, ts_length=10)
566
572
```
567
573
568
- 我们再次观察到收敛于稳态的情况,但收敛的性质有所不同 。
574
+ 我们同样观察到序列收敛到稳态,但收敛方式明显不同 。
569
575
570
- 特别是,时间序列在稳态上方和下方来回跳跃 。
576
+ 这次时间序列不是单调收敛,而是在稳态值的上下来回波动,逐渐接近稳态 。
571
577
572
- 在当前的语境中,这个序列被称为呈现 ** 阻尼振荡** 。
578
+ 这种在接近稳态过程中振幅逐渐减小的波动模式,在动力系统中被称为 ** 阻尼振荡** 。
573
579
574
580
``` {solution-end}
575
581
```
0 commit comments