代数学
矩阵
-
基本概念
-
矩阵定义
-
一个 n × m n\times m n×m的矩阵是 n n n 行 m m m 列的矩形阵列,一般由数组成
-
矩阵 A \mathbf{A} A 的第 i i i 行,第 j j j 列,通常记为 A i j \mathbf{A}_{ij} Aij
-
单位矩阵:对角线上为 1 1 1,其他都为 0 0 0 的矩阵。
I = d e f ( 1 … 0 ⋮ ⋱ ⋮ 0 … 1 ) \Large{I} \overset{{\small def} }{=}\begin{pmatrix} 1& \dots &0 \\ \vdots & \ddots &\vdots \\ 0 & \dots &1 \end{pmatrix} I=def 1⋮0…⋱…0⋮1
-
-
矩阵加法
- 矩阵的加法定义为每行每列的元素分别相加(减),即
I = A ± B = ( A 1 , 1 ± B 1 , 1 … A 1 , m ± B 1 , m ⋮ ⋱ ⋮ A n , 1 ± B n , 1 … A n , m ± B n , m ) \Large{I} =\Large{A\pm B}=\begin{pmatrix} A_{1,1}\pm B_{1,1}& \dots & A_{1,m}\pm B_{1,m} \\ \vdots & \ddots &\vdots \\ A_{n,1}\pm B_{n,1}& \dots & A_{n,m}\pm B_{n,m} \end{pmatrix} I=A±B= A1,1±B1,1⋮An,1±Bn,1…⋱…A1,m±B1,m⋮An,m±Bn,m
- 矩阵的加法定义为每行每列的元素分别相加(减),即
-
矩阵乘法
-
当一个矩阵的列数等于另一个的行数时,可定义该两个矩阵的乘积。
-
设 A A A 是 n × m n\times m n×m 的矩阵, B B B 是 m × p m\times p m×p 的矩阵,他们的乘积 C C C 是一个 n × p n\times p n×p 的矩阵。
C i , j = ∑ k = 1 m A i , k × B k , j \Large{C_{i,j}=\sum_{k=1}^m A_{i,k}\times B_{k,j}} Ci,j=k=1∑mAi,k×Bk,j
-
-
矩阵的幂
A 0 = I A n = A N − 1 × A ( n > 0 ) \Large{\begin{align} &A^0=I\\ &A^n=A^{N-1}\times A(n>0) \end{align} } A0=IAn=AN−1×A(n>0) -
矩阵的转置
- n × m n\times m n×m 的矩阵 A A A 的转置 A T A^T AT 是个 m × n m\times n m×n 的矩阵,可以通过 A A A 交换行列得到,即 A i , j T = A j , i A^T_{i,j}=A_{j,i} Ai,jT=Aj,i
-
矩阵的逆
- 只有 n × n n\times n n×n 的矩阵可能存在逆,矩阵 A A A 的逆 B B B 满足 A × B = B × A = I A \times B= B\times A = I A×B=B×A=I
- 如果逆存在,则 B B B 是唯一的,一般记做 A − 1 A^{-1} A−1 。
-
-
性质
- 矩阵乘法满足分配率、结合律,不一定满足交换率。
- 矩阵加法满足交换率和结合律。
-
算法
- 矩阵满足结合律,所以在求矩阵的幂的时候可以使用快速幂加速
-
用途
- 递推可以表示成向量乘以矩阵,然后用快速幂优化
行列式
-
基本概念
-
行列式是一个定义域为 n × n n\times n n×n 的矩阵,值域为一个标量的函数,通常记为 d e t ( A ) \mathrm{det}(A) det(A) 或者 ∣ A ∣ |A| ∣A∣。
-
行列式也可以表示为n维广义欧几里得空间中的有向体积。
-
一个 n × n n\times n n×n 的行列式定义为
d e t ( A ) = d e f ∑ σ ∈ S n ( − 1 ) n ( σ ) ∏ i = 1 n a i , σ ( i ) \Large{\mathrm{det}(A)\overset{{\small def} }{=}\sum_{\sigma \in S_n}(-1)^{n(\sigma) }\prod_{i=1}^{n}a_{i,\sigma(i)}} det(A)=defσ∈Sn∑(−1)n(σ)i=1∏nai,σ(i)- 其中 S n S_n Sn 表示集合 { 1 , 2 , … , n } \{1,2,…,n\} {1,2,…,n} 上的置换的全体
- n ( σ ) n(\sigma) n(σ) 是对于一个置换中逆序对的个数,逆序对的定义为满足 1 ≤ i < j ≤ n 1≤i<j≤n 1≤i<j≤n 且 σ ( i ) > σ ( j ) \sigma(i)>\sigma(j) σ(i)>σ(j) 的 ( i , j ) (i,j) (i,j)
-
-
性质
-
若矩阵中一行或一列全为 0 0 0,那么该矩阵行列式为 0 0 0。
-
若矩阵中某一行有公因子 k k k,那么可以提出 k k k
D = ∣ k a 1 , 1 ⋯ k a 1 , n ⋮ ⋱ ⋮ a n , 1 ⋯ a n , n ∣ = k ∣ a 1 , 1 ⋯ k a 1 , n ⋮ ⋱ ⋮ a n , 1 ⋯ a n , n ∣ = k D 1 \large{D= \begin{vmatrix} ka_{1,1}&\cdots & ka_{1,n} \\ \vdots & \ddots &\vdots \\ a_{n,1}&\cdots &a_{n,n} \end{vmatrix} =k \begin{vmatrix} a_{1,1}&\cdots &ka_{1,n} \\ \vdots & \ddots &\vdots \\ a_{n,1}&\cdots &a_{n,n} \end{vmatrix} =kD_1} D= ka1,1⋮an,1⋯⋱⋯ka1,n⋮an,n =k a1,1⋮an,1⋯⋱⋯ka1,n⋮an,n =kD1 -
在矩阵中某一行可拆分成两个数和,那么该行列式可拆分成两个行列式相加。
D = ∣ a 1 , 1 + b 1 , 1 ⋯ a 1 , n + b 1 , 1 ⋮ ⋱ ⋮ a n , 1 ⋯ a n , n ∣ = ∣ a 1 , 1 ⋯ a 1 , n ⋮ ⋱ ⋮ a n , 1 ⋯ a n , n ∣ + ∣ b 1 , 1 ⋯ b 1 , n ⋮ ⋱ ⋮ a n , 1 ⋯ a n , n ∣ \large{D= \begin{vmatrix} a_{1,1}+b_{1,1}&\cdots & a_{1,n}+b_{1,1} \\ \vdots & \ddots &\vdots \\ a_{n,1}& \cdots &a_{n,n} \end{vmatrix} = \begin{vmatrix} a_{1,1}&\cdots &a_{1,n} \\ \vdots & \ddots &\vdots \\ a_{n,1}&\cdots &a_{n,n} \end{vmatrix} + \begin{vmatrix} b_{1,1}&\cdots &b_{1,n} \\ \vdots & \ddots &\vdots \\ a_{n,1}&\cdots &a_{n,n} \end{vmatrix} } D= a1,1+b1,1⋮an,1⋯⋱⋯a1,n+b1,1⋮an,n = a1,1⋮an,1⋯⋱⋯a1,n⋮an,n + b1,1⋮an,1⋯⋱⋯b1,n⋮an,n
- 交换矩阵的两行,行列式取反。
D = ∣ a 1 , 1 ⋯ a 1 , n ⋮ ⋱ ⋮ a n , 1 ⋯ a n , n ∣ = − ∣ a n , 1 ⋯ a n , n ⋮ ⋱ ⋮ a 1 , 1 ⋯ a 1 , n ∣ \large{D= \begin{vmatrix} a_{1,1}&\cdots & a_{1,n} \\ \vdots & \ddots &\vdots \\ a_{n,1}&\cdots &a_{n,n} \end{vmatrix} =- \begin{vmatrix} a_{n,1}&\cdots &a_{n,n} \\ \vdots & \ddots &\vdots \\ a_{1,1}&\cdots &a_{1,n} \end{vmatrix} } D= a1,1⋮an,1⋯⋱⋯a1,n⋮an,n =− an,1⋮a1,1⋯⋱⋯an,n⋮a1,n
- 将一行的k倍加到另一行上,行列式不变。
D = ∣ a 1 , 1 ⋯ a 1 , n ⋮ ⋱ ⋮ a n , 1 ⋯ a n , n ∣ = ∣ a 1 , 1 + k a n , 1 ⋯ a 1 , 1 + k a n , n ⋮ ⋱ ⋮ a n , 1 ⋯ a n , n ∣ \large{D= \begin{vmatrix} a_{1,1}&\cdots & a_{1,n} \\ \vdots & \ddots &\vdots \\ a_{n,1}&\cdots &a_{n,n} \end{vmatrix} = \begin{vmatrix} a_{1,1}+ka_{n,1}&\cdots &a_{1,1}+ka_{n,n} \\ \vdots & \ddots &\vdots \\ a_{n,1}&\cdots &a_{n,n} \end{vmatrix} } D= a1,1⋮an,1⋯⋱⋯a1,n⋮an,n = a1,1+kan,1⋮an,1⋯⋱⋯a1,1+kan,n⋮an,n
-
转置,行列式不变, ∣ A ∣ = ∣ A T ∣ |A|=|A^T| ∣A∣=∣AT∣
-
当矩阵是上三角矩阵或者是下三角矩阵时,行列式的值等于对角线的乘积
-
-
算法
- 一个常见的求解矩阵行列式的算法是对矩阵做行变换,将矩阵转化成为上三角矩阵,再得出行列式的值。
解线性方程组
-
基本概念
-
解线性方程组即求解方程组
{ a 1 , 1 x 1 + a 1 , 2 x 2 + ⋯ + a 1 , n x n = b 1 ⋮ a m , 1 x 1 + a m , 2 x 2 + ⋯ + a m , n x n = b m \Large{\left\{\begin{matrix} a_{1,1}x_1+a_{1,2}x_2+\cdots+a_{1,n}x_n=b_1\\ \vdots \\ a_{m,1}x_1+a_{m,2}x_2+\cdots+a_{m,n}x_n=b_m \end{matrix}\right.} ⎩ ⎨ ⎧a1,1x1+a1,2x2+⋯+a1,nxn=b1⋮am,1x1+am,2x2+⋯+am,nxn=bm -
可以表示为 A x = b \mathbf{Ax}=\mathbf{b} Ax=b,其中 A \mathbf{A} A 是 m × n m\times n m×n 的矩阵, x \mathbf{x} x 是 n n n 维列向量, b \mathbf{b} b 是 m m m 维列向量,即
( a 1 , 1 … a 1 , n ⋮ ⋱ ⋮ a m , 1 … a m , n ) ( x 1 ⋮ x n ) = ( b 1 ⋮ b m ) \Large{\begin{pmatrix} a_{1,1}&\dots & a_{1,n}\\ \vdots &\ddots &\vdots \\ a_{m,1} &\dots & a_{m,n} \end{pmatrix} \begin{pmatrix} x_{1}\\ \vdots\\ x_{n} \end{pmatrix}= \begin{pmatrix} b_{1}\\ \vdots\\ b_{m} \end{pmatrix}} a1,1⋮am,1…⋱…a1,n⋮am,n x1⋮xn = b1⋮bm
-
-
算法
-
高斯消元
-
矩阵的初等变换:
-
行初等变换:
- 互换矩阵的两行。
- 用非零的常数乘矩阵的某一行。
- 某行的k倍加到另一行。
-
列初等变换:
- 互换矩阵的两列。
- 用非零的常数乘矩阵的某一列。
- 某行的k倍加到另一列。
-
-
用增广矩阵进行高斯消元
( a 1 , 1 … a 1 , n b 1 ⋮ ⋱ ⋮ ⋮ a m , 1 … a m , n b m ) \Large{\begin{pmatrix} a_{1,1}&\dots & a_{1,n}&b_1\\ \vdots &\ddots &\vdots &\vdots\\ a_{m,1} &\dots & a_{m,n}&b_m \end{pmatrix}} a1,1⋮am,1…⋱…a1,n⋮am,nb1⋮bm - 只需要利用行初等变换,将矩阵消成上三角矩阵,即可简单地计算出线性方程的解。
如 : ( 1 1 1 1 1 1 2 2 1 2 3 6 ) = ( 1 1 1 1 0 0 1 1 1 2 3 6 ) = ( 1 1 1 1 0 0 1 1 0 1 2 5 ) ( 1 1 1 1 0 1 2 5 0 0 1 1 ) → X = ( − 3 3 1 ) 如:\begin{pmatrix} 1& 1 & 1&1\\ 1& 1&2 &2\\ 1 &2 &3&6 \end{pmatrix}= \begin{pmatrix} 1& 1 & 1&1\\ 0& 0&1 &1\\ 1 &2 &3&6 \end{pmatrix}= \begin{pmatrix} 1& 1 & 1&1\\ 0& 0&1 &1\\ 0 &1 &2&5 \end{pmatrix} \begin{pmatrix} 1& 1 & 1&1\\ 0 &1 &2&5\\ 0& 0&1 &1 \end{pmatrix} \to \mathbf{X}= \begin{pmatrix} -3\\ 3\\ 1 \end{pmatrix} 如: 111112123126 = 101102113116 = 100101112115 100110121151 →X= −331
-
-
克莱姆法则
-
当 A \mathbf{A} A 为 n × n n\times n n×n 的矩阵时,可使用克莱姆法则求解,方程的解为:
x i = D i D \Large{x_i=\frac{D_i}{D}} xi=DDi -
其中 D D D 是 A \mathbf{A} A 的行列式 D = ∣ A ∣ D=| \mathbf{A} | D=∣A∣, D i D_i Di 是将 A \mathbf{A} A 中第 i i i 列替换为 b \mathbf{b} b 后得到的矩阵的行列式。
-
-
-
用途
- 求解可逆矩阵的逆矩阵
- 对于一个 n × n n\times n n×n 的非奇异矩阵,在矩阵右侧补上一个 n × n n\times n n×n 的单位矩阵。
- 对于这个 n × ( 2 n ) n\times (2n) n×(2n) 的矩阵通过高斯消元,使得这个矩阵左侧变为一个 n × n n\times n n×n 的单位矩阵。
- 右侧那个 n × n n\times n n×n 的矩阵即为原矩阵的逆矩阵。
- 同模方程组也可使用高斯消元,在除法时用乘逆元代替。
- 由于只有在模为素数情况下,非零数的逆元才唯一,所以,素数模才能保证有唯一解。
- 求解行列式的值。
- 通过高斯消元,将矩阵消成上三角。行列式的值即为对角线上所有数的乘积。
- 求解可逆矩阵的逆矩阵
-
扩展
- 使用绝对值较大的主元进行消元,能达到比较好的效果
- 可以使用辗转相除代替直接除法,这样可以保证系数为整数,保证精度。
多项式
-
基本概念
-
多项式定义
- 给定一个数域 R R R,变量 x x x,一元多项式的形式( a i ∈ R a_i \in R ai∈R 且 a n ≠ 0 a_n \ne 0 an=0)
f ( x ) = ∑ i = 0 n a i x i \Large{f(x)=\sum_{i=0}^{n}a_i x^i} f(x)=i=0∑naixi
-
多项式性质
- 多项式的项数等于 a i a_i ai 中不为 0 0 0 的个数。
- 多项式的次数等于 n n n。
- 多项式中次数最高的项成为首项
- 首项的系数等于一,即 a n = 1 a_n =1 an=1 的多项式称做首一多项式。
-
多项式运算
-
多项式加(减)法:对应次数系数相加(减)。
f ( x ) ± g ( x ) = ∑ i = 0 n a i x i ± ∑ i = 0 n b i x i = ∑ i = 0 n ( a i ± b i ) x i \Large{f(x)\pm g(x) =\sum_{i=0}^{n}a_i x^i\pm\sum_{i=0}^{n}b_i x^i=\sum_{i=0}^{n}(a_i\pm b_i)x^i} f(x)±g(x)=i=0∑naixi±i=0∑nbixi=i=0∑n(ai±bi)xi -
多项式乘法:两个多项式的每一项都相乘
f ( x ) ⋅ g ( x ) = ∑ i = 0 n a i x i ⋅ ∑ i = 0 n b i x i = ∑ i = 0 n ∑ j = 0 n ( a i b j ) x i + j \Large{f(x)· g(x) =\sum_{i=0}^{n}a_i x^i·\sum_{i=0}^{n}b_i x^i=\sum_{i=0}^{n}\sum_{j=0}^{n}(a_i b_j)x^{i+j}} f(x)⋅g(x)=i=0∑naixi⋅i=0∑nbixi=i=0∑nj=0∑n(aibj)xi+j -
多项式除法与整数除法类似
- 多项式 g ( x ) g(x) g(x) 整除 f ( x ) f(x) f(x) ,当存在多项式 h ( x ) h(x) h(x), f ( x ) = g ( x ) h ( x ) f(x)=g(x)h(x) f(x)=g(x)h(x), g ( x ) g(x) g(x) 称做 f ( x ) f(x) f(x) 的因式。同整数的因数分解类似,多项式也可以进行因式分解。
- 如果多项式 d ( x ) d(x) d(x) 是 f ( x ) f(x) f(x) 的因式也是 g ( x ) g(x) g(x) 的因式,那么称 d ( x ) d(x) d(x) 是 f ( x ) f(x) f(x) 和 g ( x ) g(x) g(x) 的公因式。
- 多项式 d ( x ) d(x) d(x) 称为 f ( x ) f(x) f(x) 和 g ( x ) g(x) g(x) 的最大公因式如果它满足, d ( x ) d(x) d(x) 是 f ( x ) f(x) f(x) 和 g ( x ) g(x) g(x) 的公因式,且 f ( x ) f(x) f(x) 和 g ( x ) g(x) g(x) 的所有公因式都是 d ( x ) d(x) d(x) 的因式,记作 g c d ( f ( x ) , g ( x ) ) gcd(f(x),g(x)) gcd(f(x),g(x))。
-
-
-
性质
- ( 1 + x ) n = ∑ i = 0 n C n i x i (1+x)^n=\sum_{i=0}^n C_n^ix^i (1+x)n=∑i=0nCnixi,其中 C n i C_n^i Cni 为组合数
- n n n 个点可以唯一确定一个 n n n 次多项式。
- 一个 n n n 次多项式有 n n n 个复数根。
-
-
代码实现
//多项式中的项数定义 class Term implements Comparable<Term> { int degree; double coefficient; Term(double item_co,int item_de) { this.degree=item_de; this.coefficient=item_co; } Term() { this.degree=0; this.coefficient=0; } @Override public int compareTo(Term other) { // 按照degree的升序排序 return other.degree - this.degree; } } //多项式定义 public class Polynomial { //通过优先队列保证次数的有序 PriorityQueue<Term> polynomial; public Polynomial() { polynomial = new PriorityQueue<>(); } public Polynomial(Polynomial a) { polynomial = new PriorityQueue<>(); for(Term term: a.polynomial) { polynomial.add(term); } } //通过数组初始化 public Polynomial(double[] coefficients, int[] degrees) { if (coefficients.length != degrees.length) { throw new IllegalArgumentException("Error Arguments"); } polynomial = new PriorityQueue<>(); for (int i = 0; i < coefficients.length; i++) { polynomial.add(new Term(coefficients[i], degrees[i])); } } public int getDegree() { if(!polynomial.isEmpty()) return polynomial.peek().getDegree(); else return -1; } } public class polyCalculation { Polynomial add(Polynomial p, Polynomial q) { Polynomial result = new Polynomial(); Polynomial a= new Polynomial(p); Polynomial b= new Polynomial(q); Term curA=null,curB=null; while (!a.polynomial.isEmpty() || !b.polynomial.isEmpty()) { if(a.getDegree()==b.getDegree()) { curA=a.polynomial.poll(); curB=b.polynomial.poll(); double res_coe=curA.getcoefficient()+curB.getcoefficient(); result.polynomial.add(new Term(res_coe,curA.getDegree())); } else if(a.getDegree()>b.getDegree()) { curA=a.polynomial.poll(); result.polynomial.add(curA); } else { curB=b.polynomial.poll(); result.polynomial.add(curB); } } return result; } Polynomial sub(Polynomial p, Polynomial q) { Polynomial result = new Polynomial(); Polynomial a= new Polynomial(p); Polynomial b= new Polynomial(q); Term currentA=null,currentB=null; while (!a.polynomial.isEmpty() || !b.polynomial.isEmpty()) { if(a.getDegree()==b.getDegree()) { currentA=a.polynomial.poll(); currentB=b.polynomial.poll(); double res_coe=currentA.getcoefficient()-currentB.getcoefficient(); result.polynomial.add(new Term(res_coe,currentA.getDegree())); } else if(a.getDegree()>b.getDegree()) { currentA=a.polynomial.poll(); result.polynomial.add(currentA); } else { currentB=b.polynomial.poll(); double res_coe=-currentB.getcoefficient(); result.polynomial.add(new Term(res_coe,currentB.getDegree())); } } return result; } //模拟乘法 Polynomial product_term(Polynomial p, Term q) { Polynomial result = new Polynomial(); Polynomial a= new Polynomial(p); while(!a.polynomial.isEmpty()) { Term tmp=a.polynomial.poll(); double tmp_coe=tmp.getcoefficient()*q.getcoefficient(); int tmp_degree=tmp.getDegree()+q.getDegree(); result.polynomial.add(new Term(tmp_coe,tmp_degree)); } return result; } Polynomial product(Polynomial p, Polynomial q) { Polynomial result = new Polynomial(); Polynomial a= new Polynomial(p); Polynomial b= new Polynomial(q); while(!a.polynomial.isEmpty()) { Term term=a.polynomial.poll(); Polynomial tmp = product_term(b,term); result=add(result,tmp); } return result; } Polynomial quick_pow(Polynomial p, int time) { Polynomial result = new Polynomial(); Polynomial a= new Polynomial(p); if(time==0) { result.polynomial.add(new Term(1,0)); return result; } else if(time==1) { return a; } Polynomial temp = quick_pow(p, time / 2); if (time % 2 == 1) return product(product(temp, temp),a); else return product(temp, temp); } Polynomial[] divide(Polynomial p, Polynomial q) { //返回商和余数 Polynomial quotient = new Polynomial(); Polynomial remainder = new Polynomial(); Polynomial a= new Polynomial(p); Polynomial b= new Polynomial(q); if(q.polynomial.isEmpty()) //如果除数为0 return null; else if(q.getDegree()>p.getDegree()) //如果除数次数更大 return new Polynomial[]{new Polynomial(),b}; //做一次模拟多项式除法 Term cur_A=null,cur_B=null,tmp=null; Polynomial storage, tail; cur_A=a.polynomial.poll(); cur_B=b.polynomial.peek(); double cal_coe=cur_A.coefficient / cur_B.coefficient; int cal_degree=cur_A.degree - cur_B.degree; Term cal_term = new Term(cal_coe, cal_degree); //得到商的第一个项 quotient.polynomial.add(cal_term); //计算剩下的项 Polynomial cal_polynomial=product_term(q,cal_term); tmp=cal_polynomial.polynomial.poll(); storage=sub(a,cal_polynomial); //递归进行计算 Polynomial[] tmp_result=divide(storage,b); tail = tmp_result[0]; while(tail!=null&&!tail.polynomial.isEmpty()) { tmp=tail.polynomial.poll(); quotient.polynomial.add(tmp); } remainder=storage; //返回结果 return new Polynomial[]{quotient, remainder}; } }
-
-
算法
- 用牛顿迭代法求解方程的根。
复数
-
基本概念
-
复数是由实部和虚部组成的数,通常有两种表示方式
- z = a + b i z=a+bi z=a+bi, a a a 和 b b b 都是实数, i i i 是虚单位根,满足 i 2 = − 1 i^2=-1 i2=−1, ∣ z ∣ = d e f x 2 + y 2 |z|\overset{{\small def} }{=}\sqrt{x2+y2} ∣z∣=defx2+y2 表示复数的模长
- z = R e i φ = R ( c o s ( φ ) + i s i n ( φ ) ) z=Re^{iφ}=R(\mathrm{cos}(φ)+i\mathrm{sin}(φ)) z=Reiφ=R(cos(φ)+isin(φ)),其中 R = ∣ z ∣ R=|z| R=∣z∣, e i φ = c o s ( φ ) + i s i n ( φ ) e^{iφ}=\mathrm{cos}(φ)+i\mathrm{sin}(φ) eiφ=cos(φ)+isin(φ)
-
两复数相等当且仅当它们的实部与虚部分别相等。
-
复数四则运算
-
加法: ( a + b i ) + ( c + d i ) = ( a + c ) + ( b + d ) i (a+bi)+(c+di)=(a+c)+(b+d)i (a+bi)+(c+di)=(a+c)+(b+d)i
-
减法: ( a + b i ) − ( c + d i ) = ( a − c ) + ( b − d ) i (a+bi)-(c+di)=(a-c)+(b-d)i (a+bi)−(c+di)=(a−c)+(b−d)i
-
乘法
- ( a + b i ) ⋅ ( c + d i ) = ( a c − b d ) + ( a d + b c ) i (a+bi)·(c+di)=(ac-bd)+(ad+bc)i (a+bi)⋅(c+di)=(ac−bd)+(ad+bc)i
- R 1 ( c o s ( φ 1 ) + i s i n ( φ 1 ) ) ⋅ R 2 ( c o s ( φ 2 ) + i s i n ( φ 2 ) ) = R 1 × R 2 ( c o s ( φ 1 + φ 2 ) + i s i n ( φ 1 + φ 2 ) ) R_1(\mathrm{cos}(φ1)+i\mathrm{sin}(φ1)) ·R_2(\mathrm{cos}(φ2)+i\mathrm{sin}(φ2))=R_1\times R_2(\mathrm{cos}(φ1+φ2)+i\mathrm{sin}(φ1+φ2)) R1(cos(φ1)+isin(φ1))⋅R2(cos(φ2)+isin(φ2))=R1×R2(cos(φ1+φ2)+isin(φ1+φ2))
-
除法
( a + b i ) ( c + d i ) = ( a + b i ) ( c − d i ) ( c + d i ) ( c − d i ) = ( a c + b d ) + ( b c − a d ) i c 2 + d 2 = ( a c + b d c 2 + d 2 ) + ( b c − a d c 2 + d 2 ) i \frac{(a+bi)}{(c+di)}=\frac{(a+bi)(c-di)}{(c+di)(c-di)}=\frac{(ac+bd)+(bc-ad)i}{c^2+d^2}=\Big(\frac{ac+bd}{c^2+d^2}\Big)+\Big(\frac{bc-ad}{c^2+d^2}\Big)i (c+di)(a+bi)=(c+di)(c−di)(a+bi)(c−di)=c2+d2(ac+bd)+(bc−ad)i=(c2+d2ac+bd)+(c2+d2bc−ad)i
-
-
复数旋转
- 一个向量
(
x
,
y
)
(x,y)
(x,y) 旋转
φ
φ
φ,可以视为两个复数,
x
+
y
i
x+yi
x+yi 乘以
c
o
s
(
φ
)
+
s
i
n
(
φ
)
i
cos(φ)+sin(φ)i
cos(φ)+sin(φ)i,等于
x c o s ( φ ) − y s i n ( φ ) + ( y c o s ( φ ) + x s i n ( φ ) ) i \Large{xcos(φ)-ysin(φ)+(ycos(φ)+xsin(φ))i} xcos(φ)−ysin(φ)+(ycos(φ)+xsin(φ))i
- 一个向量
(
x
,
y
)
(x,y)
(x,y) 旋转
φ
φ
φ,可以视为两个复数,
x
+
y
i
x+yi
x+yi 乘以
c
o
s
(
φ
)
+
s
i
n
(
φ
)
i
cos(φ)+sin(φ)i
cos(φ)+sin(φ)i,等于
-
群
-
群
- 在数学中,群是一种代数结构,由一个集合 S S S 与一个二元运算 ⋅ \cdot ⋅ 组成(由集合和定义在这个集合上的运算组成)
- 要成为群,还需要满足一些条件
- 封闭性,即 ∀ a , b ∈ S , a ⋅ b ∈ S \forall a, b \in S, a \cdot b \in S ∀a,b∈S,a⋅b∈S
- 结合律,即 ∀ a , b , c ∈ S , ( a ⋅ b ) ⋅ c = a ⋅ ( b ⋅ c ) \forall a, b, c \in S,(a \cdot b) \cdot c=a \cdot(b \cdot c) ∀a,b,c∈S,(a⋅b)⋅c=a⋅(b⋅c)
- 单位元,即有一个元素 e e e, ∀ a ∈ S , e ⋅ a = a ⋅ e = a \forall a \in S, e \cdot a=a \cdot e=a ∀a∈S,e⋅a=a⋅e=a )(在群 G \mathrm{G} G 中常用 1 G 1_{\mathrm{G}} 1G 或 1 1 1 表示单位元)。
- 逆元,即 ∀ a ∈ S \forall a \in S ∀a∈S, ∃ b ∈ S , a ⋅ b = b ⋅ a = e \exists b \in S, a \cdot b=b \cdot a=e ∃b∈S,a⋅b=b⋅a=e,记 b = a − 1 b=a^{-1} b=a−1
- 可以定义元素 a a a 的幂为: a 0 = e a^{0}=e a0=e, a n = a n − 1 ⋅ a a^{n}=a^{n-1} \cdot a an=an−1⋅a, a − n = ( a n ) − 1 a^{-n}=\left(a^{n}\right)^{-1} a−n=(an)−1。
- 特殊的群
- 整数加法群
(
Z
,
+
,
0
)
(\mathbb{Z},+, 0)
(Z,+,0), 是由整数 $\mathbb{Z} $ 和整数加法运算
+
+
+ 组成。
- 其单位元 0 0 0 ;
- 封闭性: ∀ a , b ∈ Z , a + b ∈ Z \forall a, b \in \mathbb{Z}, a+b \in \mathbb{Z} ∀a,b∈Z,a+b∈Z ;
- 结合律: ∀ a , b , c ∈ Z , ( a + b ) + c = a + ( b + c ) \forall a, b, c \in \mathbb{Z},(a+b)+c=a+(b+c) ∀a,b,c∈Z,(a+b)+c=a+(b+c);
- 逆元: ∀ a ∈ Z , a − 1 = − a \forall a \in \mathbb{Z}, a^{-1}=-a ∀a∈Z,a−1=−a 。
- 群
(
R
∗
,
×
,
1
)
\left(\mathbb{R}^{*}, \times, 1\right)
(R∗,×,1) , 它是由非零实数
R
∗
=
R
\
{
0
}
\mathbb{R}^{*}=\mathbb{R} \backslash\{0\}
R∗=R\{0} 和实数乘法 $\times $ 组成。
- 其单位元 1 ;
- 封闭性: ∀ a , b ∈ R ∗ , a × b ∈ R ∗ \forall a, b \in \mathbb{R}^{*}, a \times b \in \mathbb{R}^{*} ∀a,b∈R∗,a×b∈R∗ ;
- 结合律 : ∀ a , b , c ∈ R ∗ , ( a × b ) × c = a × ( b × c ) \forall a, b, c \in \mathbb{R}^{*},(a \times b) \times c=a \times(b \times c) ∀a,b,c∈R∗,(a×b)×c=a×(b×c) ;
- 逆元 : ∀ a ∈ R ∗ , a − 1 = 1 / a \forall a \in \mathbb{R}^{*}, a^{-1}=1/a ∀a∈R∗,a−1=1/a 。
- 整数加法群
(
Z
,
+
,
0
)
(\mathbb{Z},+, 0)
(Z,+,0), 是由整数 $\mathbb{Z} $ 和整数加法运算
+
+
+ 组成。
-
子群
- 设 G G G 是群, ϕ ≠ H ⊆ G \phi≠H\subseteq G ϕ=H⊆G,若 H H H 具封闭性、单位元、逆元,称 H H H 是 G G G 的一个子群,记号 H ≤ G H≤G H≤G。
- 若
H
H
H满足以下条件,则
H
H
H 是
G
G
G 的一个子群
- 1 G = 1 H ∈ H 1_G=1_H∈H 1G=1H∈H;
- ∀ a , b ∈ H , a ⋅ b ∈ H \forall a,b∈H,a·b∈H ∀a,b∈H,a⋅b∈H;
- ∀ a ∈ H , a − 1 ∈ H \forall a∈H,a^{-1}∈H ∀a∈H,a−1∈H。
- 作为群公理之一的结合律,因为 H H H 继承了 G G G 的运算,所以自然成立,因此,子群也是群。
-
元素的阶
- 在群
G
G
G 中,定义元素
g
g
g 的阶
o
(
g
)
o(g)
o(g),为使
g
n
=
1
G
g^n=1_G
gn=1G 成立的最小自然数
n
n
n
- 如果此自然数不存在,则记作 o ( g ) = ∞ o(g)=\infty o(g)=∞。
- 在群
G
G
G 中,定义元素
g
g
g 的阶
o
(
g
)
o(g)
o(g),为使
g
n
=
1
G
g^n=1_G
gn=1G 成立的最小自然数
n
n
n
-
循环群
- 设 g g g 是群 G G G 中一个取定的元素,若群 G G G 的任意一个元素 a a a 可以写成 a = g n , n ∈ Z a=g^n,n∈Z a=gn,n∈Z 的形式,则称 G G G 循环群称 g g g 为群 G G G 的一个生成元,可写成 G = < g > G=<g> G=<g>。
-
交换群
-
具有交换性的群称为交换群。
- 交换性: ∀ a , b ∈ G , a b = b a \forall a,b∈G,ab=ba ∀a,b∈G,ab=ba。
-
一般线性群 G L ( n ) GL(n) GL(n) 由所有 n × n n\times n n×n 的可逆矩阵和矩阵乘法组成,它不是交换群,
-
-
置换群
-
设 A A A 是一个非空集合, A A A^A AA 是 A A A 到 A A A 上的所有的置换的集合,在 A A A^A AA 上定义二元运算为映射的复合。
-
记 S S S 为 A A A 上所有可逆映射的集合,则 S S S 关于映射的复合构成群。
-
当 A A A 是有限集合时,可设 A = { 1 , 2 , … , n } A=\{1,2,…,n\} A={1,2,…,n},则 A A A 上的可逆变换可表示
f = ( 1 2 … n − 1 n i 1 i 2 … i n − 1 i n ) \Large{f=\begin{pmatrix} 1& 2& \dots &n-1 &n \\ i_1& i_2& \dots &i_{n-1} &i_n \end{pmatrix}} f= 1i12i2……n−1in−1nin
其中 i 1 i 2 … i n i_1i_2…i_n i1i2…in 为一个 n − n- n−排列, i j i_j ij 表示将 j j j 位置上的元素换到 j j j 位置。这样一个变换称作 n n n 次置换,形成的群称作 n n n 次置换群。所有 n n n 次置换形成的群记做 S n S_n Sn。 -
( i 1 i 2 … i n ) (i_1i_2…i_n) (i1i2…in) 满足 f ( i 1 ) = i 2 , f ( i 2 ) = i 3 , … , f ( i k − 1 ) = i k , f ( i k ) = i 1 f(i_1)=i_2,f(i_2)=i_3,…,f(i_{k-1})=i_k,f(i_k)=i_1 f(i1)=i2,f(i2)=i3,…,f(ik−1)=ik,f(ik)=i1,称 ( i 1 i 2 … i n ) (i_1i_2…i_n) (i1i2…in) 为一个循环节。显然,一个置换可以拆成若干个循环节,所以可以将置换用循环节表示。
-
-
群作用
-
设 G G G 为群, S S S 为集合,考虑一个映射 ∘ \circ ∘
G × S → S ( g , x ) ↦ g ∘ x G \times S \to S\\(g,x)\mapsto g\circ x G×S→S(g,x)↦g∘x -
若此映射满足
- 1 G ∘ x = x , ∀ x ∈ S 1_G \circ x = x,\forall x \in S 1G∘x=x,∀x∈S
- ( g h ) ∘ = g ∘ ( h ∘ x ) , ∀ x ∈ S , ∀ g , h ∈ G (gh)\circ =g\circ (h \circ x),\forall x\in S,\forall g,h\in G (gh)∘=g∘(h∘x),∀x∈S,∀g,h∈G
- 称映射 ∘ \circ ∘ 是 G G G 在 S S S 上的一个群作用。
-
例子: S 3 S_3 S3 在 T = { a , b , c } T=\{a,b,c\} T={a,b,c} 上有群作用 ∘ \circ ∘: S 3 × T → T , ( f , t ) ↦ f ∘ t = f ( t ) S_3 \times T \to T,(f,t) \mapsto f\circ t=f(t) S3×T→T,(f,t)↦f∘t=f(t), f = ( 1 2 3 2 3 1 ) f=\begin{pmatrix}1& 2& 3 \\ 2& 3&1\end{pmatrix} f=(122331),可得 f ∘ a = f ( a ) = b , f ∘ b = f ( b ) = c , f ∘ c = f ( c ) = a f \circ a =f(a)=b,f \circ b =f(b)=c,f \circ c =f(c)=a f∘a=f(a)=b,f∘b=f(b)=c,f∘c=f(c)=a
-
-
轨道
-
设 ∘ \circ ∘ 是 G G G 在 S S S 上的一个群作用,对于一个元素 x ∈ S x∈S x∈S,集合 O x = { g ∘ x ∣ g ∈ G } O_x=\{g \circ x|g∈G\} Ox={g∘x∣g∈G} 称为 x x x 所在的轨道,也记为 G ∘ x G \circ x G∘x 。
-
可以从轨道诱导出集合上的一个等价关系。若已知集合 S S S 和作用在 S S S 上的群 G G G ,定义集合 S S S 上的二元关系 ~ , ∀ x , y ∈ S \forall x,y∈S ∀x,y∈S, x x x~ y y y如果 O x = O y O_x=O_y Ox=Oy。
-
-
稳定子
-
设 $\circ $ 是 G G G 在 S S S 上的一个群作用,对于一个元素 x ∈ S x∈S x∈S,集合 S t a b x = { g ∈ G ∣ g ∘ x = x } \mathrm{Stab}_x=\{g∈G|g\circ x=x\} Stabx={g∈G∣g∘x=x} 称为 x x x 在 G G G 中的稳定子。不难发现, S t a b x \mathrm{Stab}_x Stabx为 G G G 的一个子群。
-
一个元素 x x x 的稳定子 S t a b x \mathrm{Stab}_x Stabx 与轨道 O x O_x Ox 满足
c a r d ( O x ) = c a r d ( G ) c a r d ( S t a b x ) \Large{\mathrm{card}(O_x)=\frac{\mathrm{card}(G)}{\mathrm{card}(\mathrm{Stab}_x)}} card(Ox)=card(Stabx)card(G)
-