姚 艷
(黑河學(xué)院 數(shù)學(xué)與應(yīng)用數(shù)學(xué)系,黑龍江 黑河 164300)
《高等代數(shù)》是數(shù)學(xué)學(xué)科的一門傳統(tǒng)課程。在當(dāng)今世界的數(shù)學(xué)內(nèi)部學(xué)科趨于統(tǒng)一性和數(shù)學(xué)在其他學(xué)科的廣泛應(yīng)用性的今天,《高等代數(shù)》以其追求內(nèi)容結(jié)構(gòu)的清晰刻畫和作為數(shù)學(xué)應(yīng)用的基礎(chǔ),是大學(xué)數(shù)學(xué)專業(yè)的主干基礎(chǔ)課程。它是數(shù)學(xué)在其他學(xué)科應(yīng)用的必需基礎(chǔ)課程,又是數(shù)學(xué)修養(yǎng)的核心課程。隨著現(xiàn)代計算機(jī)科學(xué)的逐步普及,人們對計算機(jī)的依賴程度越來越高。近年來發(fā)展起來的MATLAB軟件包,它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進(jìn)行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法等。使抽象的代數(shù)問題在某種意義上變成看得見的富于直觀現(xiàn)象,更加啟迪人們?nèi)绾巍坝脭?shù)學(xué)”[1]。
首先,在《高等代數(shù)》課程中開設(shè)實驗課,可以培養(yǎng)學(xué)生參與科學(xué)研究的良好作風(fēng)。實驗課上,學(xué)生在教師的指導(dǎo)下,通過操作計算機(jī),驗證、演示高等代數(shù)的基本概念和基本理論,從而獲取新知識,不同于傳統(tǒng)的數(shù)學(xué)學(xué)習(xí)方式,它強調(diào)以學(xué)生動手為主的數(shù)學(xué)學(xué)習(xí)方式。在實驗中,由于計算機(jī)的引入和MATLAB軟件包的應(yīng)用,為數(shù)學(xué)的思想與方法注入了更多、更廣泛的內(nèi)容,使學(xué)生擺脫了繁重的乏味的數(shù)學(xué)演算和數(shù)值計算,促進(jìn)了數(shù)學(xué)同其他學(xué)科之間的結(jié)合,從而使學(xué)生有時間去做更多的創(chuàng)造性工作。其次,利用計算機(jī)的快速計算功能,可以使學(xué)生在實驗課上探索一些比較復(fù)雜的問題,加深對高等代數(shù)基本概念的理解,增強學(xué)生學(xué)習(xí)高等代數(shù)的興趣和信心。例如,在求行列式值時,因為階數(shù)比較高,計算量很大,教師講得比較累,學(xué)生聽著也沒興趣。但使用計算機(jī)后,可以把這類問題讓學(xué)生自己做,結(jié)果就會很容易得出。到了期末,每個學(xué)生都有不同程度的提高,不僅學(xué)習(xí)了高等代數(shù)的知識,而且也加強了計算機(jī)的應(yīng)用能力。
實驗的目的是提高學(xué)生學(xué)習(xí)高等代數(shù)的積極性,提高學(xué)生對高等代數(shù)的應(yīng)用意識并培養(yǎng)學(xué)生用所學(xué)的數(shù)學(xué)知識和計算機(jī)技術(shù)去認(rèn)識問題和解決實際問題的能力。這就要求實驗的建立應(yīng)該是提法簡單,立意新穎,既要區(qū)別于高等代數(shù)習(xí)題,又要區(qū)別于計算機(jī)語言的練習(xí),要有利于“驗證”和“探索”。所謂驗證,是通過計算機(jī)驗證已有的定理或已學(xué)過的數(shù)學(xué)知識,探索是指利用計算機(jī)完成人工所不可能完成的巨大計算量的同時,發(fā)現(xiàn)以往單純靠邏輯推理難以發(fā)現(xiàn)的現(xiàn)象。下面舉兩個具體實例。
實驗一:求行列式的值
(1)實驗?zāi)康模毫私釳ATLAB中矩陣的表示和MATLAB中行列式的概念及基本性質(zhì),學(xué)習(xí)、掌握MATLAB軟件有關(guān)的命令。
(2)原理與方法:在MATLAB中借助函數(shù)det可以求出行列式的值,其格式為det(D),其中D為n階行列式。
(3)實驗內(nèi)容:
例1,計算行列式
相應(yīng)的matlab代碼及運算結(jié)果如下:
>> clear
>> syms a b c d %定義符號變量
>> A=[a,b,c,d;a a+b a+b+c a+b+c+d;a 2*a+b 3*a+2*b+c 4*a+3*b+2*c+d;a 3*a+b 6*a+3*b+c 10*a+6*b+3*c+d] %輸出符號矩陣
A=
[a, b, c, d]
[a,a+b,a+b+c,a+b+c+d]
[a,2*a+b,3*a+2*b+c,4*a+3*b+2*c+d]
[a,3*a+b,6*a+3*b+c,10*a+6*b+3*c+d]
>>D= det(A) %計算A的行列式
D=
a^4
實驗二:線性方程組的求解
(1)實驗?zāi)康模毫私饩€性方程組的基本概念,掌握線性方程組求解的方法,會用MATLAB軟件相關(guān)的命令求線性方程組的解。
(2)原理與方法:求線性方程組所用的MATLAB命令,計算方陣A的行列式det(A),增廣矩陣:[A,b],b是向量,適用于任意階的矩陣,矩陣的秩:rank(A),非齊次線性方程組的特解:x0=A或pinv(A)*b
齊次線性方程組的基礎(chǔ)解系:null(A),化矩陣為行階梯形:rref(A)[2]
(3)實驗內(nèi)容
(1)有唯一解,(2)無解,(3)有無窮多解?
相應(yīng)的MATLAB代碼及運算結(jié)果如下:
>> clear
>> syms y;
>> A=[y 1 1;1 y 1;1 1 y] %定義符號矩陣
A =
[y, 1, 1]
[1, y, 1]
[1, 1, y]
>> b=[1;y;y^2]
b =
[1]
[y]
[y^2]
>> det(A)
ans =
y^3-3*y+2
>> solve(det(A)) %解出行列式值為零時y的取值
ans =
[-2]
[1]
[1]
>>%下面求y取不同值時,方程組解的情況:
>>%(1)當(dāng)y不等于-2且y不等于1時,方程組有唯一解,求解為:
>> x=A %左除法
x =
[-(y+1)/(y+2)]
[1/(y+2)]
[(1+y^2+2*y)/(y+2)]
>>%(2)當(dāng)y=-2時:
>> syms y;
>> y=-2;
>> A=[y 1 1;1 y 1;1 1 y]
A =
-2 1 1
1 -2 1
1 1 -2
>> b=[1;y;y^2]
b =
1
-2
4
>> rank(A)
ans =
2
>> rank([A,b])
ans =
3
>> %系數(shù)矩陣的秩小于增廣矩陣的秩,故方程組無解。
>> %當(dāng)y=1時:
>> y=1;
>> A=[y 1 1;1 y 1;1 1 y]
A =
1 1 1
1 1 1
1 1 1
>> b=[1;y;y^2]
b =
1
1
1
>> rank(A)
ans =
1
>> rank([A,b])
ans =
1
>> %系數(shù)矩陣的秩等于增廣矩陣的秩,故方程組有無窮多解。
>> rref([A,b]) %化行最簡形。
ans =
1 1 1 1
0 0 0 0
0 0 0 0
>> %取x2,x3作自由變量,則方程組的通解為:x1=1-x2-x3.
>>或者通過求特解及導(dǎo)出組的基礎(chǔ)解系得出通解:
>> y=1;
>> A=[y 1 1;1 y 1;1 1 y]
A =
1 1 1
1 1 1
1 1 1
>> b=[1;y;y^2]
b =
1
1
1
>> x0=pinv(A)*b %求特解
x0 =
0.3333
0.3333
0.3333
>> x1=null(A)
x1 =
0.8165 0
-0.4082 -0.7071
-0.4082 0.7071
>> % 方程組的通解為:
>>%(x1,x2,x3,x4)=(0.3333,0.3333,0.3333)+c1(0.8165,-0.4082,-0.4082)+c2(0,-0.7071,0.7071),
>> %c1,c2為任意常數(shù)。
《高等代數(shù)》開設(shè)實驗課內(nèi)容應(yīng)包括基礎(chǔ)部分和綜合部分。在基礎(chǔ)實驗部分,要圍繞高等代數(shù)的基本內(nèi)容,讓學(xué)生充分利用計算機(jī)及軟件的數(shù)值功能、符號功能和圖形展示基本概念與結(jié)論,去體驗如何發(fā)現(xiàn)、總結(jié)和應(yīng)用數(shù)學(xué)規(guī)律。綜合實驗是讓學(xué)生運用已掌握的高等代數(shù)的知識,能獨立地、創(chuàng)造性地去解決一些實際問題。將實際問題運用數(shù)學(xué)的方法,建立模型,也就是數(shù)學(xué)建模。數(shù)學(xué)建模強調(diào)問題的實用性而不強調(diào)普遍意義,而高等代數(shù)中的實驗課可以從理論問題出發(fā),也可以由實際問題出發(fā),讓學(xué)生以解決問題為線索總結(jié)規(guī)律。實驗課的開設(shè)可以作為數(shù)學(xué)建模的基礎(chǔ),使學(xué)生可以更快地掌握數(shù)學(xué)建模的基本方法和技能[3]。
總之,在《高等代數(shù)》課程中開設(shè)實驗課,重要的是從問題出發(fā),讓學(xué)生自己做,自己觀察結(jié)果。激發(fā)學(xué)生的創(chuàng)造性思維,從而發(fā)明和設(shè)計新的實驗,更希望他們用MATLAB軟件去計算和解決專業(yè)課學(xué)習(xí)中出現(xiàn)的復(fù)雜計算問題。
[1]陳志杰.高等代數(shù)與解析幾何[M].北京:高等教育出版社,斯普林格出版社,2001.
[2]宋世德,郭滿才.數(shù)學(xué)實驗[M].北京:高等教育出版社,2002.
[3]數(shù)學(xué)實驗課程的教學(xué)與數(shù)學(xué)素質(zhì)的培養(yǎng)[J].數(shù)學(xué)的實踐與認(rèn)識,2002,(1):34~37.