線性代數

CheZiHe929發表於2024-05-03

線性代數

線性

對於函式 \(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})\) 和 $

線性變換

矩陣表示

  1. 找出轉移所需的全部元素,列到一個向量裡
  2. 考慮轉移
  3. 矩陣快速冪最佳化
  • 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

太難了,不適合我 qwq,咕咕咕。


\(\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}\)

相關文章