Skip to content

Commit f673967

Browse files
authored
Merge pull request #45 from QuantEcon/linear-alg
[linear_algebra] Update Translations
2 parents 41ecb23 + f9dafe1 commit f673967

File tree

1 file changed

+68
-66
lines changed

1 file changed

+68
-66
lines changed

lectures/linear_algebra.md

Lines changed: 68 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -46,31 +46,30 @@ $$
4646
:label: la_se
4747
4848
\begin{aligned}
49-
50-
y_1 = a_{11} x_1 + a_{12} x_2 + \cdots + a_{1k} x_k \\
49+
y_1 = a_{11} x_1 + a_{12} x_2 + \cdots + a_{1k} x_k \\
5150
\vdots \\
5251
y_n = a_{n1} x_1 + a_{n2} x_2 + \cdots + a_{nk} x_k
5352
\end{aligned}
5453
```
5554

5655
这里的目标是在已知 $a_{11}, \ldots, a_{nk}$ 和 $y_1, \ldots, y_n$ 的情况下,求解"未知数" $x_1, \ldots, x_k$。
5756

58-
在考虑这类问题时,我们首先必须考虑以下至少一些问题:
57+
在研究这类问题时,我们需要考虑以下几个基本问题:
5958

60-
* 解是否真的存在?
61-
* 是否实际上存在多个解,如果是,我们应该如何解释它们?
62-
* 如果不存在解,是否存在最佳的"近似"解?
63-
* 如果解存在,我们应该如何计算它?
59+
* 这个方程组是否有解?
60+
* 如果有解,解是唯一的吗?如果有多个解,这意味着什么?
61+
* 如果没有精确解,是否可以找到一个最优的近似解?
62+
* 如果解存在,有什么有效的方法可以求出它?
6463

6564
这些都是线性代数所要解决的问题。
6665

67-
在本讲中,我们将介绍线性和矩阵代数的基础知识,包括理论和计算两个方面
66+
本讲将介绍线性代数和矩阵运算的基础知识
6867

69-
我们承认这与[这篇讲座](https://python-programming.quantecon.org/numpy.html)有一些重叠,那里首次解释了NumPy数组的操作
68+
我们将同时关注理论基础和实际计算
7069

71-
请注意,这节课比大多数课程更偏重理论,包含了我们在后续应用中将会用到的背景知识
70+
虽然本讲与我们在[之前的讲座](https://python-programming.quantecon.org/numpy.html)中已经介绍过NumPy数组的基本操作有所重合,但这里我们将从更理论的角度来探讨线性代数
7271

73-
让我们先从一些导入语句开始:
72+
这些理论知识将为我们后续的应用打下重要基础。
7473

7574
```{code-cell} ipython
7675
import matplotlib.pyplot as plt
@@ -95,19 +94,19 @@ from scipy.linalg import inv, solve, det, eig
9594

9695
我们可以根据需要将这些序列横向或纵向书写。
9796

98-
稍后,当我们需要执行某些矩阵运算时,区分这两种写法将变得必要
97+
在后面讨论矩阵运算时,区分横向和纵向表示将变得很重要
9998

100-
所有$n$维向量的集合用$\mathbb R^n$表示
99+
我们用$\mathbb R^n$表示所有$n$维向量的集合
101100

102-
例如,$\mathbb R^2$是平面,而$\mathbb R^2$中的向量就是平面上的一个点
101+
$\mathbb R^2$为例,它代表二维平面,其中的每个向量都对应平面上的一个点
103102

104-
传统上,向量在视觉上被表示为从原点指向某点的箭头
103+
在几何上,我们通常将向量画成一个从原点出发的箭头
105104

106-
下图以这种方式表示了三个向量
105+
让我们看看下面这个例子,其中画出了三个不同的向量:
107106

108107
```{code-cell} ipython
109108
fig, ax = plt.subplots(figsize=(10, 8))
110-
# Set the axes through the origin
109+
# 设置通过原点的轴
111110
for spine in ['left', 'bottom']:
112111
ax.spines[spine].set_position('zero')
113112
for spine in ['right', 'top']:
@@ -306,26 +305,26 @@ ax.plot(z, x, y, 'k-', lw=2, alpha=0.5)
306305
ax.plot(y, z, x, 'k-', lw=2, alpha=0.5)
307306
308307
309-
# Fixed linear function, to generate a plane
308+
# 固定线性函数,生成平面
310309
def f(x, y):
311310
return α * x + β * y
312311
313-
# Vector locations, by coordinate
312+
# 向量位置,按坐标
314313
x_coords = np.array((3, 3))
315314
y_coords = np.array((4, -4))
316315
z = f(x_coords, y_coords)
317316
for i in (0, 1):
318317
ax.text(x_coords[i], y_coords[i], z[i], f'$a_{i+1}$', fontsize=14)
319318
320-
# Lines to vectors
319+
# 连接向量的线
321320
for i in (0, 1):
322321
x = (0, x_coords[i])
323322
y = (0, y_coords[i])
324323
z = (0, f(x_coords[i], y_coords[i]))
325324
ax.plot(x, y, z, 'b-', lw=1.5, alpha=0.6)
326325
327326
328-
# Draw the plane
327+
# 绘制平面
329328
grid_size = 20
330329
xr2 = np.linspace(x_min, x_max, grid_size)
331330
yr2 = np.linspace(y_min, y_max, grid_size)
@@ -338,7 +337,7 @@ plt.show()
338337

339338
#### 示例
340339

341-
如果 $A$ 只包含一个向量 $a_1 \in \mathbb R ^2$,那么它的张成只是 $a_1$ 的标量倍数,即通过 $a_1$ 和原点的唯一直线。
340+
如果 $A$ 只包含一个向量 $a_1 \in \mathbb R ^2$,那么它的张成空间只是 $a_1$ 的标量倍数,即通过 $a_1$ 和原点的唯一直线。
342341

343342
如果 $A = \{e_1, e_2, e_3\}$ 由 $\mathbb R ^3$ 的*标准基向量*组成,即
344343

@@ -365,7 +364,7 @@ e_3 :=
365364
\end{bmatrix}
366365
$$
367366

368-
那么 $A$ 的张成就是整个 $\mathbb R ^3$,因为对于任意的 $x = (x_1, x_2, x_3) \in \mathbb R ^3$,我们可以写成
367+
那么 $A$ 的张成就是整个 $\mathbb R^3$,因为对于任意的 $x = (x_1, x_2, x_3) \in \mathbb R^3$,我们可以写成
369368

370369
$$
371370
x = x_1 e_1 + x_2 e_2 + x_3 e_3
@@ -383,54 +382,61 @@ $$
383382
```{index} single: Vectors; Linear Independence
384383
```
385384

386-
正如我们将看到的,找到具有相对较大张成空间的向量族通常是很有必要的,这样许多向量就可以通过对少数向量进行线性运算来描述
385+
在实际应用中,我们经常需要找到一组能够张成较大空间的向量。这样做的好处是,我们可以用这少数几个向量的线性组合来表示更多的向量
387386

388-
对于一组向量要具有较大的张成空间,我们需要的条件就是所谓的线性无关
387+
要使一组向量能张成较大的空间,这组向量需要满足一个重要条件 -- 线性无关
389388

390389
具体来说,在$\mathbb R ^n$中的一组向量$A := \{a_1, \ldots, a_k\}$被称为
391390

392-
* *线性相关的*如果$A$的某个真子集与$A$具有相同的张成空间
393-
* *线性无关的*如果它不是线性相关的
391+
* *线性相关的*如果集合中至少有一个向量可以表示为其他向量的线性组合
392+
* *线性无关的*如果集合中任何一个向量都不能表示为其他向量的线性组合
394393

395-
换句话说,如果没有向量对张成空间是多余的,那么这组向量就是线性无关的,否则就是线性相关的
394+
这个概念可以通过一个简单的例子来理解
396395

397-
为了说明这个概念,回想{ref}`图示<la_3dvec>`展示了$\mathbb R ^3$中向量$\{a_1, a_2\}$的张成空间是一个经过原点的平面
396+
让我们回到{ref}`图示<la_3dvec>`中的例子,其中$\mathbb R ^3$中的两个向量$\{a_1, a_2\}$张成了一个经过原点的平面
398397

399-
如果我们再取第三个向量$a_3$并形成集合$\{a_1, a_2, a_3\}$,这个集合将会是
398+
如果我们添加第三个向量$a_3$,那么新的集合$\{a_1, a_2, a_3\}$的性质将取决于$a_3$的位置:
400399

401-
* 如果$a_3$位于该平面内,则线性相关
402-
* 否则线性无关
400+
* 如果$a_3$落在$a_1$和$a_2$张成的平面上,那么$a_3$可以表示为$a_1$和$a_2$的线性组合,因此这三个向量是线性相关的
401+
* 如果$a_3$不在该平面上,那么它不能表示为$a_1$和$a_2$的线性组合,因此这三个向量是线性无关的
403402

404-
作为这个概念的另一个说明,由于$\mathbb R ^n$可以由$n$个向量张成(参见上文关于标准基向量的讨论),在$\mathbb R ^n$中任何包含$m > n$个向量的集合必定线性相关
403+
一个重要的性质是:在$\mathbb R ^n$中,任何超过$n$个向量的集合必定是线性相关的。这是因为$\mathbb R ^n$最多需要$n$个向量就能完全张成(就像我们之前看到的标准基向量那样)
405404

406-
以下陈述等价于$A := \{a_1, \ldots, a_k\} \subset \mathbb R ^n$的线性独立性
405+
数学上,向量集合$A := \{a_1, \ldots, a_k\} \subset \mathbb R ^n$的线性无关性可以用以下两种等价方式来表述
407406

408-
1. $A$中的任何向量都不能由其他元素的线性组合表示
409-
1. 如果对于标量$\beta_1, \ldots, \beta_k$,有$\beta_1 a_1 + \cdots \beta_k a_k = 0$,那么$\beta_1 = \cdots = \beta_k = 0$
407+
1. 集合中的任何向量都不能写成其他向量的线性组合
408+
2. 当且仅当所有系数$\beta_1, \ldots, \beta_k$都为零时,线性组合$\beta_1 a_1 + \cdots + \beta_k a_k$等于零向量
410409

411-
第一个表达式中的零是$\mathbb R ^n$的原点
410+
这里的零向量指的是$\mathbb R ^n$中所有分量都是0的向量
412411

413412
(la_unique_reps)=
414413
### 唯一表示
415414

416-
关于线性独立向量集合的另一个优点是,其张成空间中的每个元素都可以唯一地表示为这些向量的线性组合
415+
线性独立向量集合的一个重要性质是唯一表示性:其张成空间中的每个向量都可以用唯一的一组系数来表示
417416

418-
换句话说,如果$A := \{a_1, \ldots, a_k\} \subset \mathbb R ^n$是线性独立的,
417+
具体来说,假设$A := \{a_1, \ldots, a_k\} \subset \mathbb R ^n$是线性独立的,且向量$y$可以表示为:
419418

420419
$$
421-
y = \beta_1 a_1 + \cdots \beta_k a_k
420+
y = \beta_1 a_1 + \cdots + \beta_k a_k
422421
$$
423422

424-
那么其他任何系数序列 $\gamma_1, \ldots, \gamma_k$ 都不会产生相同的向量 $y$
423+
那么这组系数$\beta_1, \ldots, \beta_k$是唯一的
425424

426-
事实上,如果我们也有 $y = \gamma_1 a_1 + \cdots \gamma_k a_k$,
427-
那么
425+
也就是说,不存在另一组不同的系数$\gamma_1, \ldots, \gamma_k$使得:
426+
427+
$$
428+
y = \gamma_1 a_1 + \cdots + \gamma_k a_k
429+
$$
430+
431+
这一点可以通过反证法证明。如果存在这样两组不同的系数,那么:
428432

429433
$$
430434
(\beta_1 - \gamma_1) a_1 + \cdots + (\beta_k - \gamma_k) a_k = 0
431435
$$
432436

433-
线性独立性现在意味着对所有 $i$ 都有 $\gamma_i = \beta_i$。
437+
由线性独立性可知,这种情况只可能在$\beta_i = \gamma_i$ $(i=1,\ldots,k)$时发生。
438+
439+
这与我们假设两组系数不同相矛盾。
434440

435441
## 矩阵
436442

@@ -482,7 +488,6 @@ $$
482488
\gamma A =
483489
\gamma
484490
\begin{bmatrix}
485-
486491
a_{11} & \cdots & a_{1k} \\
487492
\vdots & \vdots & \vdots \\
488493
a_{n1} & \cdots & a_{nk}
@@ -525,8 +530,6 @@ $$
525530

526531
如果$A$和$B$是两个矩阵,那么它们的乘积$A B$的第$i,j$个元素是由$A$的第$i$行与$B$的第$j$列的内积得到的。
527532

528-
有许多教程可以帮助你理解这个运算,比如[这个](https://www.mathsisfun.com/algebra/matrix-multiplying.html),或者[维基百科页面](https://en.wikipedia.org/wiki/Matrix_multiplication)上的讨论。
529-
530533
如果$A$是$n \times k$矩阵,$B$是$j \times m$矩阵,那么要使$A$和$B$可以相乘,我们需要$k = j$,且得到的矩阵$A B$是$n \times m$的。
531534

532535
作为可能最重要的特例,考虑将$n \times k$矩阵$A$与$k \times 1$列向量$x$相乘。
@@ -541,7 +544,6 @@ A x =
541544
a_{11} & \cdots & a_{1k} \\
542545
\vdots & \vdots & \vdots \\
543546
a_{n1} & \cdots & a_{nk}
544-
545547
\end{bmatrix}
546548
\begin{bmatrix}
547549
x_{1} \\
@@ -556,7 +558,7 @@ A x =
556558
```
557559

558560
```{note}
559-
$A B$ 和 $B A$ 通常不是同一个东西
561+
矩阵乘法不满足交换律,也就是说,$A B$ 和 $B A$ 的结果通常是不同的
560562
```
561563

562564
另一个重要的特殊情况是单位矩阵。
@@ -597,7 +599,7 @@ A.shape
597599

598600
有许多便捷的函数可用于创建常见矩阵(零矩阵、全1矩阵等)--- 参见[这里](https://python-programming.quantecon.org/numpy.html#creating-arrays)
599601

600-
由于运算默认按元素执行,标量乘法和加法具有非常自然的语法
602+
由于运算默认按元素执行,标量乘法和加法的语法具有非常自然
601603

602604
```{code-cell} ipython3
603605
A = np.identity(3)
@@ -635,7 +637,7 @@ $$
635637

636638
你可以验证,当$b$为零向量时,函数$f(x) = A x + b$满足这个性质,而当$b$非零时则不满足。
637639

638-
事实上,已[](https://en.wikipedia.org/wiki/Linear_map#Matrices)$f$是线性的,当且*仅当*存在矩阵$A$使得对所有的$x$都有$f(x) = Ax$。
640+
事实上我们知道,$f$是线性的当且仅当存在矩阵$A$使得对所有的$x$都有$f(x) = Ax$。
639641

640642
## 求解方程组
641643

@@ -689,7 +691,7 @@ for ax in axes:
689691
690692
ax.plot(x, y, 'k-', lw=2, label='$f$')
691693
ax.fill_between(x, ya, yb, facecolor='blue', alpha=0.05)
692-
ax.vlines([0], ya, yb, lw=3, color='blue', label='range of $f$')
694+
ax.vlines([0], ya, yb, lw=3, color='blue', label='$f$的值域')
693695
ax.text(0.04, -0.3, '$0$', fontsize=16)
694696
695697
ax = axes[0]
@@ -777,7 +779,7 @@ $$
777779
```{index} single: Matrix; Determinants
778780
```
779781

780-
关于方阵的另一个简短说明是,每个这样的矩阵都有一个唯一的数,称为矩阵的*行列式*——你可以在[这里](https://en.wikipedia.org/wiki/Determinant)找到它的表达式
782+
每个方阵都有一个与之唯一对应的数值,这个数值被称为矩阵的*行列式*。行列式的具体计算方法可以在[这里](https://baike.baidu.com/item/%E8%A1%8C%E5%88%97%E5%BC%8F/2010180)找到
781783

782784
如果矩阵$A$的行列式不为零,我们就说$A$是*非奇异的*
783785

@@ -875,11 +877,14 @@ A @ x # 应该等于y
875877
solve(A, y) # 产生相同的解
876878
```
877879

878-
观察我们如何通过`inv(A) @ y`或使用`solve(A, y)`来求解$x = A^{-1} y$。
880+
我们可以通过两种方式求解线性方程$x = A^{-1}y$:
879881

880-
后一种方法使用不同的算法(LU分解),在数值上更稳定,因此几乎总是应该优先选择。
882+
1. 使用`inv(A) @ y`显式计算逆矩阵
883+
2. 使用`solve(A, y)`直接求解方程
881884

882-
要获得最小二乘解$\hat x = (A'A)^{-1}A'y$,使用`scipy.linalg.lstsq(A, y)`
885+
第二种方法基于LU分解,数值稳定性更好,是更推荐的方法。
886+
887+
如果需要求解最小二乘问题$\hat x = (A'A)^{-1}A'y$,可以使用`scipy.linalg.lstsq(A, y)`
883888

884889
(la_eigen)=
885890
## {index}`特征值 <single: Eigenvalues>`和{index}`特征向量 <single: Eigenvectors>`
@@ -900,11 +905,11 @@ $$
900905

901906
则我们称$\lambda$是$A$的*特征值*,而$v$是*特征向量*
902907

903-
因此,$A$的特征向量是指当应用映射$f(x) = Ax$时,$v$仅仅被缩放的向量
908+
换句话说,特征向量是那些经过线性变换$f(x) = Ax$后,方向保持不变、只是长度发生变化的向量
904909

905-
下图显示了两个特征向量(蓝色箭头)及其在$A$下的像(红色箭头)
910+
下图中,蓝色箭头表示两个特征向量,红色箭头表示它们经过变换后的结果
906911

907-
正如预期的那样,每个向量 $v$ 的像 $Av$ 只是原向量的缩放版本
912+
可以看到,每个特征向量$v$经过变换后得到的$Av$都与原向量指向相同的方向,只是长度改变了
908913

909914
```{code-cell} ipython3
910915
---
@@ -917,6 +922,7 @@ evals, evecs = eig(A)
917922
evecs = evecs[:, 0], evecs[:, 1]
918923
919924
fig, ax = plt.subplots(figsize=(10, 8))
925+
920926
# 设置通过原点的坐标轴
921927
for spine in ['left', 'bottom']:
922928
ax.spines[spine].set_position('zero')
@@ -969,7 +975,6 @@ plt.show()
969975
1. $A$ 的行列式等于所有特征值的乘积。
970976
1. $A$ 的迹(主对角线上元素的和)等于所有特征值的和。
971977
1. 如果 $A$ 是对称矩阵,那么它的所有特征值都是实数。
972-
973978
1. 如果$A$是可逆的,且$\lambda_1, \ldots, \lambda_n$是它的特征值,那么$A^{-1}$的特征值是$1/\lambda_1, \ldots, 1/\lambda_n$。
974979

975980
第一个陈述的一个推论是:矩阵可逆当且仅当它的所有特征值都不为零。
@@ -1005,9 +1010,9 @@ $$
10051010

10061011
当然,如果 $B$ 是方阵且可逆,我们可以将广义特征值问题转化为普通特征值问题 $B^{-1} A v = \lambda v$,但情况并非总是如此。
10071012

1008-
## 进阶主题
1013+
## 进阶概念
10091014

1010-
我们通过简要介绍几个其他重要主题来结束讨论
1015+
我们通过简要介绍几个其他重要概念来结束讨论
10111016

10121017
### 级数展开
10131018

@@ -1310,10 +1315,7 @@ $$
13101315
\begin{aligned}
13111316
v(x) &= - x'A'PAx - 2u'B'PAx - u'(Q + B'PB) u\\
13121317
&= - x'A'PAx + x'A'PB(Q + B'PB)^{-1}B'PAx \\
1313-
1314-
$$
1315-
\begin{aligned}
1316-
&= -x'[A'PA - A'PB(Q + B'PB)^{-1}B'PA] x
1318+
&= -x'[A'PA - A'PB(Q + B'PB)^{-1}B'PA] x
13171319
\end{aligned}
13181320
$$
13191321

0 commit comments

Comments
 (0)