賈屹峰
(中國勞動(dòng)關(guān)系學(xué)院數(shù)學(xué)與計(jì)算機(jī)教學(xué)部,北京100048)
Mathematica在矩陣初等變換中的應(yīng)用
賈屹峰
(中國勞動(dòng)關(guān)系學(xué)院數(shù)學(xué)與計(jì)算機(jī)教學(xué)部,北京100048)
在符號計(jì)算軟件Mathematica平臺上,實(shí)現(xiàn)矩陣的初等變換,并被引入到課堂教學(xué)中,在提高教學(xué)效率的同時(shí),激發(fā)學(xué)生的興趣,提高學(xué)習(xí)成績。
Mathematica;線性代數(shù);矩陣;初等變換
在《線性代數(shù)》的教學(xué)中,利用矩陣的初等變換,特別是初等行變換,可以計(jì)算行列式的值,求矩陣的秩、方陣的逆、向量組的向量極大無關(guān)組和向量的線性表示,以及解線性方程組?!毒€性代數(shù)》是一門重要的基礎(chǔ)課,是后續(xù)一些知識學(xué)校的基礎(chǔ)。因此,矩陣的初等變換線性代數(shù)非常重要的內(nèi)容。
在矩陣初等變換的教學(xué)過程中,為學(xué)生演示初等變換的過程是必要的,傳統(tǒng)的板書教學(xué),每進(jìn)行一次變換,必須寫一個(gè)矩陣,算法雖然不是很復(fù)雜,但是計(jì)算比較繁瑣,而且整個(gè)過程需要耗費(fèi)大量寶貴的課堂時(shí)間。即使是具有多年教學(xué)經(jīng)驗(yàn)的教師,對于任意給出的一個(gè)矩陣,也不能保證每一步計(jì)算都完全正確。如果利用PowerPoint、Flash等多媒體教學(xué)手段,目標(biāo)矩陣和每一步的過程都必須在課前完成,教學(xué)過程是將預(yù)先計(jì)算好的過程逐步顯示出來,而且不能隨意更改,雖然出錯(cuò)的可能性很小,節(jié)省了時(shí)間,但是缺少了靈活性,不能對任意矩陣施以任意的初等變換。
為了進(jìn)一步提高教學(xué)質(zhì)量,讓學(xué)生更好地理解矩陣初等變換的重要性,熟練掌握計(jì)算過程及其應(yīng)用,我們將符號計(jì)算軟件引入到教學(xué)過程中,在減少了課堂教學(xué)中的復(fù)雜計(jì)算,節(jié)省了時(shí)間的同時(shí),又增加了互動(dòng),激發(fā)了學(xué)生的學(xué)習(xí)興趣,從而豐富了教學(xué)手段,提高了學(xué)習(xí)成績。
Mathematica是一種集成化的符號計(jì)算軟件系統(tǒng),具有多種數(shù)據(jù)結(jié)構(gòu)和豐富的數(shù)學(xué)函數(shù),主要功能包括三個(gè)方面:符號演算、數(shù)值計(jì)算和繪制圖形。而且在這該件平臺上,還可以進(jìn)行二次開發(fā),根據(jù)需要編寫相應(yīng)的程序。在本文中,我們利用自己所編寫程序,完成了矩陣的初等變換功能,而且根據(jù)需要,不但可以顯示每一步的計(jì)算過程,而且還可以具體對矩陣的某一行或某一列單獨(dú)進(jìn)行變換。所編寫的程序可以對任意的矩陣都可以完成,可以進(jìn)行交互式的操作,使用靈活方便。
1.1矩陣的輸入輸出和操作
Mathematica軟件本身有一些直接對矩陣進(jìn)行基本計(jì)算和操作的函數(shù),例如Det用以計(jì)算方陣的行列式;MatrixRank直接給出矩陣的秩;RowReduce將矩陣化為行最簡形式,矩陣的乘法可以用Dot或者“.”給出;對于一個(gè)非奇異方陣,Inverse直接給出其逆矩陣,但是如果是奇異矩陣,則會說明該矩陣式奇異的。Mathematica還有其他一些有關(guān)矩陣計(jì)算的函數(shù),上述函數(shù)只是矩陣最基本的一些計(jì)算,這些函數(shù)被引入到線性代數(shù)課堂教學(xué)中,用以驗(yàn)證手工計(jì)算的正確性。
矩陣的初等變換是對矩陣的行或列施以的運(yùn)算,而在Mathematica中,矩陣是以二維表的形式存在,因此,用Mathematica完成矩陣的初等變換實(shí)際是對表的元素進(jìn)行運(yùn)算。對于矩陣A={0,1,-1},{-6,2,-2},{1,-2,1}},A[i]表示取出A的第i行,A[i,j]表示取出第第i行,第j列的元素。例如A[2]輸出{-6,2,-2},A[2,3]輸出-2。Take從表中取出元素,Delete是從表中刪除元素,Append和Insert是向表中添加元素,這些函數(shù)的參數(shù)是對表中某一個(gè)或幾個(gè)元素、一個(gè)位置或幾個(gè)位置進(jìn)行添加或者刪除,具體的例子可以參考幫助文件。用Mathematica完成矩陣的初等變換主要就是利用這幾個(gè)函數(shù)完成。
1.2交互式矩陣初等變換
我們把矩陣A的第i行(或列)乘以k,稱為第一種初等變換,記為ri→krj(或ci→kcj);交換矩陣A第i行(或列)和第j行(或列),稱為第二種初等變換,記為ri?rj(或ci?kcj);矩陣A的第i行(或列)乘以k,加到第j行(或列),稱為第三種初等變換,記為rj→kri+rj(或cj→kci+cj)。
下面的函數(shù)給出了在Mathematica上實(shí)現(xiàn)矩陣第一種初等變換的源代碼:
其中參數(shù)M1表示所要變換的矩陣;ith是被乘的行(或列);當(dāng)參數(shù)r輸入為row時(shí)是行變換,輸入col時(shí)是列變換;k是乘數(shù)。
第二種初等變換的函數(shù)的源代碼為:
其中參數(shù)M2表示所要變換的矩陣;第ith行(或列)與第jth行(或列)交換;當(dāng)參數(shù)r輸入為row時(shí)是行變換,輸入col時(shí)是列變換。
第三種初等變換的函數(shù)的源代碼為:
其中參數(shù)M3表示所要變換的矩陣;第ith行(或列)乘以k加到第jth行(或列)交換;當(dāng)參數(shù)r輸入為row時(shí)是行變換,輸入col時(shí)是列變換,k為乘數(shù)。
為了更好地顯示計(jì)算過程,對相應(yīng)的行(或列)的字體進(jìn)行了加粗,字體的顏色分別用藍(lán)色、綠色和紅色顯示,顯得更為醒目。
下面利用上面的函數(shù)對上一目的矩陣A進(jìn)行初等變換。
上述過程可以繼續(xù),直到得到想要的矩陣形式,而且這些函數(shù)還可以嵌套使用。這兩個(gè)函數(shù)是對矩陣進(jìn)行初等行變換,對初等列變換,可以利用轉(zhuǎn)置矩陣完成。
2.1矩陣的三角化
矩陣的初等變換在計(jì)算行列式、求矩陣逆和秩、解線性方程組、向量的極大無關(guān)組以及向量的線性表示等方面有著重要的應(yīng)用。在這些計(jì)算中,通過矩陣的初等變換,將矩陣化為上三角形式或下三角形式,直接得到矩陣的秩、行列式的值等,或者在此基礎(chǔ)上再進(jìn)一步利用初等變換,將矩陣化為對角形式或行最簡形式。Mathematica內(nèi)置函數(shù)可以直接得到結(jié)果,例如RowReduce可以將矩陣約化為行最簡形式,MatrixRank可以直接求出矩陣的秩等,但是這些函數(shù)都是直接給出結(jié)果,而沒有計(jì)算過程。
下面首先給出的函數(shù),可以將矩陣化為上三角形式,
其中參數(shù)M0為一只矩陣,cn根據(jù)需要輸入?yún)?shù),當(dāng)cn=-1時(shí),用于計(jì)算矩陣的逆,計(jì)算過程會自動(dòng)添加相應(yīng)的單位矩陣,輸出的結(jié)果是一個(gè)三角化的矩陣,矩陣的逆需調(diào)用后面的回代函數(shù)進(jìn)一步計(jì)算;當(dāng)cn=0時(shí),用于計(jì)算行列式的值,或者矩陣的秩,返回值是1,或者?1,表示在計(jì)算過程中交換行,行列式需要變號,行列式的值為計(jì)算過程的最后結(jié)果矩陣對角線元素與輸出結(jié)果的乘積;當(dāng)cn為其他值時(shí),可以用于計(jì)算向量組的極大無關(guān)組、求解線性方程組(需要調(diào)用回代函數(shù))、矩陣的秩等,這些直接從計(jì)算過程的最后結(jié)果可以看出,返回值是一個(gè)上三角形式的矩陣。
通過上面的MatrixTriReduce函數(shù),可以將矩陣化為上三角形式,但是如果要計(jì)算矩陣的逆、求解線性方程組、矩陣方程,或者向量的線性表示,還需用下面的回代函數(shù),輸入的參數(shù)M2是MatrixTriReduce的返回值。
當(dāng)輸入的參數(shù)跑p=-1時(shí),函數(shù)的返回值是矩陣的逆,其他值時(shí),是矩陣M2的行最簡形式,從最簡形式可以直接看出線性方程組的解,或者向量組的極大無關(guān)組。
2.2計(jì)算實(shí)例
下面給出上面兩個(gè)函數(shù)的計(jì)算實(shí)例。
例1計(jì)算上一節(jié)矩陣A的行列式。
上述過程的最后結(jié)果是一個(gè)上三角行列式,矩陣A的行列式的值為矩陣對角線元素的乘積,再乘以返回值-1。即|A|=-6。
例2求向量組
的極大無關(guān)組,并將其余向量用極大無關(guān)組線性表示。
首先用MatrixTriReduce[A,0]函數(shù)將矩陣化為上三角形式,返回值為B={{2,-1,-1,1,2},{0,3/2,-3/2,1/ 2,3},{0,0,0,-8/3,8},{0,0,0,3,9}},再調(diào)用函數(shù)Matrix-Substituion[B,1]化為最簡形式
有計(jì)算過程的最后一個(gè)矩陣,或者返回值很容易得到α1,α2,α4,是極大無關(guān)組,且α3=-α1-α2,α5=4α1+ 3α1。兩個(gè)函數(shù)還可以嵌套使用。
類似,用這兩個(gè)函數(shù)還可以求解矩陣的逆、線性方程組、矩陣方程等。
上述程序的使用面比較廣泛的,不限于矩陣元素是數(shù)字,矩陣元素是符號也依然可以使用。另外可以在教學(xué)中使用,在科研中也可以。
上述程序已在教學(xué)中得到了實(shí)際應(yīng)用。Mathematica在線性代數(shù)教學(xué)中的應(yīng)用不僅僅限于矩陣的初等變換,在線性代數(shù)的教學(xué)中,行列式、線性方程組、矩陣、向量的線性相關(guān)性,以及計(jì)算矩陣的特征值、矩陣對角化都得到了應(yīng)用,均收到了很好的效果。
本文中的程序?qū)嵲贛athematica5.1版本上編寫的,如果利用更高的版本,源代碼可能更簡潔。
[1]趙樹嫄.經(jīng)濟(jì)應(yīng)用數(shù)學(xué)基礎(chǔ)(二).線性代數(shù).中國人民大學(xué)出版社.第二版,2008.5.
[2]張韻華,王新茂.Mathematica 7實(shí)用教程.中國科學(xué)技術(shù)大學(xué)出版社,2011,1.
Application of Mathematica in Elementary Transformation of Matrices
JIA Yi-feng
(Department of Mathematics&Computer Teaching,China Institute of Industrial Relations,Beijing 100048)
Realizes the elementary transformation of Matrices in symbolic compute platform Mathematica,and it's introduced to the classroom teaching,increases the efficiency of teaching,excites the interest of students,and improves the performance.
Mathematica;Linear Algebra;Matrix;Elementary Transformation
2011年中央高?;究蒲袠I(yè)務(wù)費(fèi)專項(xiàng)基金項(xiàng)目(No.11zy063)
1007-1423(2016)25-0017-05DOI:10.3969/j.issn.1007-1423.2016.25.004
賈屹峰(1972-),男,陜西西安人,博士,研究方向?yàn)榉栍?jì)算