线性代数
线性代数
线性
对于函数 \(f(x)\)(在实数域上)是线性的,当且仅当:对于任意 \(x,y,c\),有 \(f(x+y)=f(x)+f(y)\) 和 \(f(cx)=cf(x)\)。
定义域和值域:\(c\) 是“数”,\(x\) 和 \(f(x)\) 均为“可运算的元素”
向量表示与矩阵
向量
向量 \(\vec{v}\),是一个纵向的列表,列表的每个元素都是一个数。有时也可称作列向量,并把向量的长度称为向量的维数。
可以用一个 \(n\) 维向量描述一个对象的 \(n\) 个属性。
向量加法:
\(\vec{u}+\vec{v}=\begin{bmatrix}u_1 \\u_2 \\\vdots \\u_n \end{bmatrix}+\begin{bmatrix}v_1 \\v_2 \\\vdots \\v_n \end{bmatrix}=\begin{bmatrix}u_1+v_1 \\u_2 +v_2\\\vdots \\u_n+v_n \end{bmatrix}\)
向量数乘:
\(c\vec{v}=c\begin{bmatrix}v_1 \\v_2 \\\vdots \\v_n \end{bmatrix}=\begin{bmatrix}cv_1 \\cv_2 \\\vdots \\cv_n \end{bmatrix}\)
若函数 \(f\) 满足 \(f(\vec{u})+f(\vec{v})=f(\vec{u}+\vec{v})\) 和 \(cf(\vec{v})=f(c\vec{v})\),则 \(f(\begin{bmatrix}x_1 \\x_2 \\\vdots \\x_n \end{bmatrix})=c_1x_1+c_2x_2+\dots+c_nx_n\)
线性变换
线性函数的返回值可以是一个向量。
如果线性函数 \(f\) 满足 \(f(\vec{v})=\vec{w}\),即参数和返回值都是向量,则 \(f\) 是一个线性变换。
把一个三维向量映射为另一个三维向量的线性函数必然具有以下形式:
\(f(\begin{bmatrix}x_1 \\x_2 \\x_n \end{bmatrix})=\begin{bmatrix}c_{1,1}x_1+c_{1,2}x_2+c_{1,3}x_3 \\c_{2,1}x_1+c_{2,2}x_2+c_{2,3}x_3 \\c_{3,1}x_1+c_{3,2}x_2+c_{3,3}x_3\end{bmatrix}\)
也可以据此扩展为 \(n\) 维向量得到 \(m\) 维向量的线性变换。
据此,导出了我们描述线性变换的一般方法——矩阵。
矩阵
懒得打了,就截个图吧 qwq
矩阵 \(A\) 和向量 \(\vec{v}\) 的积可以直接写成 \(A\vec{v}\),再在左侧乘上矩阵 \(B\),则得到 \(BA\vec{v}\)。
显然,\(f(\vec{v})=BA\vec{v}\) 是一个线性变换,又根据线性变换的式子可得 \(f(\vec{v})=C\vec{v}\),由此就得到了矩阵乘法——\(C=BA\)。
具体地,如果 \(n\times m\) 的矩阵 \(A\) 和 \(m\times p\) 的矩阵 满足 \(AB=C\),则 \(C\) 是一个 \(n\times p\) 的矩阵,且有 \(C_{i,j}=\sum\limits_{k=1}^m A_{i,k}B_{k,j}\)。
其他定义
-
\(n=m\) 的矩阵称为方阵。只有主对角线是 \(1\) 其它位置都是 \(0\) 的 \(n\) 阶方阵称为 \(n\) 阶单位矩阵,记作 \(I\),任何矩阵乘上单位矩阵均不变。
-
将矩阵行列交换后得到的矩阵称为它的转置,矩阵 \(A\) 的转置 记作 \(A^T\)。对于两个矩阵 \(A,B\),有 \((AB)^T=B^TA^T\)(注意调换行列后应 \(B\) 矩阵在前)。
-
\(i>j\) 的位置值全为 \(0\) 的方阵被称为上三角矩阵,\(i<j\) 的位置值全为 \(0\) 的矩阵被称为下三角矩阵。
矩阵表示
当题目中出现变换或者转移的时候,就可以尝试用向量和矩阵来描述这个变换或者转移:
- 找出转移所需的全部元素,列到一个向量里
- 考虑描述转移
- 可以使用矩阵快速幂优化
- Problem 1
计算连分数,单点修改+查询。
- Problem 2
给定三个长度为 \(n\) 的序列 \(a,b,sum\),初始全为 \(0\),要求支持区间 \(a_i+=c,b_i+=c,sum_i+=a_i\times b_i\),查询 \(sum\) 区间和。
用线段树在每个下标处维护一个向量,转移向量为 \(\begin{bmatrix}1 \\a_i \\b_i \\a_ib_i \\sum_i \end{bmatrix}\)
线段树维护五阶矩阵 \(O(125 n \log n)\),考虑优化。
注意到该矩阵是一个下三角矩阵,只枚举满足 \(i\le j\le k\) 的下标,优化为 \(O(35 n \log n)\)。
注意到矩阵中有许多的无效项(对角线、\(a_i\) 对 \(b_i\) 的值永远是 \(0\)),因此可以跳过,变为四阶矩阵,优化为近 \(O(10n \log n)\)。
- P7739 NOI2021 密码箱
太难了,不适合我 qwq,咕咕咕。
线性空间
线性基
笔记咕一下。
-
P3812 【模板】线性基
-
Problem 1
第 \(k\) 小异或值。
-
时间戳线性基
高斯消元
- 初等行变换
\(\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix}\)