何章鳴 馬正芳
摘要:在高斯消元法教學(xué)中有一個(gè)怪現(xiàn)象:很多學(xué)員“講解快懂,做題快懵”。作者查閱國(guó)內(nèi)外經(jīng)典教材中高斯消元法講義后,發(fā)現(xiàn)導(dǎo)致上述現(xiàn)象的關(guān)鍵原因是:傳統(tǒng)解法“消元一回代一寫(xiě)解”的步驟指代不清。在信息時(shí)代背景下,文章提出了“提取一變換一還原一移項(xiàng)一補(bǔ)齊”五步變換法,該方法更具體、更規(guī)范。結(jié)合數(shù)學(xué)軟件MATLAB將該方法付諸教學(xué)實(shí)踐,結(jié)果表明新方法過(guò)程具體、操作性強(qiáng),可有效提高學(xué)員的學(xué)習(xí)效率。
關(guān)鍵詞:課程設(shè)置;教學(xué)創(chuàng)新;線性代數(shù);高斯消元法;數(shù)學(xué)軟件
中圖分類(lèi)號(hào):G642.3 文獻(xiàn)標(biāo)識(shí)碼:A 收稿日期:2019-06-04 文章編號(hào):1674-120X(2019) 29-0104-02
一、引言
線性代數(shù)以向量、線性空間、線性變換和線性方程組等為對(duì)象,研究秩的等價(jià)不變性、特征值的相似不變性和慣性數(shù)的合同不變性,被廣泛地應(yīng)用于自然科學(xué)和社會(huì)科學(xué)中。在線性代數(shù)教材[1][2]的內(nèi)容組織架構(gòu)中,線性方程組是各章節(jié)的樞紐工具。因而,線性代數(shù)關(guān)注點(diǎn)可歸結(jié)為兩個(gè)方面:第一,回答線性方程解的唯一性、存在性和結(jié)構(gòu)性問(wèn)題;第二,相似性和二次型可以看成方程組的應(yīng)用。高斯消元法(Gaussian Elimination)印證了線性方程組和線性代數(shù)的實(shí)用性。[3]查閱國(guó)外經(jīng)典教材[4]和國(guó)內(nèi)教材可發(fā)現(xiàn)高斯消元法解線性方程組的主要工作是對(duì)增廣矩陣(Augmented Matrix)進(jìn)行初等行變換,常把高斯消元法分解為三個(gè)步驟:步驟一,消元(Variable Elimination):把增廣矩陣化為行階梯形,如果最后一個(gè)階梯的非零元素出現(xiàn)在最后,則方程組無(wú)解,否則方程有解;步驟二,回代(BackSubstitution):在有解的情況下把行階梯形化為最簡(jiǎn)行階梯形;步驟三,寫(xiě)解(Write Solution):把最簡(jiǎn)行階梯形還原為同解方程組,求出所有解。
上面的解題步驟存在三個(gè)問(wèn)題:?jiǎn)栴}一:步驟一忽略了消元前的增廣矩陣的提取過(guò)程,容易導(dǎo)致學(xué)員解題開(kāi)端困難;問(wèn)題二:步驟一和步驟二界線模糊,未考慮到常用數(shù)學(xué)軟件MATLAB并沒(méi)有行階梯形對(duì)應(yīng)的命令。因?yàn)樾须A梯形 “不唯一”,容易導(dǎo)致學(xué)員解題不規(guī)范、易出錯(cuò);問(wèn)題三:步驟三中“求出所有解”指代不清,隱藏大量細(xì)節(jié)步驟,容易導(dǎo)致學(xué)員解題丟三落四、得分率低。下面將進(jìn)一步分析傳統(tǒng)高斯消元法的問(wèn)題,最后給出對(duì)應(yīng)的解決方案。
二、問(wèn)題分析與解決方案
(一)問(wèn)題分析
問(wèn)題一:傳統(tǒng)方法忽略了增廣矩陣提取過(guò)程。例如,如圖1所示,二維平面上的一條直線的方程為。1。該方程非常簡(jiǎn)單,而它的增廣矩陣并不是顯而易見(jiàn)的。教學(xué)實(shí)踐中發(fā)現(xiàn),大量學(xué)員提取出錯(cuò)誤的增廣矩陣,例如提取的增廣矩陣為[A,b]=[1,1]。經(jīng)分析,原因可歸納為兩個(gè)方面:第一,自以為直線方程x=1是一維空間,其實(shí)該直線不經(jīng)過(guò)零點(diǎn),并不能構(gòu)成線性空間,其實(shí),該直線只是二維平面{[x,y]|x, y是實(shí)數(shù)}的一個(gè)子集,可表示為{[1,y]|y是實(shí)數(shù)};第二,方程x=1省略了0和1,實(shí)際上這是不規(guī)范的寫(xiě)作習(xí)慣,容易導(dǎo)致提取出錯(cuò)誤的增廣矩陣。實(shí)際上,x=1的完整式為1*x+0*y=1。對(duì)應(yīng)的,增廣矩陣為[A,b]=[1,0, 1]。
問(wèn)題二:傳統(tǒng)高斯消元法中,變換過(guò)程被分解為“消元”和“回代”兩部分。但是由于行階梯形不唯一,導(dǎo)致“消元”過(guò)程指代不清,不同學(xué)員獲得的行階梯形就不同,因而很難跟蹤和判斷答案是否正確。把“消元”和“回代”合二為一是必要的,即用“變換”直接獲得最簡(jiǎn)行階梯形,原因有兩個(gè):第一,最簡(jiǎn)行階梯形是唯一的,學(xué)員能夠清晰地跟蹤和判斷答案是否正確,“一桿到底”更符合多數(shù)人的解題心理。行階梯形只是一個(gè)中間過(guò)程,不需要跟蹤其正確性。正因如此MATLAB和MATHMATICA沒(méi)有求解階梯形的命令。第二,合二為一后,規(guī)則簡(jiǎn)單,容易上手,更符合信息時(shí)代背景。實(shí)際上MATLAB存在最簡(jiǎn)行階梯形的命令,即RREF,為Reduce Row Echelon Form的縮寫(xiě)。傳統(tǒng)的“消元”和“回代”的劃分方法符合計(jì)算機(jī)資源匱乏的手算時(shí)代。盡管行階梯形不唯一,但是若能提前判斷方程沒(méi)有解,則沒(méi)有必要將增廣矩陣化簡(jiǎn)為最簡(jiǎn)行階梯形,這樣就可以節(jié)約少量計(jì)算機(jī)資源。在信息時(shí)代背景下,教學(xué)計(jì)算機(jī)的計(jì)算性能冗余,筆者認(rèn)為“規(guī)則簡(jiǎn)單,機(jī)器判別”比“節(jié)約少量日算資源”更加可取。
問(wèn)題三:傳統(tǒng)方法的“寫(xiě)解”非?;\統(tǒng),過(guò)程任務(wù)指代不清,學(xué)員無(wú)法理解其中的內(nèi)涵,在解題時(shí)不知如何下手。實(shí)際上,“寫(xiě)解”需要規(guī)范地分解為三個(gè)步驟:第一,把最簡(jiǎn)行階梯形還原為線性方程組,“還原”是“提取”的逆過(guò)程,提取和還原構(gòu)成了線性方程組求解的一個(gè)閉環(huán);第二,移項(xiàng):非階梯元所對(duì)應(yīng)的變量就是自由變量,將自由變量移到方程組的右邊,即用自由變量表示非自由變量;第三,補(bǔ)齊:把自由變量代表的恒等式補(bǔ)齊?!把a(bǔ)齊”是“省略”的逆過(guò)程,此時(shí)非齊次方程組的特解和導(dǎo)出組的基礎(chǔ)解系已經(jīng)出現(xiàn)。
(二)解決方案
基于上述分析,提出過(guò)程規(guī)范的、操作性更強(qiáng)的、更適合教員教學(xué)和學(xué)員解題的線性方程組解法,所示,該方法包含“提取一變換一還原一移項(xiàng)一補(bǔ)齊”五個(gè)步驟,因此又稱該方法為“五步變換法”。
圖2刻畫(huà)了傳統(tǒng)高斯消元法與五步變換法的對(duì)應(yīng)關(guān)系,區(qū)別有三個(gè)方面:第一,增加了“提取”過(guò)程。第二,將“消元”和“回代”合并為“變換”。第三,將“寫(xiě)解”劃分為 “還原”“移項(xiàng)”“補(bǔ)齊”。
接下來(lái),用“五步變換法”求解二維平面上的直線方程x=1。步驟一,提?。簭膞=1提取出增廣矩陣,得[A,b]=[1,0,1];步驟二,變換:將增廣矩陣變換為最簡(jiǎn)行階梯形,[A,b]=[1, 0, 1]本身是最簡(jiǎn)行階梯形”y自由變量,x為非自由變量,rank[A,b]=rankA=1,故方程有解;步驟三,還原:將最簡(jiǎn)行階梯形還原為階梯方程組,得1*x+0*y=1;步驟四,移項(xiàng):將自由變量移到方程右邊,得1*x=1+0*y;步驟五,補(bǔ)齊:將自由變量恒等式補(bǔ)齊,得到線性方程組的規(guī)范答案1*x=1+0*y, y=0+1*y,即[x,y]=[1,0]+y[0,1]。