姚 艷
(黑河學院 數學與應用數學系,黑龍江 黑河 164300)
《高等代數》是數學學科的一門傳統課程。在當今世界的數學內部學科趨于統一性和數學在其他學科的廣泛應用性的今天,《高等代數》以其追求內容結構的清晰刻畫和作為數學應用的基礎,是大學數學專業的主干基礎課程。它是數學在其他學科應用的必需基礎課程,又是數學修養的核心課程。隨著現代計算機科學的逐步普及,人們對計算機的依賴程度越來越高。近年來發展起來的MATLAB軟件包,它在數學類科技應用軟件中在數值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數和數據、實現算法等。使抽象的代數問題在某種意義上變成看得見的富于直觀現象,更加啟迪人們如何“用數學”[1]。
首先,在《高等代數》課程中開設實驗課,可以培養學生參與科學研究的良好作風。實驗課上,學生在教師的指導下,通過操作計算機,驗證、演示高等代數的基本概念和基本理論,從而獲取新知識,不同于傳統的數學學習方式,它強調以學生動手為主的數學學習方式。在實驗中,由于計算機的引入和MATLAB軟件包的應用,為數學的思想與方法注入了更多、更廣泛的內容,使學生擺脫了繁重的乏味的數學演算和數值計算,促進了數學同其他學科之間的結合,從而使學生有時間去做更多的創造性工作。其次,利用計算機的快速計算功能,可以使學生在實驗課上探索一些比較復雜的問題,加深對高等代數基本概念的理解,增強學生學習高等代數的興趣和信心。例如,在求行列式值時,因為階數比較高,計算量很大,教師講得比較累,學生聽著也沒興趣。但使用計算機后,可以把這類問題讓學生自己做,結果就會很容易得出。到了期末,每個學生都有不同程度的提高,不僅學習了高等代數的知識,而且也加強了計算機的應用能力。
實驗的目的是提高學生學習高等代數的積極性,提高學生對高等代數的應用意識并培養學生用所學的數學知識和計算機技術去認識問題和解決實際問題的能力。這就要求實驗的建立應該是提法簡單,立意新穎,既要區別于高等代數習題,又要區別于計算機語言的練習,要有利于“驗證”和“探索”。所謂驗證,是通過計算機驗證已有的定理或已學過的數學知識,探索是指利用計算機完成人工所不可能完成的巨大計算量的同時,發現以往單純靠邏輯推理難以發現的現象。下面舉兩個具體實例。
實驗一:求行列式的值
(1)實驗目的:了解MATLAB中矩陣的表示和MATLAB中行列式的概念及基本性質,學習、掌握MATLAB軟件有關的命令。
(2)原理與方法:在MATLAB中借助函數det可以求出行列式的值,其格式為det(D),其中D為n階行列式。
(3)實驗內容:
例1,計算行列式

相應的matlab代碼及運算結果如下:
>> 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)實驗目的:了解線性方程組的基本概念,掌握線性方程組求解的方法,會用MATLAB軟件相關的命令求線性方程組的解。
(2)原理與方法:求線性方程組所用的MATLAB命令,計算方陣A的行列式det(A),增廣矩陣:[A,b],b是向量,適用于任意階的矩陣,矩陣的秩:rank(A),非齊次線性方程組的特解:x0=A或pinv(A)*b
齊次線性方程組的基礎解系:null(A),化矩陣為行階梯形:rref(A)[2]
(3)實驗內容

(1)有唯一解,(2)無解,(3)有無窮多解?
相應的MATLAB代碼及運算結果如下:
>> 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)當y不等于-2且y不等于1時,方程組有唯一解,求解為:
>> x=A %左除法
x =
[-(y+1)/(y+2)]
[1/(y+2)]
[(1+y^2+2*y)/(y+2)]
>>%(2)當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
>> %系數矩陣的秩小于增廣矩陣的秩,故方程組無解。
>> %當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
>> %系數矩陣的秩等于增廣矩陣的秩,故方程組有無窮多解。
>> rref([A,b]) %化行最簡形。
ans =
1 1 1 1
0 0 0 0
0 0 0 0
>> %取x2,x3作自由變量,則方程組的通解為:x1=1-x2-x3.
>>或者通過求特解及導出組的基礎解系得出通解:
>> 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為任意常數。
《高等代數》開設實驗課內容應包括基礎部分和綜合部分。在基礎實驗部分,要圍繞高等代數的基本內容,讓學生充分利用計算機及軟件的數值功能、符號功能和圖形展示基本概念與結論,去體驗如何發現、總結和應用數學規律。綜合實驗是讓學生運用已掌握的高等代數的知識,能獨立地、創造性地去解決一些實際問題。將實際問題運用數學的方法,建立模型,也就是數學建模。數學建模強調問題的實用性而不強調普遍意義,而高等代數中的實驗課可以從理論問題出發,也可以由實際問題出發,讓學生以解決問題為線索總結規律。實驗課的開設可以作為數學建模的基礎,使學生可以更快地掌握數學建模的基本方法和技能[3]。
總之,在《高等代數》課程中開設實驗課,重要的是從問題出發,讓學生自己做,自己觀察結果。激發學生的創造性思維,從而發明和設計新的實驗,更希望他們用MATLAB軟件去計算和解決專業課學習中出現的復雜計算問題。
[1]陳志杰.高等代數與解析幾何[M].北京:高等教育出版社,斯普林格出版社,2001.
[2]宋世德,郭滿才.數學實驗[M].北京:高等教育出版社,2002.
[3]數學實驗課程的教學與數學素質的培養[J].數學的實踐與認識,2002,(1):34~37.