Skip to content

Commit 39afd43

Browse files
mmckyclaude
andauthored
[action-translation] resync: linear_algebra.md (#126)
* 🔄 resync linear_algebra.md * Restore trailing newline (engine issue tracked in QuantEcon/action-translation#116) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent 2c46b27 commit 39afd43

2 files changed

Lines changed: 80 additions & 40 deletions

File tree

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
source-sha: a1cd90c5ef6d6f05277318f47fe21eda60fa5e6b
2+
synced-at: "2026-07-18"
3+
model: claude-sonnet-5
4+
mode: RESYNC
5+
section-count: 7
6+
tool-version: 0.17.0

lectures/linear_algebra.md

Lines changed: 74 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,39 @@ kernelspec:
77
display_name: Python 3
88
language: python
99
name: python3
10+
translation:
11+
title: 线性代数
12+
headings:
13+
Overview: 概述
14+
Vectors: 向量
15+
Vectors::Vector Operations: 向量运算
16+
Vectors::Inner Product and Norm: 内积和范数
17+
Vectors::Span: 张成空间
18+
Vectors::Span::Examples: 示例
19+
Vectors::Linear Independence: 线性无关
20+
Vectors::Unique Representations: 唯一表示
21+
Matrices: 矩阵
22+
Matrices::Matrix Operations: 矩阵运算
23+
Matrices::Matrices in NumPy: NumPy中的矩阵
24+
Matrices::Matrices as Maps: 矩阵作为映射
25+
Solving Systems of Equations: 求解方程组
26+
Solving Systems of Equations::The Square Matrix Case: 方阵的情况
27+
Solving Systems of Equations::The Square Matrix Case::Inverse Matrices: 逆矩阵
28+
Solving Systems of Equations::The Square Matrix Case::Determinants: 行列式
29+
Solving Systems of Equations::More Rows than Columns: 行数多于列数
30+
Solving Systems of Equations::More Columns than Rows: 列数多于行数
31+
Solving Systems of Equations::Linear Equations with SciPy: 使用SciPy求解线性方程
32+
Eigenvalues and Eigenvectors: 特征值和特征向量
33+
Eigenvalues and Eigenvectors::Generalized Eigenvalues: 广义特征值
34+
Further Topics: 进阶概念
35+
Further Topics::Series Expansions: 级数展开
36+
Further Topics::Series Expansions::Matrix Norms: 矩阵范数
37+
Further Topics::Series Expansions::Neumann's Theorem: 诺伊曼定理
38+
Further Topics::Series Expansions::Spectral Radius: 谱半径
39+
Further Topics::Positive Definite Matrices: 正定矩阵
40+
Further Topics::Differentiating Linear and Quadratic Forms: 线性和二次型的求导
41+
Further Topics::Further Reading: 延伸阅读
42+
Exercises: 练习
1043
---
1144

1245
(linear_algebra)=
@@ -69,7 +102,9 @@ $$
69102

70103
虽然本讲与我们在[之前的讲座](https://python-programming.quantecon.org/numpy.html)中已经介绍过NumPy数组的基本操作有所重合,但这里我们将从更理论的角度来探讨线性代数。
71104

72-
这些理论知识将为我们后续的应用打下重要基础。
105+
请注意,本讲比大多数讲座更偏重理论,其中包含的背景知识将在我们后续的应用中逐步用到。
106+
107+
让我们从一些导入开始:
73108

74109
```{code-cell} ipython
75110
import matplotlib.pyplot as plt
@@ -100,9 +135,9 @@ from scipy.linalg import inv, solve, det, eig
100135

101136
以$\mathbb R^2$为例,它代表二维平面,其中的每个向量都对应平面上的一个点。
102137

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

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

107142
```{code-cell} ipython
108143
fig, ax = plt.subplots(figsize=(10, 8))
@@ -246,15 +281,25 @@ $$
246281
继续前面的例子,内积和范数可以按如下方式计算
247282

248283
```{code-cell} ipython3
249-
np.sum(x * y) # x和y的内积
284+
np.sum(x * y) # x和y的内积,方法1
250285
```
251286

252287
```{code-cell} ipython3
253-
np.sqrt(np.sum(x**2)) # x的范数,第一种方法
288+
x @ y # x和y的内积,方法2(推荐)
289+
```
290+
291+
推荐使用`@`运算符,因为它使用了经过优化的BLAS库来实现乘加融合运算,相比分别进行乘法和求和运算,具有更好的性能和数值精度。
292+
293+
```{code-cell} ipython3
294+
np.sqrt(np.sum(x**2)) # x的范数,方法1
254295
```
255296

256297
```{code-cell} ipython3
257-
np.linalg.norm(x) # x的范数,第二次计算
298+
np.sqrt(x @ x) # x的范数,方法2(推荐)
299+
```
300+
301+
```{code-cell} ipython3
302+
np.linalg.norm(x) # x的范数,方法3
258303
```
259304

260305
### 张成空间
@@ -388,55 +433,47 @@ $$
388433

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

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

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

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

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

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

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

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

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

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

412457
(la_unique_reps)=
413458
### 唯一表示
414459

415460
线性独立向量集合的一个重要性质是唯一表示性:其张成空间中的每个向量都可以用唯一的一组系数来表示。
416461

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

419464
$$
420-
y = \beta_1 a_1 + \cdots + \beta_k a_k
465+
y = \beta_1 a_1 + \cdots \beta_k a_k
421466
$$
422467

423-
那么这组系数$\beta_1, \ldots, \beta_k$是唯一的
468+
那么不存在其他系数序列$\gamma_1, \ldots, \gamma_k$能够得到相同的向量$y$
424469

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

433472
$$
434473
(\beta_1 - \gamma_1) a_1 + \cdots + (\beta_k - \gamma_k) a_k = 0
435474
$$
436475

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

441478
## 矩阵
442479

@@ -530,6 +567,8 @@ $$
530567

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

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

535574
作为可能最重要的特例,考虑将$n \times k$矩阵$A$与$k \times 1$列向量$x$相乘。
@@ -637,7 +676,7 @@ $$
637676

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

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

642681
## 求解方程组
643682

@@ -779,7 +818,7 @@ $$
779818
```{index} single: Matrix; Determinants
780819
```
781820

782-
每个方阵都有一个与之唯一对应的数值,这个数值被称为矩阵的*行列式*。行列式的具体计算方法可以在[这里](https://baike.baidu.com/item/%E8%A1%8C%E5%88%97%E5%BC%8F/2010180)找到。
821+
每个方阵都有一个与之唯一对应的数值,这个数值被称为矩阵的*行列式*。行列式的具体计算方法可以在[这里](https://en.wikipedia.org/wiki/Determinant)找到。
783822

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

@@ -877,14 +916,11 @@ A @ x # 应该等于y
877916
solve(A, y) # 产生相同的解
878917
```
879918

880-
我们可以通过两种方式求解线性方程$x = A^{-1}y$:
881-
882-
1. 使用`inv(A) @ y`显式计算逆矩阵
883-
2. 使用`solve(A, y)`直接求解方程
919+
请注意我们可以通过`inv(A) @ y`或使用`solve(A, y)`来求解$x = A^{-1} y$。
884920

885-
第二种方法基于LU分解,数值稳定性更好,是更推荐的方法
921+
后一种方法使用了不同的算法(LU分解),该算法在数值上更加稳定,因此几乎总是应优先选用
886922

887-
如果需要求解最小二乘问题$\hat x = (A'A)^{-1}A'y$,可以使用`scipy.linalg.lstsq(A, y)`
923+
如果需要求解最小二乘解$\hat x = (A'A)^{-1}A'y$,可以使用`scipy.linalg.lstsq(A, y)`
888924

889925
(la_eigen)=
890926
## {index}`特征值 <single: Eigenvalues>`和{index}`特征向量 <single: Eigenvectors>`
@@ -1114,7 +1150,6 @@ $$
11141150
1. $\frac{\partial A x}{\partial x} = A'$
11151151
1. $\frac{\partial x'A x}{\partial x} = (A + A') x$
11161152
1. $\frac{\partial y'B z}{\partial y} = B z$
1117-
11181153
1. $\frac{\partial y'B z}{\partial B} = y z'$
11191154

11201155
下面的{ref}`la_ex1`要求你应用这些公式。
@@ -1330,4 +1365,3 @@ $\tilde{P} := A'PA - A'PB(Q + B'PB)^{-1}B'PA$
13301365
参见[此讨论](https://python-programming.quantecon.org/numpy.html#matrix-multiplication)
13311366

13321367
[^cfn]: 假设 $\|S \| < 1$。取任意非零向量 $x$,令 $r := \|x\|$。我们有 $\| Sx \| = r \| S (x/r) \| \leq r \| S \| < r = \| x\|$。因此每个点都被拉向原点。
1333-

0 commit comments

Comments
 (0)