0. 前言
线代是很早之前大一上的东西了,当时记得学的还可以,不过确实印象中里面各种零零散散的公式定理有一堆,感觉学的不怎么成体系,后来也一直没怎么真正用起来,等到现在也基本算是把学的全部还给老师了……
不过问题在于,虽然我现在已经不搞物理很多年了,但是架不住我转行做算法了啊,算法的核心不就是各种矩阵计算吗?虽然由于神经网络当中参数的复杂性,我自己也不是研究员,更多时候主要考察的还是数据特征以及对结果进行定性上的分析,而不会从模型结构中涉及的矩阵变换来对结果进行调优,但是线代终究感觉还是有必要去捞一下了……
所以,这里我打算还是掏出当年的教科书把线代给复习一下吧……
不过说到这里,我真的是想好好吐槽一下了,我掏出教科书之后才发现,当年上线代居然用的教材是线性代数与解析几何,然后教材前两章全都在讲解几,里面涉及到的线代相关的东西貌似也全部是服务于坐标系变换的,虽说我是物理系的吧,但是这是不是也太忽悠了啊,难怪当年印象中我好像特意去找了本数学系的线代教材自学来着……
简直了……
算了,先把这本书简单过一下吧,回头下次再找本数学系的教材好好补补吧……
1. 向量与复数
1. 向量
向量的含义顾名思义,就是即有大小又有方向的量,其满足如下性质:
- 交换律: a ⃗ + b ⃗ = b ⃗ + a ⃗ \vec{a} + \vec{b} = \vec{b} + \vec{a} a+b=b+a
- 结合律: ( a ⃗ + b ⃗ ) + c ⃗ = a ⃗ + ( b ⃗ + c ⃗ ) (\vec{a} + \vec{b}) + \vec{c} = \vec{a} + (\vec{b} + \vec{c}) (a+b)+c=a+(b+c)
- a ⃗ + 0 ⃗ = a ⃗ \vec{a} + \vec{0} = \vec{a} a+0=a
- a ⃗ + ( − a ⃗ ) = 0 ⃗ \vec{a} + (-\vec{a}) = \vec{0} a+(−a)=0
- 1 a ⃗ = a ⃗ 1 \vec{a} = \vec{a} 1a=a
- λ ( μ a ⃗ ) = ( λ μ ) a ⃗ \lambda (\mu \vec{a}) = (\lambda\mu)\vec{a} λ(μa)=(λμ)a
- ( λ + μ ) a ⃗ = λ a ⃗ + μ a ⃗ (\lambda + \mu)\vec{a} = \lambda\vec{a} + \mu\vec{a} (λ+μ)a=λa+μa
- λ ( a ⃗ + b ⃗ ) = λ a ⃗ + λ b ⃗ \lambda(\vec{a} + \vec{b}) = \lambda\vec{a} + \lambda\vec{b} λ(a+b)=λa+λb
关于向量还有一些比较简单的性质,比如说:
命题1.1.1
- 向量 a ⃗ , b ⃗ \vec{a}, \vec{b} a,b共线的充要条件是存在不全为零的实数 λ , μ \lambda, \mu λ,μ,使得 λ a ⃗ + μ b ⃗ = 0 \lambda \vec{a} + \mu \vec{b} = 0 λa+μb=0
命题1.1.2
- 向量 a ⃗ , b ⃗ , c ⃗ \vec{a}, \vec{b}, \vec{c} a,b,c共面的充要条件是存在不全为零的实数 λ , μ , ν \lambda, \mu, \nu λ,μ,ν,使得 λ a ⃗ + μ b ⃗ + ν c ⃗ = 0 \lambda \vec{a} + \mu \vec{b} + \nu \vec{c}= 0 λa+μb+νc=0
另外,我们可以基于此定义线性组合和线性相关:
定义1.1.1
- 设 a 1 ⃗ , a 2 ⃗ , . . . , a n ⃗ \vec{a_1}, \vec{a_2}, ..., \vec{a_n} a1,a2,...,an为一组向量, λ 1 , λ 2 , . . . , λ n \lambda_1, \lambda_2, ..., \lambda_n λ1,λ2,...,λn为一组实数,则称向量 a ⃗ = ∑ i = 1 n λ i a i ⃗ \vec{a} = \sum_{i=1}^n \lambda_i \vec{a_i} a=∑i=1nλiai为向量 a 1 ⃗ , a 2 ⃗ , . . . , a n ⃗ \vec{a_1}, \vec{a_2}, ..., \vec{a_n} a1,a2,...,an的一个线性组合。
定义1.1.2
- 一组向量 a 1 ⃗ , a 2 ⃗ , . . . , a n ⃗ \vec{a_1}, \vec{a_2}, ..., \vec{a_n} a1,a2,...,an,如果存在不全为零的实数 λ 1 , λ 2 , . . . , λ n \lambda_1, \lambda_2, ..., \lambda_n λ1,λ2,...,λn使得 ∑ i = 1 n λ i a i ⃗ = 0 \sum_{i=1}^n \lambda_i \vec{a_i} = 0 ∑i=1nλiai=0,则称这组向量线性相关,反之称其为线性无关。
因此,显然有:
- 两个向量线性相关当且仅当其共线;
- 三个向量线性相关当且仅当其共面。
2. 向量运算
1. 数量积(内积)
首先,我们给出其定义如下:
定义1.3.1
- 两个向量 a ⃗ , b ⃗ \vec{a}, \vec{b} a,b的数量积(内积)是一个标量,它等于两个向量的模长与两个向量夹角的余弦的乘积,即为 a ⃗ ⋅ b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ c o s θ \vec{a} \cdot \vec{b} = |\vec{a}| |\vec{b}| cos \theta a⋅b=∣a∣∣b∣cosθ。
物理含义上来说,内积就是两个向量在各自方向上的投影之积。
显然,我们有如下性质:
- a ⃗ ⋅ b ⃗ = b ⃗ ⋅ a ⃗ \vec{a} \cdot \vec{b} = \vec{b} \cdot \vec{a} a⋅b=b⋅a
- ( a ⃗ + b ⃗ ) ⋅ c ⃗ = a ⃗ ⋅ c ⃗ + b ⃗ ⋅ c ⃗ (\vec{a} + \vec{b}) \cdot \vec{c} = \vec{a} \cdot \vec{c} + \vec{b} \cdot \vec{c} (a+b)⋅c=a⋅c+b⋅c
- ( λ a ⃗ ) ⋅ b ⃗ = λ ( a ⃗ ⋅ b ⃗ ) = a ⃗ ⋅ ( λ b ⃗ ) (\lambda \vec{a}) \cdot \vec{b} = \lambda (\vec{a} \cdot \vec{b}) = \vec{a} \cdot (\lambda \vec{b}) (λa)⋅b=λ(a⋅b)=a⋅(λb)
- a ⃗ 2 = a ⃗ ⋅ a ⃗ ≥ 0 \vec{a}^2 = \vec{a} \cdot \vec{a} \geq 0 a2=a⋅a≥0
- 三角不等式: ∣ a ⃗ ∣ + ∣ b ⃗ ∣ ≥ ∣ a ⃗ + b ⃗ ∣ |\vec{a}| + |\vec{b}| \geq |\vec{a} + \vec{b}| ∣a∣+∣b∣≥∣a+b∣
2. 向量积
同样,给出向量积的定义如下:
定义1.4.1
- 两个向量 a ⃗ , b ⃗ \vec{a}, \vec{b} a,b的向量积 a ⃗ × b ⃗ \vec{a} \times \vec{b} a×b为一个向量,它的方向与 a ⃗ , b ⃗ \vec{a}, \vec{b} a,b均垂直,且使 a ⃗ , b ⃗ , a ⃗ × b ⃗ \vec{a}, \vec{b}, \vec{a} \times \vec{b} a,b,a×b构成一个右手坐标系;它的模长等于以 a ⃗ , b ⃗ \vec{a}, \vec{b} a,b为边的平行四边形的面积,即 ∣ a ⃗ × b ⃗ ∣ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ s i n θ |\vec{a} \times \vec{b}| = |\vec{a}||\vec{b}|sin\theta ∣a×b∣=∣a∣∣b∣sinθ,其中 θ \theta θ为两向量间的夹角。
显然,我们同样有:
- a ⃗ × b ⃗ = − b ⃗ × a ⃗ \vec{a} \times \vec{b} = -\vec{b} \times \vec{a} a×b=−b×a
- ( λ a ⃗ ) × b ⃗ = λ ( a ⃗ × b ⃗ ) = a ⃗ × ( λ b ⃗ ) (\lambda \vec{a}) \times \vec{b} = \lambda (\vec{a} \times \vec{b}) = \vec{a} \times (\lambda \vec{b}) (λa)×b=λ(a×b)=a×(λb)
- ( a ⃗ + b ⃗ ) × c ⃗ = a ⃗ × c ⃗ + b ⃗ × c ⃗ (\vec{a} + \vec{b}) \times \vec{c} = \vec{a} \times \vec{c} + \vec{b} \times \vec{c} (a+b)×c=a×c+b×c
更进一步的,我们其实还有性质如下:
- ( a ⃗ + b ⃗ ) × c ⃗ = ( a ⃗ ⋅ c ⃗ ) b ⃗ − ( b ⃗ ⋅ c ⃗ ) a ⃗ (\vec{a} + \vec{b}) \times \vec{c} = (\vec{a}\cdot\vec{c})\vec{b} - (\vec{b}\cdot\vec{c})\vec{a} (a+b)×c=(a⋅c)b−(b⋅c)a
- ( a ⃗ + b ⃗ ) ⋅ ( c ⃗ + d ⃗ ) = ( a ⃗ ⋅ c ⃗ ) ( b ⃗ ⋅ d ⃗ ) − ( a ⃗ ⋅ d ⃗ ) ( b ⃗ ⋅ c ⃗ ) (\vec{a} + \vec{b}) \cdot (\vec{c} + \vec{d}) = (\vec{a}\cdot\vec{c})(\vec{b}\cdot\vec{d}) - (\vec{a}\cdot\vec{d})(\vec{b}\cdot\vec{c}) (a+b)⋅(c+d)=(a⋅c)(b⋅d)−(a⋅d)(b⋅c)
3. 混合积
混合积的定义为 ( a ⃗ × b ⃗ ) ⋅ c ⃗ (\vec{a} \times \vec{b}) \cdot \vec{c} (a×b)⋅c,其物理含义上恰好就是这三个向量组成的平行六面体的体积。
我们可以将其结果写成行列式的形式:
( a ⃗ × b ⃗ ) ⋅ c ⃗ = ∣ a 1 a 2 a 3 b 1 b 2 b 3 c 1 c 2 c 3 ∣ (\vec{a} \times \vec{b}) \cdot \vec{c} = \begin{vmatrix} a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ c_1 & c_2 & c_3 \end{vmatrix} (a×b)⋅c=∣ ∣a1b1c1a2b2c2a3b3c3∣ ∣
显然有:
- 三个向量共面当且仅当其混合积为0。
2. 空间解析几何
1. 直线和平面
1. 直线的表达
x − a 1 u 1 = y − a 2 u 2 = z − a 3 u 3 \frac{x-a_1}{u_1} = \frac{y-a_2}{u_2} = \frac{z-a_3}{u_3} u1x−a1=u2y−a2=u3z−a3
直线的方向向量为:
u ⃗ = ( u 1 , u 2 , u 3 ) \vec{u} = (u_1, u_2, u_3) u=(u1,u2,u3)
2. 平面的表达
A x + B y + C z + D = 0 Ax+By+Cz+D=0 Ax+By+Cz+D=0
平面的法向量表达为:
n ⃗ = ( A , B , C ) \vec{n} = (A,B,C) n=(A,B,C)
3. 点到直线的距离
d = ∣ u ⃗ × A P ⃗ ∣ ∣ u ⃗ ∣ d = \frac{|\vec{u} \times \vec{AP}|}{|\vec{u}|} d=∣u∣∣u×AP∣
4. 点到平面的距离
d = ∣ A x + B y + C z + D ∣ A 2 + B 2 + C 2 d = \frac{|Ax+By+Cz+D|}{\sqrt{A^2+B^2+C^2}} d=A2+B2+C2∣Ax+By+Cz+D∣
5. 两直线间的距离
d = ∣ u ⃗ × v ⃗ ⋅ A B ⃗ ∣ ∣ u ⃗ × v ⃗ ∣ d = \frac{|\vec{u} \times \vec{v} \cdot \vec{AB}|}{|\vec{u} \times \vec{v}|} d=∣u×v∣∣u×v⋅AB∣
6. 两平面间的夹角
ϕ = a r c c o s ∣ n 1 ⃗ ⋅ n 2 ⃗ ∣ ∣ n 1 ⃗ ∣ ∣ n 2 ⃗ ∣ \phi = arccos \frac{|\vec{n_1} \cdot \vec{n_2}|}{|\vec{n_1}||\vec{n_2}|} ϕ=arccos∣n1∣∣n2∣∣n1⋅n2∣
7. 直线与平面的夹角
φ = a r c s i n ∣ u ⃗ ⋅ n ⃗ ∣ ∣ u ⃗ ∣ ∣ n ⃗ ∣ \varphi = arcsin \frac{|\vec{u} \cdot \vec{n}|}{|\vec{u}||\vec{n}|} φ=arcsin∣u∣∣n∣∣u⋅n∣
2. 曲线和曲面
1. 曲线表达式
Q ( t ) = ( x ( t ) , y ( t ) , z ( t ) ) Q(t) = (x(t), y(t), z(t)) Q(t)=(x(t),y(t),z(t))
2. 曲面表达式
-
柱面
P ( s , t ) = s u ⃗ + Q ( t ) P(s, t) = s \vec{u} + Q(t) P(s,t)=su+Q(t)
-
锥面
P ( s , t ) = ( 1 − s ) A + s Q ( t ) P(s, t) = (1-s)A + sQ(t) P(s,t)=(1−s)A+sQ(t)
-
常见二次曲面
-
椭球面
x 2 a 2 + y 2 b 2 + z 2 c 2 = 1 \frac{x^2}{a^2} + \frac{y^2}{b^2} + \frac{z^2}{c^2} = 1 a2x2+b2y2+c2z2=1
-
单叶双曲面
x 2 a 2 + y 2 b 2 − z 2 c 2 = 1 \frac{x^2}{a^2} + \frac{y^2}{b^2} - \frac{z^2}{c^2} = 1 a2x2+b2y2−c2z2=1
-
双叶双曲面
x 2 a 2 + y 2 b 2 − z 2 c 2 = − 1 \frac{x^2}{a^2} + \frac{y^2}{b^2} - \frac{z^2}{c^2} = -1 a2x2+b2y2−c2z2=−1
-
二次锥面
x 2 a 2 + y 2 b 2 − z 2 c 2 = 0 \frac{x^2}{a^2} + \frac{y^2}{b^2} - \frac{z^2}{c^2} = 0 a2x2+b2y2−c2z2=0
-
椭圆抛物面
z = x 2 a 2 + y 2 b 2 z = \frac{x^2}{a^2} + \frac{y^2}{b^2} z=a2x2+b2y2
-
马鞍面(双曲抛物面)
z = x 2 a 2 − y 2 b 2 z = \frac{x^2}{a^2} - \frac{y^2}{b^2} z=a2x2−b2y2
-
椭圆柱面
x 2 a 2 + y 2 b 2 = 1 \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 a2x2+b2y2=1
-
双曲柱面
x 2 a 2 − y 2 b 2 = 1 \frac{x^2}{a^2} - \frac{y^2}{b^2} = 1 a2x2−b2y2=1
-
抛物柱面
y 2 = 2 p x y^2 = 2px y2=2px
-