1. 线性代数

线性代数

线性代数

线性代数

线性代数学习大纲:

矩阵和向量

  • 矩阵和向量的定义
  • 矩阵和向量的基本运算(加法、数乘、转置等)
  • 矩阵乘法及其性质
  • 逆矩阵
  • 矩阵分解(LU分解等)

向量空间

  • 向量空间概念
  • 线性无关
  • 基和维数
  • 子空间
  • null空间和列空间

特征值和特征向量

  • 特征值和特征向量的定义
  • 对角化
  • 相似矩阵
  • 特征值分解
  • 矩阵的幂
  • 线性变换

奇异值分解(SVD)

  • 奇异值分解的定义
  • 计算SVD
  • SVD在降噪、压缩等应用
  • 伪逆

主成分分析(PCA)

  • PCA的动机

  • 协方差矩阵

  • 计算PCA

  • 降维

  • PCA在数据处理中的应用

  • 向量: 可以进行加减乘除操作的任意对象,如计算机中的数组

  • 标量:一个单独的数字,对向量进行缩放

  • 张量:向量和矩阵的另一种说法,向量是一阶张量,矩阵是二阶张量,图像是三阶张量(高度、宽度、颜色通道)

  • 线性组合:将向量按照一定的比例相加得到的新向量

  • 矩阵:一个二维数组,本质是对运动的描述

  • 单位矩阵: 任意向量与单位向量的乘积,等于什么都没做。

  • 秩: 经过线性变换后空间的维数,即该矩阵的线性无关的行列的最大数目。

  • 范数:向量的长度或大小,常用的是欧式距离。

  • 零向量:长度为零的向量。

  • 零矩阵:所有元素都为零的矩阵。

  • 行列式:矩阵的行列式的值,用来衡量矩阵的正负、奇偶性、逆矩阵的存在性。

  • 逆矩阵:矩阵的逆矩阵,即与矩阵相乘的结果为单位矩阵。

  • 特征分解:将矩阵分解为其特征向量和特征值。

在数学中,任意两个数在进行一种运算后,结果仍在这个集合中,那么这个集合对于这种运算是封闭的。 当初始拥有一定数量的向量后,进行假发和数乘运算,可能产生的整个向量集合是什么?这就引出了向量空间的概念。

线性组合

线性组合是指将一组向量按照一定的比例相加得到的新向量。

设有向量$a_1,a_2,…,a_n$,权重$w_1,w_2,…,w_n$,则$w_1a_1+w_2a_2+…+w_na_n$就是一个线性组合。

线性相关就是向量组中至少有一个向量都可以用向量组中的其他向量的线性组合来表示。换句话说,这个向量落在了其他向量所张成的空间中。

线性无关就是向量组中没有任一向量可以用其他向量的线性组合表示。向量组中的每一个向量都为向量组所张成的空间贡献了一个维度,每一个向量都缺一不可, 少了任何一个向量,都会改变向量组所张成的空间。

  • 一组向量要么是线性相关,要么是线性无关,没有第三种情况。
  • 如果一组向量中有至少一个零向量,或者有两个相同的向量,那么肯定线性相关。

基的定义

设$V$是向量空间$V$,$v_1,v_2,…,v_n$是$V$中的向量,$B$是$V$的一组基,如果$B$中的每一个向量都可以由$v_1,v_2,…,v_n$中的向量线性表示,那么$B$就是$V$的一组基。 简单点就是向量空间中的一组向量满足:互相线性无关,张成V,则它们是向量空间V的一组基。该空间的任意向量都能表达为基向量的线性组合。

基含有的向量的数量叫做维数(即该向量空间的维数,记作 dim(V))。同一个向量空间可以有不同的基,但同一个基的维数是相同的。

线性变换

如果一个变换同时具有以下2条性质,那么它就是线性变换:

  • 变换前后,所有的直线仍保持直线;
  • 变换前后,所原点保持不变

向量刻画对象,矩阵刻画对象的运动,用矩阵与向量的乘机施加运动;矩阵的本质是运动的描述。

矩阵与基本运算

矩阵定义: m * n 个数字排成 m * n 列的二维数组就是矩阵,一般用大写字母表示。若 m = n , 则称为n阶方阵或者n阶矩阵。

矩阵的加法与数乘最简答:

  • 矩阵的加法:两个矩阵相加,对应元素相加。
  • 矩阵的数乘:矩阵与标量相乘,对应元素相乘。

矩阵的乘法:

公式: A 的行 * B 的列相加 。 C的大小为 A行 * B列。

eg:

A = [[1,2],[3,4]] B = [[2,0],[1,2]]

C = A * B

c11 = 1 * 2 + 2 * 1 = 4 c12 = 1 * 0 + 2 * 2 = 4 c21 = 3 * 2 + 4 * 1 = 10 c22 = 3 * 0 + 4 * 2 = 8

C = [[4,4],[10,8]]


def matrix_multiply(A, B):
    # 确认A的列数和B的行数相等
    if len(A[0]) != len(B):
        return None

    # 创建结果矩阵
    result = [[0 for _ in range(len(B[0]))] for _ in range(len(A))]

    # 计算乘积
    for i in range(len(A)):
        for j in range(len(B[0])):
            for k in range(len(B)):
                result[i][j] += A[i][k] * B[k][j]

    return result

A = [[1, 2],
     [3, 4]]

B = [[2, 0],
     [1, 2]]

print(matrix_multiply(A, B))

单位矩阵是指对角线上元素都为1,其他元素都为0的矩阵。任意向量与单位矩阵相乘,都不会改变得到自身。

行列式:

对于一个 n * n 的方阵A,行列式det(A)是一个数值,用来表示矩阵的一些特征。

对于一个 2*2 的矩阵 A=[[a,b],[c,d]] ,行列式det(A) = ad - bc

对于一个 3*3 的矩阵 A=[[a,b,c],[d,e,f],[g,h,i]] ,行列式det(A) = aei + bfg + cdh - ceg - bdi - afh

行列式的计算方法:

  • 对于 1*1 的矩阵,行列式为 A[0][0]
  • 对于 2*2 的矩阵,行列式为 ad - bc
  • 对于 3*3 的矩阵,行列式为 aei + bfg + cdh - ceg - bdi - afh
  • 对于 n*n 的矩阵,行列式的计算方法为:
    • 先将矩阵左上角的元素移到右下角,再将剩下的元素按顺时针方向填入,直到左下角的元素为止。
    • 对于填入的元素,如果该元素所在的行列号的和该元素所在的列号的差等于 n-1,则该元素为主元素,否则为次元素。
    • 主元素的乘积为该元素所在行列号的和,次元素的乘积为该元素所在行列号的差。
    • 最后,所有主元素的乘积相加,再减去所有次元素的乘积。

矩阵的转置:

矩阵的转置是指矩阵的行列互换。

对于一个 n * m 的矩阵 A,它的转置矩阵是 m * n 的矩阵,记作 A^T。

对于一个 2*2 的矩阵 A=[[a,b],[c,d]] ,它的转置矩阵是 [[a,c],[b,d]] 。

对于一个 3*3 的矩阵 A=[[a,b,c],[d,e,f],[g,h,i]] ,它的转置矩阵是 [[a,d,g],[b,e,h],[c,f,i]] 。

逆矩阵

一个方针A,如果存在一个矩阵B,使得 A * B 等于单位矩阵I,则称A是可逆的,B就是A的逆矩阵,记作 A ^ -1。

如果A可逆,则A的逆矩阵存在,且唯一。

矩阵的逆矩阵存在的充分必要条件是矩阵的行列式不为0

矩阵的逆矩阵的计算方法:

  • 首先,计算矩阵的行列式det(A)。
  • 然后,如果det(A)不等于0,则计算矩阵的adjugate矩阵adj(A)。
  • 最后,计算adj(A)的逆矩阵,即adj(A) * (1/det(A))。

矩阵的秩(rank)是指矩阵的行列式的绝对值,记作 rang(A)。

特征值和特征向量、特征分解与奇异值分解

特征值和特征向量

对于一个方阵A,如果存在一个数λ和一个非零向量v,使得Av = λv,则称λ为A的特征值,v为A的特征向量。 简单说就是,特征向量是将通过矩阵A变换后依然保持方向不变的矢量,特征值是在变换过程中缩放矢量的因子。

求解:

Av-λv = 0 (A-λI)v = 0 ,其中I是单位矩阵,要想这个方程有非零解,必须有: det(A-λI)=0

这个方程称为特征多项式,特征多项式的根即为矩阵A的特征值。

计算特征向量:对于每一个特征值λ,都可以找到一个对应的特征向量v,使得Av = λv。

  • 对于2*2的矩阵,特征值只有一个,特征向量就是矩阵的逆矩阵。
  • 对于3*3的矩阵,特征值只有3个,特征向量就是矩阵的主对角线上的元素。
  • 对于n*n的矩阵,特征值有n个,特征向量就是矩阵的n个主元对应的单位向量。

应用:

  • 图像压缩:将图像的像素值压缩到一个小的范围内,使得图像的质量不变,同时减少存储空间。
  • 数据降维:特征值和特征向量用于找到数据的主成分,从而实现降维。
  • 矩阵运算:特征值和特征向量用于进行矩阵运算,如PCA、SVD等。
  • 信号处理:信号的频谱可以分解为低频成分和高频成分,通过奇异值分解可以找到信号的主要成分。
  • 系统稳定性分析:特征值判断系统是否是稳定的,如果特征值全部为0,则系统是稳定的。
  • 模式识别:特征向量用于特征提取和数据表示。

特征分解

特征分解是指将矩阵A分解为其特征向量和特征值。 对于一个 n * n 的矩阵A,如果存在n个线性无关的特征向量,可以将A分解为: A = v Λ v^-1,其中v是特征向量组,Λ是特征值组。 其中,𝑉 是由特征向量作为列向量构成的矩阵,Λ 是一个对角矩阵,对角线上是对应的特征值。

奇异值分解(SVD)

奇异值分解(SVD)是指将矩阵A分解为三个矩阵U、Σ、V,其中U、V是正交矩阵,Σ是对角矩阵。

应用:

  • 数据压缩:svd 用于图像压缩,保留主要特征,减少存储空间。
  • 推荐系统: SVD 用于推荐系统,找到用户的兴趣偏好,推荐相关物品。
  • 图像处理:SVD 用于图像处理,提取图像的主要特征,并进行降维。
  • 矩阵运算:SVD 用于矩阵运算,如PCA、SVD等。
  • 信号处理:SVD 用于信号处理,提取信号的主要成分。

特征值和特征向量、特征分解与奇异值分解在数据分析、机器学习和各种科学与工程领域中都有重要的应用。通过理解这些概念和它们的计算方法,我们可以更好地分析和处理复杂的数据。