夏 磊
(江蘇聯(lián)合職業(yè)技術(shù)學(xué)院無錫機(jī)電分院, 江蘇 無錫 214000)
線性方程組的解法探討及MAPLE實(shí)現(xiàn)
夏 磊
(江蘇聯(lián)合職業(yè)技術(shù)學(xué)院無錫機(jī)電分院, 江蘇 無錫 214000)
“線性代數(shù)”是高等學(xué)校理工科專業(yè)學(xué)生必須要學(xué)習(xí)的一門重要的理論基礎(chǔ)課,大多數(shù)的線性代數(shù)教材主要由行列式、矩陣、線性變化、線性方程組、向量空間及二次型組成,它們都是把矩陣作為研究的重要工具,然而事實(shí)上,線性方程組也是研究線性代數(shù)的一個(gè)重要的研究工具;通過將線性方程組的分類,總結(jié)線性方程組的幾種常用的解法,針對(duì)非齊次線性方程組解的情形,結(jié)合MAPLE軟件強(qiáng)大的符號(hào)計(jì)算、數(shù)值計(jì)算及直觀性,給出MAPLE軟件求解線性方程組的方法。
線性方程組; 解法; MAPLE
一般線性方程組的形式為:
其中x1,xn,…,xn是n個(gè)未知量(也稱為“元”),aij(i=1,2,…,m;j=1,2,…,n)稱為方程組的系數(shù),b1,b2,…,bm稱為常數(shù)項(xiàng)。若記
稱A為方程組的系數(shù)矩陣,則方程組(1)的矩陣形式為
若b的元素不全為零,則稱方程組(1)為非齊次線性方程組;若b的元素全為零,即b1=b2=…=bm=0,則稱方程組(1)為其次線性方程組。
定義1.1 由A和b組成的m×(n+1)矩陣
定理(Gramer法則):設(shè)線性方程組
的系數(shù)行列式
則方程(1)有唯一解
其中Dj是D中第j列元素依次用常數(shù)項(xiàng)b1,b2,…,bn代替后得到的n階行列式,即
克萊姆(Gramer)法則僅適用于求解系數(shù)行列式D不為零的適定方程組,并且對(duì)于未知數(shù)個(gè)數(shù)多于4個(gè)的適定方程組,計(jì)算工作量較大,解題效率較低。
把線性方程組(2)記成矩陣形式AX=b后,若系數(shù)矩陣A可逆,則X=A-1b。逆矩陣求解線性方程組的關(guān)鍵是求解系數(shù)矩陣A的逆矩陣A-1。
逆矩陣求解線性方程組僅適用于系數(shù)矩陣A可逆的適定方程組,對(duì)于系數(shù)行列式為零的適定方程組和欠定方程組、超定方程組則不適用。
對(duì)于一般的線性方程組(1),用高斯消元法解方程組的主要步驟是把增廣矩陣(A,b)化為階梯型矩陣
當(dāng)R(A)=R=n時(shí),線性方程組AX=b有唯一解;當(dāng)R(A)=R=r Maple軟件是功能強(qiáng)大的符號(hào)處理和數(shù)值分析工具,主要應(yīng)用于符號(hào)數(shù)學(xué)運(yùn)算。Maple軟件是1980年由加拿大教授Keith Geddes和Gaston Gnnot在Waterloo大學(xué)開發(fā),后來由Waterloo Maple公司開發(fā)用于商業(yè)目的,它內(nèi)置5000多個(gè)數(shù)學(xué)函數(shù),其中涉及線性代數(shù)、微積分、組合優(yōu)化、統(tǒng)計(jì)學(xué)、微分方程、數(shù)值分析和離散數(shù)學(xué)等。在線性代數(shù)方面,用Maple軟件可以進(jìn)行線性代數(shù)的各種運(yùn)算,包括矩陣預(yù)算、行列式運(yùn)算、求解線性方程組、方陣的特征值及特征向量,求二次型的標(biāo)準(zhǔn)型等問題;此外還可以通過Maple軟件的繪圖及程序設(shè)計(jì)命令,對(duì)線性代數(shù)中的若干概念的幾何意義進(jìn)行分析和討論,使學(xué)生能夠更好的理解線性代數(shù)的抽象概念,下面針對(duì)上面提出的線性方程組的三類解法,通過例題給出Maple求解的方法及求解過程。 例1 判斷下列的非齊次線性方程組是否有解,若有解,求其解。 方法一: 首先在Maple軟件中調(diào)用線性代數(shù)函數(shù)包,在交互界面中輸入一下命令 >with(linearAlgebra) : >sys:=[x1+x2-2x3=0,x1-2x2+x3=3,-2x1+x2+x3=3]; sys:=[x1+x2-2x3=0,x1-2x2+x3=3,-2x1+x2+x3=3] >var:=[x1,x2,x3]; var:=[x1,x2,x3]; 計(jì)算線性方程組的增廣矩陣(A,b) >A,b:=GenerateMatrix(sys,var) 求解線性方程組 >LinearSolve(A,b); Error, (inLinearAlgebra:-LinearSolve)inconsistentsystem 錯(cuò)誤信息說明:此方程組不相容的,沒有解。 方法二: 首先在Maple軟件中調(diào)用線性代數(shù)函數(shù)包,在交互界面中輸入一下命令 >with(LinearAlgebra): 計(jì)算線性方程組的增廣矩陣(A,b) >M:=GenerateMatrix(sys,var,augmented=true); 化增廣矩陣為行最簡型矩陣 >ReduceRowEchelonForm(M); 由上述矩陣可看出,增廣矩陣的秩R(A,b)=3,系數(shù)矩陣A的秩R(A)=2,R(A,b)≠R(A),此方程組無解。 例2 求解線性方程組 解:首先判斷方程組增廣矩陣與系數(shù)矩陣的秩是否相等。 >with(LinearAlgebra): >sys:=[x1+x2+2x3+3x4=1,x1+2x2+3x3-x4=-4,3x1-x2-x3-2x4=-4,2x1+3x2-x3-x4=-6]: >var:=[x1,x2,x3,x4]: >M:=GenerateMatrix(sys,var,augmented=true) : >ReducedRowEchelonForm(M) ; 由上可知,R(A,b)=R(A)=4,方程組有唯一解。 解法一:克萊姆(Gramer)法則: 計(jì)算系數(shù)行列式D及Dj: >D:=Matrix([1,1,2,3],[1,2,3,-1],[3,-1,-1,-2],[2,3,-1,-1]); Error,attemptingtoassignto'D'whichisprotected.Trydeclaring'localD';see?protectfordetails. 由于D是Maple受保護(hù)的變量名,所以在計(jì)算過程中盡量回避使用該變量名。 >B:=Matrix([[1,1,2,3],[1,2,3,-1],[3,-1,-1,-2],[2,3,-1,-1]]); >LinearAlgebra[Determinant](B); -153 用相同的計(jì)算行列式命令可求出B1=153,B2=153,B3=0,B4=-153 由克萊姆法則得x1=-1,x2=-1,x3=0,x4=1 解法二:逆矩陣乘積法: 線性方程組記成矩陣形式AX=b后,若系數(shù)矩陣A可逆,則X=A-1b,故我們首先需要求解系數(shù)矩陣A的逆矩陣A-1 >A:=Matrix([[1,1,2,3],[1,,2,3-1],[3,-1,-1,-2],[2,3,-1,-1]]): >C:=LinearAlgebra:-MatrixInverse(A); 則X=A-1b,在Maple交互界面中輸入以下命令: > >B:=Matrix([[1],[-4],[-4],[-6]]): >C,B; 得:x1=-1,x2=-1,x3=0,x4=1 解法三:高斯消元法 在Maple交互對(duì)話框輸入以下命令調(diào)用“高斯消去法”對(duì)話框(圖1)。 Student[LinearAlgebra][GaussianEliminationTutor](); 圖1 圖2 在矩陣位置按ENTER調(diào)取矩陣編輯模式,并輸入所需要的方程組基本信息(圖2),輸入完畢后,點(diǎn)擊CLOSE鍵回到“高斯消去法”對(duì)話框,點(diǎn)擊All Steps,把增廣矩陣化為行最簡形矩陣(圖3),點(diǎn)擊Solve System進(jìn)入求解界面,依次點(diǎn)擊右側(cè)Equations、Solve x[4]、Solve x[3]、Solve x[2]、Solve x[1],即可求出方程組的解。 得出x1=-1,x2=-1,x3=0,x4=1 圖3 圖4 例3:判斷非齊次線性方程組 是否有解,若有解,求其解。 解:首先判斷系數(shù)矩陣的秩與增廣矩陣的秩是否相等。 >A:=Matrix([[1,,-2,3-4,4],0,1,-1,1-3],[1,3,0,-3,1],[0,-7,3,1,-3]]): >LinearAlgebra[Rank](A); 3 得出系數(shù)矩陣的秩R(A)=R(A,b)=3<4,所以方程組有無窮多解。 >with(LinearAlgebra): >sys:=[x[1]-2x[2]+3x[3]-4x[4]=4,x[2]-x[3]+x[4]=-3,x[1]+3x[2]-3x[4]=1,-7x[2]+3x[3]+x[4]=-3]; >sys:=[x1-2x2+3x3-4x4=4,x2-x3+x4=-3,x1+3x2-3x4=1,-7x2+3x3+x4=-3] >var:=[x[1],x[2],x[3],x[4]]; var:=[x1,x2,x3,x4] >solve(sys,var); [[x1=-8,x2=x2,x3=2x2,x4=-3+x2]] 從而可知η*=(-8,3,6,0)T為原方程組的一個(gè)特解。求對(duì)應(yīng)齊次方程組的基礎(chǔ)解系,在Maple中做如下運(yùn)算: >(A,b) :=GenerateMatrix(sys,var); >NullSpace(A); 因此原方程組所對(duì)應(yīng)的其次方程組的一組基礎(chǔ)解向量為:ξ1=(0,1,2,1)T >sys :[lambda·x[1]-x[2]-x[3]=1,-x[1]+lambda·x[2]-x[3]=-1·lambda,-x[1]-x[2]+lambda·x[3]=λ2]; sys :=[λx1-x2-x3=1,-x1=λx2-x3=-λ,-x1-x2+λx3=λ2] >var :=[x[1],x[2],x[3]]; var :=[x1,x2,x3] >solve(sys,var); >solve(sys,var,'parametric'=full); 綜上,通過對(duì)幾個(gè)典型例題的講述與演示,探討了Maple軟件在線性方程組求解過程中的一些基本解法,分類給出了部分算法。它的一個(gè)重大突破是計(jì)算機(jī)輔助教學(xué)不僅僅是將信息技術(shù)的應(yīng)用定位于教師的授課過程中,而是利用軟件強(qiáng)大的可視化交互功能,幫助學(xué)生建立自主學(xué)習(xí)的新模式,激發(fā)學(xué)生學(xué)習(xí)線性代數(shù)的興趣和熱情,更好的培養(yǎng)學(xué)生的認(rèn)知、創(chuàng)新和應(yīng)用數(shù)學(xué)知識(shí)解決問題的能力,讓古老的數(shù)學(xué)煥發(fā)新的青春活力。 [1] 袁德正.線性代數(shù)[M].北京:科學(xué)出版社,2014. [2] 吳珞,徐俊林.用Maple學(xué)大學(xué)數(shù)學(xué)[M].北京:機(jī)械工業(yè)出版社,2014. [3] 童小紅,秦新強(qiáng).線性方程組的解法探討及MATLAB實(shí)現(xiàn)[J].數(shù)學(xué)學(xué)習(xí)與研究,2013(13):86-88. O241.6 A 1671-4733(2017)06-0074-04 2017-05-12 夏磊(1982-),男,碩士,講師,研究方向?yàn)閿?shù)學(xué)教學(xué)與數(shù)學(xué)軟件。三、用MAPLE軟件求解線性方程組
四、結(jié)語