高斯消元法
算法简介
\(高斯消元法(Gauss Elimination)\) 是一种用于解多元一次方程组的方法。其主要方法就是消元,通过一步一步的消元从而求解这个方程组
算法详解
其实高斯消元法
就是我们在初中数学中学到的加减消元法,只不过高斯消元法
的元会很多。
我们先了解一下“元”和“次”的意思。“元”就代表这个方程或者代数式中含有的未知数的个数;而“次”就代表代数式中最高的次数。
那么\(n\)元一次方程就是形如:$$\begin{cases} a_{1, 1} x_1 + a_{1, 2} x_2 + \cdots + a_{1, n} x_n = b_1 \ a_{2, 1} x_1 + a_{2, 2} x_2 + \cdots + a_{2, n} x_n = b_2 \ \cdots \ a_{n,1} x_1 + a_{n, 2} x_2 + \cdots + a_{n, n} x_n = b_n \end{cases}$$ 再了解一下解\(n\)元一次方程组的本质。就是将方程组中的元不断的减少,直到减成一个元的时候就可以解了,就变成了一元一次方程了。
一元一次方程
先来看一下如何解一元一次方程,本质上就是将所有的常数移动到右边,带有\(x\)项的移到左边,然后再用常熟将\(x\)的系数除掉就好了。这个是大家小学就学过的。
不妨看一下解方程的步骤。
解方程:$$ax+b=c$$ 移项,将\(b\)移到等式右边:$$ax=c-b$$ 除系数,将\(x\)的系数除掉,也就是将\(x\)的系数变为\(1\):$$x=\frac{c-b}{a}$$ 这是一个很基本的解方程的过程。但是要注意,任何情况下分母都不能为\(0\),所以这个方程要在第二步时进行分类讨论,这是一个很重要的步骤。那我们来看一下分类讨论:
-
- 当\(a\not=0\)时,此时方程的解为\(x=\frac{c-b}{a}\)
-
- 当\(a=0\)且\(c-b=0\)时,此时方程变成了这样:\(0x=0\),那么\(x\)取任意值的时候都成立,所以方程有无数个解
-
- 当\(a=0\)且\(c-b\not=0\)时,此时方程变为:\(0x\not=0\),那么\(x\)取任意值时都不会成立,所以方程无解
二元一次方程组
看完一元一次的方程后来看一下二元一次方程组。
解方程(假设有实数解):$$\begin{cases} ax_1+bx_2=c \ dx_1+ex_2=f\end{cases}$$ 首先进行消元,由于我们这里讲的是加减消元,所以先将第一个方程的\(x_1\)的系数变成\(1\):$$\begin{cases} x_1+\frac{b}{a}x_2=\frac{c}{a} \ dx_1+ex_2=f\end{cases}$$ 再将第一个方程的\(x_1\)的系数变成\(d\):$$\begin{cases} dx_1+\frac{db}{a}x_2=\frac{dc}{a} \ dx_1+ex_2=f\end{cases}$$ 再将上下两式相减,\(x1\)消掉了:$$(e-\frac{db}{a})x_2=f-\frac{dc}{a}$$除去系数:$$x_2=\frac{f-\frac{dc}{a}}{e-\frac{db}{a}}$$带回原式解得:$$x_1=\frac{c-\frac{bf-\frac{bdc}{a}}{e-\frac{db}{a}}}{a}$$