第一课 高斯消元
首先介绍最普遍的线性代数方程的形式
通常被写成
其中[A] 为矩阵, {x} and {b} 为向量。
如果学过线性代数,可以知道最简单的求联立方程的方式就是高斯消元,比如看下面这个例子:
为了达成成消元的目的,我们可以把等式a乘2之后加到b上,这样b中的x1项就被消除了,同样,我们也可以用等式a乘0.5,可以消除c中的x1项。
这个进程可以用公式写为
对于得出的结果,进一步进程为
经过变化之后,这个矩阵将变成:
其中[u]叫做上三角矩阵,这个方程中未知数很好得到,x3=3.5/2.5,然后x2=(4-10x3)/5,最后x1=(1-(-5)x3-1x2)/10,这种迭代求解方式叫做‘向后代入求解’,对应向后代入求解,对于下三角矩阵,也有‘向前代入求解’。
下面说一下python的程序,python的基本语法,大家可以参照任意一本语法书来学习,或者有些语法问题大家一起讨论,首先python语言里只能用列表来表示矩阵,所以矩阵我都是采用numpy库来赋值的:
#线性联立方程组的高斯消元
import numpy as np
import math
n=3
a=np.array([[10,1,-5],[-20,3,20]