高斯消元
高斯消元:解线性方程组
有 n n n 个未知数: x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn
a 1 1 x 1 1 + a 1 2 x 1 2 + . . . + a 1 n x 1 n = b 1 a_{1_1}x_{1_1}+a_{1_2}x_{1_2}+...+a_{1_n}x_{1_n}=b_1 a11x11+a12x12+...+a1nx1n=b1
a 2 1 x 2 1 + a 2 2 x 2 2 + . . . + a 2 n x 2 n = b 2 a_{2_1}x_{2_1}+a_{2_2}x_{2_2}+...+a_{2_n}x_{2_n}=b_2 a21x21+a22x22+...+a2nx2n=b2
. . . . . . ...... ......
次数为 1 1 1
e . g . e.g. e.g. 斐波那契数列 : f i = f i − 1 + f i − 2 f_i=f_{i-1}+f_{i-2} fi=fi−1+fi−2
系数矩阵
a 1 1 a 1 2 a 1 3 . . . a 1 n a 2 1 a 2 2 a 2 3 . . . a 2 n a 3 1 a 3 2 a 3 3 . . . a 3 n . . . . . . . . . . . . . . . a n 1 a n 2 a n 3 . . . a n n \] \\left\[ \\begin{matrix} a_{1_1} \& a_{1_2} \& a_{1_3} \& ... \& a_{1_n} \\\\ a_{2_1} \& a_{2_2} \& a_{2_3} \& ... \& a_{2_n} \\\\ a_{3_1} \& a_{3_2} \& a_{3_3} \& ... \& a_{3_n} \\\\ ... \& ... \& ... \& ... \& ... \\\\ a_{n_1} \& a_{n_2} \& a_{n_3} \& ... \& a_{n_n} \\end{matrix} \\right\] a11a21a31...an1a12a22a32...an2a13a23a33...an3...............a1na2na3n...ann
##### 增广矩阵
\[ a 1 1 a 1 2 a 1 3 . . . a 1 n b 1 a 2 1 a 2 2 a 2 3 . . . a 2 n b 2 a 3 1 a 3 2 a 3 3 . . . a 3 n b 3 . . . . . . . . . . . . . . . . . . a n 1 a n 2 a n 3 . . . a n n b n \] \\left\[ \\begin{matrix} a_{1_1} \& a_{1_2} \& a_{1_3} \& ... \& a_{1_n} \& b_1\\\\ a_{2_1} \& a_{2_2} \& a_{2_3} \& ... \& a_{2_n} \& b_2\\\\ a_{3_1} \& a_{3_2} \& a_{3_3} \& ... \& a_{3_n} \& b_3\\\\ ... \& ... \& ... \& ... \& ... \& ... \\\\ a_{n_1} \& a_{n_2} \& a_{n_3} \& ... \& a_{n_n} \& b_n \\end{matrix} \\right\] a11a21a31...an1a12a22a32...an2a13a23a33...an3...............a1na2na3n...annb1b2b3...bn
##### 初等行变换:
1.交换两行
2.把某一行 × k ( k ≠ 0 ) \\times\~k\~(k ≠ 0) × k (k=0)
3.把某一行的 k k k 倍加到另一行上 ( k ∈ R ) (k\\in \\R) (k∈R)
#### 线性方程组的解的情况
##### 如果一个线性方程组有至少两个解,那么它一定有无穷多个解
设两个解:
{ x 1 , x 2 , x 3 , . . . , x n } \\{ x_1,x_2,x_3,...,x_n \\} {x1,x2,x3,...,xn}
{ x 1 ′ , x 2 ′ , x 3 ′ , . . . , x n ′ } \\{ x_1',x_2',x_3',...,x_n' \\} {x1′,x2′,x3′,...,xn′}
则: { x 1 − x 1 ′ , x 2 − x 2 ′ , x 3 − x 3 ′ , . . . , x n − x n ′ } \\{ x_1-x_1',x_2-x_2',x_3-x_3',...,x_n-x_n' \\} {x1−x1′,x2−x2′,x3−x3′,...,xn−xn′} 也成立
##### 所有情况: 0 0 0 个解 , 1 1 1 个解 ,无穷多个解
#### 阶梯型矩阵
每一行第一个不是 0 0 0 的数在上一行第一个不是 0 0 0 的数的严格右侧
##### e . g . e.g. e.g.
\[ 2 5 3 4 0 0 1 1 0 1 0 0 0 2 0 0 0 0 0 3 \] \\left\[ \\begin{matrix} 2 \& 5 \& 3 \& 4 \& 0 \\\\ 0 \& 1 \& 1 \& 0 \& 1 \\\\ 0 \& 0 \& 0 \& 2 \& 0 \\\\ 0 \& 0 \& 0 \& 0 \& 3 \\end{matrix} \\right\] 20005100310040200103
对于任意一个矩阵,我们在使用初等行变换的基础上,一列一列地将矩阵转换成阶梯型矩阵
如果 a 1 , 1 a_{1,1} a1,1 不是 0 0 0,让 r 2 + k ⋅ r 1 ( k ∈ R ) r_2\~+\~k\\cdot r_1(k\\in \\R) r2 + k⋅r1(k∈R),让其他行第一列为 0 0 0
同理,向下每一行如此处理
若 a 1 , 1 a_{1,1} a1,1 是 0 0 0,向下寻找第一个第一列不是 0 0 0 的第一行与矩阵第一行交换使其成为新的第一行进行上述操作
若这一列所有行均为 0 0 0,那么将这一列忽略掉
第一行处理完之后将剩下的部分 ( ( n − 1 ) 2 (n-1)\^2 (n−1)2 的矩阵)当成新的矩阵继续如此操作
##### 方程有解
阶梯型矩阵中最后一个含 0 0 0 的直角不在最后一列,方程有解
e . g . e.g. e.g.
\[ 2 0 5 2 0 1 4 3 0 0 2 1 \] \\left\[ \\begin{matrix} 2 \& 0 \& 5 \& 2 \\\\ 0 \& 1 \& 4 \& 3 \\\\ 0 \& 0 \& 2 \& 1 \\end{matrix} \\right\] 200010542231
##### 方程无解
反之,无解:
\[ 2 0 5 2 0 2 1 0 0 0 5 3 0 0 0 1 \] \\left\[ \\begin{matrix} 2 \& 0 \& 5 \& 2 \\\\ 0 \& 2 \& 1 \& 0 \\\\ 0 \& 0 \& 5 \& 3 \\\\ 0 \& 0 \& 0 \& 1 \\end{matrix} \\right\] 2000020051502031
##### 方程无穷多解
某一行含 0 0 0 直角未连续出现,成为断层:
\[ 2 0 5 2 0 2 1 0 0 0 0 3 0 0 0 1 \] \\left\[ \\begin{matrix} 2 \& 0 \& 5 \& 2 \\\\ 0 \& 2 \& 1 \& 0 \\\\ 0 \& 0 \& 0 \& 3 \\\\ 0 \& 0 \& 0 \& 1 \\end{matrix} \\right\] 2000020051002031
#### 简化阶梯型矩阵
满足下列三个条件的矩阵称为简化阶梯型矩阵:
1.它是一个阶梯形矩阵
2.非零行首元素均为 1 1 1
3.首元素所在列其他元素均为 0 0 0
##### 将矩阵转换为简化阶梯型矩阵
e . g . e.g. e.g.
\[ 2 1 1 2 1 0 2 1 3 1 1 5 \] \\left\[ \\begin{matrix} 2 \& 1 \& 1 \& 2 \\\\ 1 \& 0 \& 2 \& 1 \\\\ 3 \& 1 \& 1 \& 5 \\end{matrix} \\right\] 213101121215
1.
\[ 2 1 1 2 0 − 1 2 3 2 0 0 − 1 2 − 1 2 2 \] \\left\[ \\begin{matrix} 2 \& 1 \& 1 \& 2 \\\\ 0 \& -\\frac{1}{2} \& \\frac{3}{2} \& 0 \\\\ 0 \& -\\frac{1}{2} \& -\\frac{1}{2} \& 2 \\end{matrix} \\right\] 2001−21−21123−21202
2.
\[ 2 1 1 2 0 − 1 2 3 2 0 0 0 − 2 2 \] \\left\[ \\begin{matrix} 2 \& 1 \& 1 \& 2 \\\\ 0 \& -\\frac{1}{2} \& \\frac{3}{2} \& 0 \\\\ 0 \& 0 \& -2 \& 2 \\end{matrix} \\right\] 2001−210123−2202
(已成为阶梯型矩阵)
3.
\[ 1 1 2 1 2 1 0 1 − 6 0 0 0 1 − 1 \] \\left\[ \\begin{matrix} 1 \& \\frac{1}{2} \& \\frac{1}{2} \& 1 \\\\ 0 \& 1 \& -6 \& 0 \\\\ 0 \& 0 \& 1 \& -1 \\end{matrix} \\right\] 100211021−6110−1
4.
\[ 1 0 7 2 1 0 1 − 6 0 0 0 1 − 1 \] \\left\[ \\begin{matrix} 1 \& 0 \& \\frac{7}{2} \& 1 \\\\ 0 \& 1 \& -6 \& 0 \\\\ 0 \& 0 \& 1 \& -1 \\end{matrix} \\right\] 10001027−6110−1
5.
\[ 1 0 0 9 2 0 1 0 − 6 0 0 1 − 1 \] \\left\[ \\begin{matrix} 1 \& 0 \& 0 \& \\frac{9}{2} \\\\ 0 \& 1 \& 0 \& -6 \\\\ 0 \& 0 \& 1 \& -1 \\end{matrix} \\right\] 10001000129−6−1
##### 基础解系
三元一次方程在立体坐标系中,若三个未知数均有一个解,则在空间内呈点,若两个未知数有一个解,则在空间内呈线,若只有一个未知数有一个解,则在空间内呈平面
#### 代码实现
[P2455 \[SDOI2006\] 线性方程组](https://www.luogu.com.cn/problem/P2455)
```cpp
#include