-1.序言
- 想了解更多关于数论的内容,可戳这里
说到线性方程组,大家第一反应大概就是高斯消元,本文将对其详细讲解并配合例题与相关方法为您呈现。
本文因图文并茂有较多配图且讲解详细较多,再过多的放置代码会引起文章的冗长以及阅读的不适,故只将模板放在上面。
另特别鸣谢@command_block,原因见下图:
(灵感所在),这是出处
0、由来
遇到形如:
{ a 11 x 1 + a 12 x 2 + . . . + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + . . . + a 2 n x n = b 2 . . . . . . . . . a n 1 x 1 + a n 2 x 2 + . . . + a n n x n = b n \begin{cases}a_{11}x_1+a_{12}x_2+...+a_{1n}x_n=b_1\\a_{21}x_1+a_{22}x_2+...+a_{2n}x_n=b_2\\. . .\\. . .\\. . .\\a_{n1}x_1+a_{n2}x_2+...+a_{nn}x_n=b_n\end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧a11x1+a12x2+...+a1nxn=b1a21x1+a22x2+...+a2nxn=b2.........an1x1+an2x2+...+annxn=bn
这样的方程组,你会怎么解呢?
如果是在数学领域中,可能这样的方程组中方程的个数是屈指可数的,这样就特别简单,一通乱搞就出来了。
但是如果在OI领域遇到这类问题呢?我们发现,计算机中必须由固定的算法,才能实现某一问题,而人脑能进行综合性的思考,但是却无法将大脑中的神经元活动表述到程序中,这是人脑与电脑的区别,也就由此诞生了各种解线性方程组的方法。
说到这里,我想起了一本著名的书:计算机与人脑。冯诺依曼写的,有兴趣者可以自行购买阅读也能普及一些历史
这种线性的方程组在工程中也运用广泛,这种模型中:
-
未知量较多
-
方程个数不同
而在考虑解方程时,要考虑:
-
是否有解?
-
如果有解,是否唯一?
-
如果不唯一,解有什么规律与结构?
由此,线性方程组的解决方法就显得尤为重要。
下面就来介绍一下两种常用的方法及相关例题
1、高斯消元
插播一些历史知识:
该方法以数学家高斯命名,由拉布扎比.伊丁特改进,发表于法国但最早出现于中国古籍《九章算术》,成书于约公元前150年。
自豪ingQAQ
高斯:
为德国著名数学家、物理学家、天文学家、几何学家,大地测量学家。享有“数学王子”的美誉,真的是多才多艺,著名的“自然数1~100的求和问题”就是他9岁时计算出来的,虽然可能现在对我们来说轻而易举,但是的确体现了他那时的创新精神,为日后的研究打下了坚实的基础。
这种是大家比较耳熟能详的解法了。
那么,这种解法的核心思想是什么呢?
我们先来构想一下,什么样子的线性方程式我们用电脑也能写出解法?
显然,我们如果从某一个式子开始,每一个式子都能得到一个未知数的解,而得到了这个未知数的解,又能代入另一个方程,再得到一个未知数的解。
以此类推。
没错就是本萌新最擅长的无脑递推
总结一下,就是一个“三角形分割”《----(自己瞎起的名字)
还是拿上面那个普遍形式:
{ a 11 x 1 + a 12 x 2 + . . . + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + . . . + a 2 n x n = b 2 . . . . . . . . . a n 1 x 1 + a n 2 x 2 + . . . + a n n x n = b n \begin{cases}a_{11}x_1+a_{12}x_2+...+a_{1n}x_n=b_1\\a_{21}x_1+a_{22}x_2+...+a_{2n}x_n=b_2\\. . .\\. . .\\. . .\\a_{n1}x_1+a_{n2}x_2+...+a_{nn}x_n=b_n\end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧a11x1+a12x2+...+a1nxn=b1a21x1+a22x2+...+a