赞
踩
在机器学习中线性代数是及其重要的数学工具,因为训练数据时会进行大量的矩阵运算,所有的线性方程计算都会转化成矩阵的计算,训练模型时所需要的计算量是巨大的,而全部转化为矩阵会缩短计算的时间,极大的提升计算速度,而且很多方程只能通过向量化的形式来解,代数与几何密不可分,可以相互的转化,这也正是数学的魅力所在。
在数学中,向量(也称为欧几里得向量、几何向量、矢量),指具有大小和方向的量。
代数表示:
a
⃗
b
⃗
\vec{a} \quad \vec{b}
a
b
矩阵表示:
a
=
[
x
1
x
2
]
=
⟨
x
1
,
x
2
⟩
(1)
a=[x1x2]
向量的模:向量的大小称为向量的模,是个标量,没有方向。
表示为:
∣
a
∣
=
x
1
2
+
x
2
2
|a|=\sqrt{x_1^2+x_2^2}
∣a∣=x12+x22
n维空间:用 R n R^n Rn表示,向量在某一个维度上的值称为向量在该维度上的分量。如 R 3 R^3 R3空间的向量 a = ⟨ 1 , 3 , 5 ⟩ a=\left \langle1,3,5 \right \rangle a=⟨1,3,5⟩,则a在三个维度上的分量分别是 1,3,5。
零向量:所有分量都为0的向量,单位向量:模长等于1的向量 ,计算公式 一个非零向量除以它的模,即 N = a ∣ a ∣ N=\frac{a}{|a|} N=∣a∣a
加法:
a
=
[
−
1
2
]
,
b
=
[
3
4
]
,
a
+
b
=
[
−
1
+
3
2
+
4
]
=
[
2
6
]
(2)
a=[−12]
数乘:
a
=
[
1
2
]
,
a
×
3
=
[
3
6
]
,
a
×
(
−
3
)
=
[
−
3
−
6
]
(3)
a=[12]
减法:
a
=
[
3
3
]
,
b
=
[
−
1
−
1
]
,
a
−
b
=
a
+
(
−
1
)
×
b
=
[
4
4
]
(4)
a=[33]
一个方程组可以分解为一个向量的混合运算。例如:
{
3
x
+
2
y
=
7
−
6
x
+
6
y
=
6
⇒
[
3
−
6
]
⏟
a
x
+
[
2
6
]
⏟
b
y
=
[
7
6
]
⏟
c
⇒
a
x
+
b
y
=
c
(5)
\left\{ 3x+2y=7−6x+6y=6
{
x
=
1
y
=
2
⇒
a
+
2
b
=
c
(6)
\left\{x=1y=2
如果A和B都是n维向量,它们的点积就是二者的分量的乘积之和。
代数意义:
A
⋅
B
=
∑
i
=
1
n
a
i
b
i
A\cdot B=\sum_{i=1}^na_ib_i
A⋅B=∑i=1naibi
几何意义:
A
=
⟨
a
1
,
a
2
⟩
,
B
=
⟨
b
1
,
b
2
⟩
A
⋅
B
=
a
1
b
1
+
a
2
b
2
=
∣
A
∣
∣
B
∣
cos
θ
A=\left\langle a_1,a_2\right\rangle,B=\left\langle b_1,b_2\right\rangle \;A \cdot B=a_1b_1+a_2b_2=|A||B|\cos\theta
A=⟨a1,a2⟩,B=⟨b1,b2⟩A⋅B=a1b1+a2b2=∣A∣∣B∣cosθ
点积的作用:1.计算向量间的夹角,2.判断正交性,3.求向量的分量
二维空间内定义:
A
=
[
a
1
a
2
]
,
B
=
[
b
1
b
2
]
,
A
×
B
=
a
1
a
2
b
1
b
2
=
a
1
b
2
−
a
2
b
1
A=[a1a2]
三维空间内定义:
A
=
[
a
1
a
2
a
3
]
,
B
=
[
b
1
b
2
b
3
]
,
A
×
B
=
i
^
j
^
k
^
a
1
a
2
a
3
b
1
b
2
b
3
=
a
1
b
2
−
a
2
b
1
=
⟨
i
^
a
2
a
3
b
2
b
3
,
−
j
^
a
1
a
3
b
1
b
3
,
k
^
a
1
a
2
b
1
b
2
⟩
A=[a1a2a3]
&\hat{i},&\hat{j},&\hat{k}代表每个维度的单位向量,行列式是一个函数,它的代表的是一个标量。叉积的结果是一个向量,这点要非常清晰。
几何意义:
∣
A
×
B
∣
=
∣
A
∣
∣
B
∣
sin
θ
|A\times B|=|A||B|\sin\theta
∣A×B∣=∣A∣∣B∣sinθ,即两个向量的叉积的模长等于这两个向量模长的积乘以二者夹角的正弦。
叉积的作用:1.计算平行六面体的体积,2.判断点是否共面,3.计算法向量
定义:对于n维空间的行列式,可以表示为: D n = ∣ A n × n ∣ = d e t ( A n × n ) D_n=|A_{n\times n}|=det(A_{n\times n}) Dn=∣An×n∣=det(An×n),其中A是一个n阶方阵。
行列式是由向量组成的,当
d
e
t
(
A
)
≠
0
det(A)\not=0
det(A)=0时,组成det(A)的向量全部独立,此时,方程组有唯一解。
1
2
3
4
≠
0
→
{
x
1
+
x
2
=
0
3
x
1
+
4
x
2
=
0
1234
d e t ( U ) = d 1 d 2 d 3 … d n = ∏ i = 1 n d i det(U)=d_1d_2d_3\ldots d_n=\prod^n_{i=1}d_i det(U)=d1d2d3…dn=∏i=1ndi
d e t ( A ) = ∑ n ! ± a 1 α a 2 β a 3 γ ⋯ a n ϖ det(A)=\sum _{n!}\pm a_{1\alpha}a_{2\beta}a_{3\gamma}\cdots a_{n\varpi} det(A)=∑n!±a1αa2βa3γ⋯anϖ
代数余子式的核心思想是把一个复杂的高阶行列式转换为多个简单的低阶行列式
d
e
t
(
A
)
=
a
11
(
a
22
a
33
−
a
23
a
32
)
−
a
12
(
a
21
a
33
−
a
23
a
31
)
+
a
13
(
a
21
a
32
−
a
22
a
31
)
det(A)=a_{11}(a_{22}a_{33}-a_{23}a_{32})-a_{12}(a_{21}a_{33}-a_{23}a_{31})+a_{13}(a_{21}a_{32}-a_{22}a_{31})
det(A)=a11(a22a33−a23a32)−a12(a21a33−a23a31)+a13(a21a32−a22a31)
d
e
t
(
A
)
=
a
11
C
11
+
a
12
C
12
+
⋯
+
a
1
n
C
1
n
=
∑
i
=
1
n
a
1
i
C
1
i
det(A)=a_{11}C_{11}+a_{12}C_{12}+\cdots +a_{1n}C_{1n}=\sum _{i=1}^na_{1i}C_{1i}
det(A)=a11C11+a12C12+⋯+a1nC1n=∑i=1na1iC1i
import numpy as np if __name__ == '__main__': a = np.array([-1, 2, 3]) b = np.array([3, 1, 4]) a_add_b = a + b a_sub_b = a - b a_mul_b = a * b # 计算点积 a_inner_b = np.inner(a, b) # 计算叉积 a_cross_b = np.cross(a, b) print(a_add_b, a_sub_b, a_mul_b, a_inner_b, a_cross_b) c = np.mat('1 2;3 3') d = np.mat('2 2 1; 1 0 1; 0 2 1') # 计算两个行列式 det_c = np.linalg.det(c) det_d = np.linalg.det(d) print('c={0}\n D(c)={1}'.format(c,np.round(det_c))) print('d={0}\n D(d)={1}'.format(d,np.round(det_d)))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。