
任务四 求解线性方程组
知识目标
掌握高斯消去法求解线性方程组的基本原理。了解Excel自带函数和Excel规划求解法处理线性方程组的方法。
能力目标
能运用高斯消去法进行手工求解线性方程组,能将高斯消去法和Excel单元格驱动相结合求解线性方程组。
化学化工中,用线性代数方法描述复杂的化学反应、定义多原子和多分子体系的线性空间、计算各种物质的物理化学性质的加和方法、物料衡算和能量衡算、确定反应体系的独立反应数、化工量纲分析中确定独立变量数以及某些分析化学计算等,都常常要运用线性代数方程组的计算。
线性代数方程组的解法大体上可分为两大类,即迭代法与直接法。由于直接法具有计算量较小、结果精确的特点,故又称精确法,目前求解线性方程组以采用直接法为多。以下将介绍求解线性方程组的基本原理,并着重讲解如何利用Excel进行求解的详细步骤。
一、线性方程组的求解方法
消元法是求解线性方程组常用的一种直接方法。这种方法的优点是可以预先估计计算的工作量,并且根据消元法的基本原理,可以得到有关矩阵运算的一些方法,故其应用很广泛。
☆思考:何谓高斯消元法?
(一)消元法
消元法亦称高斯(Gauss)消去法,其基本思想是通过线性变换将原线性方程组转化为三角形方程组(消元),然后再进行求解(回代)。消元法分为消元和回代两个过程。下面以一个四阶方程组为例说明消元法的基本过程。
(1)消元过程
所谓消元,是指逐步减少方程式中变量的数目。为此将一个方程式乘以(或除以)某个常数,然后在方程式之间作加减运算。为便于说明,将式(1-25)写作增广矩阵的形式
消元过程的第一步
若a11≠0(若a11=0,总可以通过方程次序互换,使满足a11≠0),将第一行各元素乘以(-ai1/a11)后加到第i行(i=2,3,4),则可得
消元过程的第二步
又若(若a2(1)2=0,同样可以通过方程次序互换,使满足
;将第二行各元素乘以
后加到第i行(i=3,4),则可得
消元过程的第三步
再若,将第三行各元素乘以
后加到第i行(i=4),则可得
至此消元过程完成,式(1-29)中原方程组的系数矩阵化为一上三角矩阵,原方程组(1-25)等价于如下三角形方程组
注意消元过程中利用了这样两条运算规则:
①某方程各项除或乘同一非零数所得方程组与原方程组等价;
②某方程与另一方程相加或相减所得方程组与原方程组等价。
(2)回代过程
所谓回代,即从最后一个方程式直接解出
将x4代入上一式,解出x3
逐次往前计算,便可求出全部xi。
按此类推,n阶线性方程组,即
式(1-33a)也可表达为
其消元法的计算公式和步骤可归纳如下:
①消元过程 依次按k=1,2,…,n-1计算下列系数
②回代过程
对于一个n阶方程组,采用高斯消元法需作n-1次消元过程。消去第一列(n-1)个系数需作乘法运算次数为n(n-1),消去第二列中(n-2)个系数需作(n-2)(n-1)次乘法运算,……,最后消去第(n-1)列中一个系数需作1×2次乘法,总计消去过程的乘法运算次数为
其次为使第i个方程的xi系数为1时需作除法运算次数为
因此消元过程总运算次数为
在回代过程中需作乘法运算次,除法运算n次。所以整个高斯消元过程运算总次数为
由此可见,采用高斯消元法求解高阶线性方程组的工作量很大,手工求解不太可能,如n=10时,总运算次数为430次。
(二)高斯主元消去法
由式(1-28)可知,消元过程需用系数矩阵的对角线元素ak,k(通常称为主元素)做除数。若主元素为零,总能通过行交换找到非零ak,k,但若主元素很小,由于舍入误差及有效数字损失,其本身常有较大误差,再用它作除数,则会带来严重的误差增长,以致使最终解极不准确,由此提出了高斯列主元消去法,即在消元之前应对方程组的首行或首列元素进行检查,并将其中绝对值最大者调整到首行或首列。这种方法称为主元消去法。
根据误差分析,若选取主元素的绝对值最大的方程作为主方程,则所得的解的误差最小。选取主元素的方法有三种。
①遍查方程组第一式中的所有元素(不包括常数项),并找出其中绝对值最大者作为主元素,然后将主元素及其所在列的其他元素与第一列各对应元素互换位置。这种选取主元素的方法,称为行主元法。
②遍查方程组第一列中的所有元素,并找出其中绝对值最大者作为主元素,然后将主元素及其所在行的其他元素与第一式的各对应元素互换位置。这种选取主元素的方法,称为列主元法。
③同时采用行主元法与列主元法选取主元素,称为全主元法。
二、手工求解线性方程组
以下通过具体实例讲解如何应用上述方法求解线性方程组。
【例1-9】 采用高斯消元法求解以下三阶方程组
2x1-x2+3x3=1
4x1+2x2+5x3=4
x1+2x2=7
解:对于三阶方程,采用高斯消元法需要二次消元过程。此三阶线性方程组经过两次消元过程即可将原方程组化为上三角形方程组,消元过程如下:
回代过程是将上三角形方程组自下而上逐步进行求解,从而得出
x3=-6,x2=-1,x1=9
三、采用Excel求解线性方程组
以下仍以例1-9为例,介绍如何运用Excel求解线性方程组的两种方法:①高斯消去法与Excel单元格驱动相结合求解线性方程组;②Excel自带的函数求解线性方程组。
(一)高斯消去法与Excel单元格驱动相结合求解线性方程组
具体步骤如下。
步骤1:打开Excel,将线性方程的增广矩阵依次输入单元格A6:D8中,如图1-44所示。

图1-44 Excel求解线性方程组方法一之示意图1
步骤2:第一次消元,选中A6:D6,复制并粘贴到A10:D10,如图1-45,这样做的目的是保留原线性方程。在单元格A11中输入消元公式:=A7-A6/$A$6*$A$7,选中A11,自动填充到D11;在单元格A12中输入消元公式:=A8-A6/$A$6*$A$8,选中A12,自动填充到D12,第一次消元完成后的各方程系数及常数项的数值如图1-45所示。

图1-45 Excel求解线性方程组方法一之示意图2
步骤3:第二次消元,选中A10:D11,采用选择性粘粘方法将其数值复制到A14:D15,如图1-46。在单元格B16中输入第二次消元公式:=B12-B11/$B$11*$B$12,选中B16,自动填充到D16,至此完成整个消元过程。

图1-46 Excel求解线性方程组方法一之示意图3
步骤4:回代,如图1-47所示,分别在单元格B18、D18、F18中输入:=D16/C16、=(D15-C15*B18)/B15、=(D14-C14*B18-B14*D18)/A14即可得线性方程组的解,即:

图1-47 Excel求解线性方程组方法一之示意图4
x3=-6,x2=-1,x1=9
(二)采用Excel自带函数求解线性方程组
步骤1:求系数行列式的值,如图1-48所示,在A23:C25区域中输入系数行列式。选择单元格D23,输入“=MDETERM( )”,在“( )”输入框中输入区域A23:C25,单击“确定”,得方程组系数行列式的值为“-7”。由线性方程组求解知识可知,若方程组系数行列式的值不为0,说明系数矩阵有逆矩阵,方程组有唯一解。

图1-48 Excel自带函数求解线性方程组之示意图1
步骤2:求矩阵的逆。选择3行3列的一个区域,如A27:C29,如图1-49所示,输入“=MINVERSE( )”,在“( )”中输入A23:C25,同时按下Ctrl、Shift、Enter键,得逆阵。

图1-49 Excel自带函数求解线性方程组之示意图2
步骤3:求方程的解,即逆矩阵与列向量b的乘积,如图1-50所示。选择一个1列3行区域,如D27:D29,输入列向量b,即1、4、7;另选一个1列3列区域,如E27:E29,输入“=MMULT( )”,在“( )”中输入:“A27:C29,D27:D29”,同时按下Ctrl、Shift、Enter键,即可在区域E27:E29中得方程组解。

图1-50 Excel自带函数求解线性方程组之示意图3
四、技能拓展——Excel规划求解法解线性方程组
除采用单元格驱动结合高斯消去法、Excel自带的函数求解线性方程组外,Excel的规划求解法也可用于求解线性方程组,以下仍以例1-9为例,介绍规划求解法的具体处理过程。
步骤1:如图1-51所示,依次在单元格B33、B34、B35中输入3个方程的表达式,即:=2*A33-A34+3*A35、=4*A33+2*A34+5*A35、=A33+2*A34+0*A35,其中A33、A34、A35分别代表x1、x2、x3。

图1-51 Excel规划求解法求解线性方程组之示意图1
步骤2:选中B33,单击“数据”,选择“规划求解”,调出“规划求解参数”对话框,如图1-52所示。选择值为( <文字颜色>V</文字颜色> ),输入第一个方程的常数项值“1”。可变单元格输入框中输入:$A$33:$A$35。

图1-52 Excel规划求解法求解线性方程组之示意图2
步骤3:设置约束条件,在“约束”窗口中单击“添加”按钮,出现“添加约束”对话框,如图1-53所示。在单元格引用位置输入$B$34,约束值前选择“=”,其值输入4,即第二个方程常数项的值。以同样的方法添加另一约束条件,即第三个方程常数项的值。

图1-53 Excel规划求解法求解线性方程组之示意图3
步骤4:求解计算,添加完约束条件后,在约束窗口就多了两个表达式,即$B$34=4、$B$35=7,如图1-54所示。按“求解”按钮,得“结果”对话框,此时在A33:A35位置出现方程组的解。

图1-54 Excel规划求解法求解线性方程组之示意图4
可见,采用Excel的三种求解线性方程组的计算结果是完全一致的。