zoukankan      html  css  js  c++  java
  • 高斯消元

    简介

    高斯消元 主要用于求线性方程组,也可以求矩阵的秩、矩阵的逆

    时间复杂度为 (O(n^3))

    思想:初中解方程的加减消元,最后得到类似 (kx = b) ,然后逐一往回带,求出其他的未知数

    解方程

    [egin{cases} 3x + 2y + z = 6~~① \ \ 2x + 2y + 2z = 4~~②\ \ 4x - 2y - 2z = 2~~③ end{cases} ]

    (x)

    ① 式除以 3,然后让 ② - 2 * ①,③ - 4 * ① 得到

    [egin{cases} x + frac {2}{3}y + frac{1}{3}z = 2~~④ \ \ frac{2}{3}y + frac{3}{4}z = 0~~⑤\ \ -frac{14}{3}y - frac{10}{3}z = -6~~⑥ end{cases} ]

    然后让 ⑤ 除以 (frac{2}{3}), 然后让 ⑥ - ⑤ * ((-frac{14}{3}))

    得到

    [egin{cases} y + 2z = 0~~⑦\ ~~\ frac{18}{3} z = -6~~⑧ end{cases} ]

    由 ⑧ 得 (z = -1)

    然后再把 (z = 1) 代入 ⑦ 得到 (y = 2)

    然后把 (z=1,y = 2) 代入 ④ 得到 (x = 1)

    矩阵运算消元

    把上面的柿子的系数放在矩阵中

    [left[ egin{array}{ccc|c} x&y&z&val\ 3&2&1&6\ 2&2&2&4\ 4&-2&-2&2 end{array} ight] ]

    左边是系数,右边是结果

    然后再这个矩阵中进行上述操作

    消去 x

    [left[ egin{array}{ccc|c} x&y&z&val\ 1&frac{2}{3}&frac{1}{3}&2\ 0&frac{2}{3}&frac{4}{3}&0\ 0&-frac{14}{3}&-frac{10}{3}&-6 end{array} ight] ]

    消去 y

    [left[ egin{array}{ccc|c} x&y&z&val\ 1&frac{2}{3}&frac{1}{3}&2\ 0&1&2&0\ 0&0&frac{18}{3}&-6 end{array} ight] ]

    解得

    [left[ egin{array} 11\ 2\ -1\ end{array} ight] ]

    判断解得情况

    • 无解:若有一行系数全是 0,且 val 不为 0,那么方程无解

    [left[ egin{array}{ccc|c} x&y&z&val\ 1&frac{2}{3}&frac{1}{3}&2\ 0&1&2&0\ 0&0&0&-7 end{array} ight] ]

    • 有多个解,有多行系数和 val 都为 0

    [left[ egin{array}{ccc|c} x&y&z&val\ 1&frac{2}{3}&frac{1}{3}&2\ 0&0&0&0\ 0&0&0&0 end{array} ight] ]

    优点:可以判断无解,有无数解情况

    缺点:需要回代

    高斯-约当消元

    高斯消元是执行到第 (i) 个方程 (x_k) 去消后面的 (x_k) , 而约当消元是同时消掉前面的 (x_k)

    初始形式:

    [left[ egin{array}{ccc|c} x&y&z&val\ 3&2&1&6\ 2&2&2&4\ 4&-2&-2&2 end{array} ight] ]

    最终形式

    [left[ egin{array}{ccc|c} x&y&z&val\ 1&0&0&?\ 0&1&0&?\ 0&0&1&? end{array} ight] ]

    呈对角线形式

    优点:省掉了回代过程

    缺点:只能判断是否有唯一解,不能判断是否有解

    P3389 【模板】高斯消元法

    code

    写在最后

    鸣谢Alex_McAvoy 提供栗子

  • 相关阅读:
    120所国家重点建设大学(211工程和教育部直属)[国家一类本科大学]详细情况一览表
    VC画线几个常见方法
    中国地学35个国家重点实验室分布一览
    可执行文件加入Linux默认路径的办法
    SVN 常用命令 客户端
    ls(list) linux 功能说明
    Vim
    Linux添加FTP用户并设置权限
    tar [cxtzjvfpPN] 文件与目录
    linux etc/passwd 有关
  • 原文地址:https://www.cnblogs.com/Arielzz/p/14942187.html
Copyright © 2011-2022 走看看