线性代数
向量
1.线性相关与线性无关
- 向量组线性相关
存在一组不全为的实数,使得:
即至少有一个向量可以用其余向量线性表示。
- 向量组线性无关
当且仅当时,才有:
即存在一个向量,其不能等于向量组内任意向量,可由向量组内向量进行唯一的线性表示。
2. 向量空间的维数
一个向量空间所包含的最大线性无关向量的数据,称为向量空间的维数。
3. 向量的点积(内积)
import numpy as np
u, v = np.array([1, 2, 3]), np.array([4, 5, 6])
uv = u.dot(v)
uv = np.dot(u, v)
uv
32
4. 三维向量的叉积(外积)
其中, 为轴的单位向量。
和 的叉积垂直于构成的平面,其方向符合右手规则;
叉积的模等于构成的平面四边形的面积;
;
import numpy as np
u, v = np.array([1, 2, 3]), np.array([4, 5, 6])
uv = np.cross(u, v).sum()
uv
0
5. 三维向量的混合积
- 其物理意义为:以为三个棱边所围成平行六面体的体积。当构成右手系时,该平行六面体的体积为正号。
6. 三维向量的并矢积
也记作 或者
import numpy as np
u, v = np.array([1, 2, 3]), np.array([4, 5, 6])
uv = np.outer(u, v)
uv
array([[ 4, 5, 6],
[ 8, 10, 12],
[12, 15, 18]])
7. Gram - Schmidt正交化
设 是 中的一个线性无关向量组,若令
则就是一个正交向量组,若再令
就得到一个标准正交向量组 ,且该向量组与 等价。
import numpy as np
A = np.array([[1,1,6], ## numpy.linalg 是对列向量进行标准正交化
[1,2,4],
[1,3,2]])
q, r = np.linalg.qr(A)
q, r
(array([[-5.77350269e-01, 7.07106781e-01, 4.08248290e-01],
[-5.77350269e-01, 5.55111512e-17, -8.16496581e-01],
[-5.77350269e-01, -7.07106781e-01, 4.08248290e-01]]),
array([[-1.73205081, -3.46410162, -6.92820323],
[ 0. , -1.41421356, 2.82842712],
[ 0. , 0. , 0. ]]))
矩阵
1. 矩阵的运算
加法 , 都为矩阵
数乘
乘积
点乘(阿达马积)
克罗内克积
2.
,转置;
,矩阵的逆;
,伴随矩阵。
反矩阵
若矩阵可逆,则
若为阶方阵,则
import numpy as np
A = np.mat(np.random.randint(10, size = (3,3)))
A = np.mat([[-3, 2, -5], [-1, 0, -2], [3, -4, 1]])
print(A)
print(A.T) # 转置
print(A.I) # 逆
print(np.linalg.det(A)) # 行列式
print(np.dot(np.linalg.det(A), A.I)) # 伴随矩阵
[[-3 2 -5]
[-1 0 -2]
[ 3 -4 1]]
[[-3 -1 3]
[ 2 0 -4]
[-5 -2 1]]
[[ 1.33333333 -3. 0.66666667]
[ 0.83333333 -2. 0.16666667]
[-0.66666667 1. -0.33333333]]
-6.0
[[-8. 18. -4.]
[-5. 12. -1.]
[ 4. -6. 2.]]
3. 矩阵的秩
初等变换不改变矩阵的秩
,特别当,则:
若存在,则;若存在,则;若,则;若,则
只有零解
import numpy as np
A = np.array([[1, 1], [2, 2]]) # rank = 1
# A = np.array([[1, 2], [3, 4]]) # rank = 2
A_rank = np.linalg.matrix_rank(A)
A_rank
1
4. 特征值与特征向量
设为阶矩阵,若存在常数和维非零向量,使得
设是的一个特征值,则 特征值 , 特征值 , 特征值 , 特征值 , 特征值 , 特征值 , 特征值 , 特征值
若为的个特征值,则
设为的个特征值,对应特征向量为,若,则
import numpy as np
A = np.mat([[-1, 1, 0], [-4, 3, 0], [1, 0, 2]])
eigenvalue, featurevector = np.linalg.eig(A)
eigenvalue, featurevector
(array([2., 1., 1.]), matrix([[ 0. , 0.40824829, 0.40824829],
[ 0. , 0.81649658, 0.81649658],
[ 1. , -0.40824829, -0.40824829]]))
5. 相似矩阵
- 设都是阶矩阵,若存在可逆矩阵,使,则称是的相似矩阵, 并称矩阵与相似,记为。
对进行运算称为对进行相似变换,称可逆矩阵为相似变换矩阵。