锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【计算方法】#01 高斯消去法和列主元高斯消去法的原理简介及C++实现

时间:2023-12-30 07:37:02 p20k3aqj圆形连接器

#01 介绍高斯消去法和列主元高斯消去法的原理C 实现

      • 1. 高斯消去法
        • 1.1 算法的适用条件
        • 1.2 算法步骤和公式
        • 1.3 算法复杂度分析
        • 1.4 算法的C 实现
      • 2 列主元高斯消去法
        • 2.1 经典方法的致命问题
        • 2.2 根据列出主元步骤的算法描述
        • 2.3 算法复杂度分析
        • 2.4 算法优势
        • 2.5 算法的C 实现
      • References

解方程组: A x = b Ax=b Ax=b

1. 高斯消去法

1.1 算法的适用条件

满足以下条件任一即可

  1. 系数矩阵 A A A的各阶顺序主子式均不等于零(充要);

  2. 系数矩阵 A A A对称正定矩阵;

  3. 系数矩阵 A A A这是一个严格的对角占优矩阵,即对角线元素大于对应行的其他元素之和。

1.2 算法步骤和公式

消元过程(第 k k k次消元)
{ a i j ( k ) = a i j ( k ? 1 ) ? a i k ( k ? 1 ) a k k ( k ? 1 ) a k j ( k ? 1 ) = a i j ( k ? 1 ) ? l i k a k j ( k ? 1 ) , i = k 1 , k 2 , . . . , n ; j = k 1 , k 2 , . . . , n b i ( k ) = b i ( k ? 1 ) ? l i k b k ( k ? 1 ) , i = k 1 , k 2 , . . . , n l i k ? a i k ( k ? 1 ) a k k ( k ? 1 ) , i = k 1 , k 2 , . . . , n \begin{cases} &a_{ij}^{(k)}=a_{ij}^{(k-1)}-\frac{a_{ik}^{(k-1)}}{a_{kk}^{(k-1)}}a_{kj}^{(k-1)}=a_{ij}^{(k-1)}-l_{ik}a_{kj}^{(k-1)}, \\ &i=k 1,k 2,...,n; j=k 1,k 2,...,n \\ \\ &b_i^{(k)} = b_i^{(k-1)}- l_{ik}b_{k}^{(k-1)}, i=k 1,k 2,...,n \\ \\ &l_{ik} \triangleq \frac{a_{ik}^{(k-1)}}{a_{kk}^{(k-1)}}, i=k 1, k 2, ..., n \end{cases} ????aij(k)=aij(k1)akk(k1)aik(k1)akj(k1)=aij(k1)likakj(k1),i=k+1,k+2,...,n;j=k+1,k+2,...,nbi(k)=bi(k1)likbk(k1),i=k+1,k+2,...,nlikakk(k1)aik(k1),i=k+1,k+2,...,n

回代过程:
{ x n = b n ( n − 1 ) a n n ( n − 1 ) , x k = b k ( k − 1 ) − ∑ j = k + 1 n a k j ( k − 1 ) x j a k k ( k − 1 ) , k = n − 1 , n − 2 , . . . , 2 , 1 \left\{ \begin{aligned} x_n &= \frac{b_n^{(n-1)}}{a_{nn}^{(n-1)}},\\ x_k &= \frac{b_k^{(k-1)}-\sum\limits_{j=k+1}^{n}a_{kj}^{(k-1)}x_j}{a_{kk}^{(k-1)}}, k=n-1,n-2,...,2,1 \end{aligned} \right. xnxk=ann(n1)bn(n1),=akk(k1)bk(k1)j=k+1nakj(k1)xj,k=n1,n2,...,2,1

1.3 算法复杂度分析

令运算量为乘除法个数,则

消元过程: N 1 = ∑ k = 1 n − 1 ( n − k ) 2 + 2 ( n − k ) = n 3 / 3 + n 2 / 2 − 5 n / 6 N_1=\sum\limits_{k=1}^{n-1}(n-k)^2+2(n-k)=n^3/3+n^2/2-5n/6 N1=k=1n1(nk)2+2(nk)=n3/3+n2/25n/6

回代过程: N 2 = 1 + ( n − 1 ) + ∑ k = 1 n − 1 ( n − k ) = n 2 / 2 + n / 2 N_2=1 + (n-1) + \sum\limits_{k=1}^{n-1}(n-k)=n^2/2 + n/2 N2=1+(n1)+k=1n1(nk)=n2/2+n/2

高斯消去法总运算量: N = N 1 + N 2 = n 3 / 3 + n 2 − n / 3 N=N_1+N_2=n^3/3+n^2-n/3 N=N1+N2=n3/3+n2n/3

时间复杂度:

相关文章