歐陽異能 楊婷
【摘要】 結(jié)合線性代數(shù)課程特點,引入計算軟件MATLAB輔助教學(xué),探討MATLAB在線性代數(shù)中的矩陣運算、行列式計算、向量組的線性相關(guān)性、線性方程組求解以及特征值和特征向量等若干問題方面的應(yīng)用,以期提高教學(xué)質(zhì)量,改進教學(xué)效果.
【關(guān)鍵詞】 矩陣;線性方程組;特征值;MATLAB
線性代數(shù)課程是高等學(xué)校的重要數(shù)學(xué)基礎(chǔ)課,是用數(shù)學(xué)知識解決實際問題的一個強有力的工具,廣泛地應(yīng)用于信號處理、系統(tǒng)控制、電子通信等學(xué)科領(lǐng)域. 線性代數(shù)課程除了培養(yǎng)學(xué)生的基本運算能力、抽象思維能力、邏輯推理能力外,還應(yīng)注重培養(yǎng)學(xué)生的數(shù)學(xué)建模能力與數(shù)值計算能力,使學(xué)生學(xué)會用數(shù)學(xué)方法解決實際問題,并能利用計算機進行一定的科學(xué)計算.
目前傳統(tǒng)的線性代數(shù)教材仍然是以理論為主導(dǎo),偏重理論體系的系統(tǒng)性、完整性,過多強調(diào)證明和推導(dǎo),卻忽視了概念、原理和模型的實際背景,缺乏解決實際問題的訓(xùn)練. 再加上課程本身所固有的抽象性和計算的繁瑣性,學(xué)習(xí)興趣不高,針對線性代數(shù)課程的這些特點,必須對現(xiàn)有的教學(xué)模式進行改革. 利用計算機軟件輔助教學(xué),既能提高教學(xué)效率,減輕學(xué)生計算負(fù)擔(dān),促進線性代數(shù)教學(xué)理論走向應(yīng)用,又能鍛煉和培養(yǎng)學(xué)生的數(shù)值計算能力,使得學(xué)生逐漸喜歡線性代數(shù)課程. 本文主要通過實例介紹MATLAB在線性代數(shù)教學(xué)中的應(yīng)用.
1. 矩陣的基本運算
(1)矩陣的初等變換
在線性代數(shù)中,矩陣的初等變換是最基本也是最重要的一種運算,求矩陣的逆、矩陣的秩、判斷向量組的線性相關(guān)性、解線性方程組等問題都離不開初等變換,而矩陣的初等變換相對比較繁瑣,故教學(xué)過程中老師會省略很多步驟,這樣不利于學(xué)生的學(xué)習(xí),引入MATLAB可以方便解決此類問題.
初等變換包括行變換和列變換,下面重點介紹MATLAB在初等行變換中的命令,列變換命令類似. (I)交換矩陣A第i行和第j行,A([j,i],:)=A([i,j],:);(II)矩陣A第i行乘以k倍,A(i,:)=k*A(i,:);(III)將矩陣A第i行的k倍加到第j行上去,A(j,:)=k*A(i,:)+A(j,:) .
例1 設(shè)A = 0 -2 13 0 -2-2 3 0,用初等變換求A-1.
解 將(A,E)通過初等行變換化成(E,A-1),求得逆矩陣A-1. MATLAB程序和運行結(jié)果:
>> A=[0 -2 1;3 0 -2;-2 3 0];
>> B=[A,eye(3)];
>>B(2,:)=1*B(3,:)+B(2,:); B(3,:)=2*B(2,:)+B(3,:); B(3,:)=4*B(1,:)+B(3,:);
>>B(1,:)=2*B(3,:)+B(1,:); B(2,:)=(-3)*B(3,:)+B(2,:); B(2,:)=2*B(1,:)+B(2,:);
>> B([1,2],:)=B([2,1],:); B([3,2],:)=B([2,3],:)
執(zhí)行后,輸出結(jié)果為:
B = 1 0 0 6 3 4
0 1 0 4 2 3
0 0 1 9 4 6
即求得A-1 = 6 3 44 2 39 4 6
(2)矩陣的其他典型計算
矩陣A的典型計算還包括:矩陣的轉(zhuǎn)置A′;方陣行列式det(A);矩陣逆inv(A);矩陣的秩rank(A);矩陣的行最簡型rref(A). 例如例題1中的矩陣A,MATLAB命令det(A)、inv(A)分別得到運行結(jié)果是1和3.
2. 行列式與方程組求解
根據(jù)克拉默法則,若線性方程組系數(shù)行列式D ≠ 0,則方程組有唯一解. 當(dāng)線性方程組為AX = B,則用矩陣左除X=A/B,即X = A-1B;當(dāng)線性方程組為XA = B,則用矩陣右除X=B/A,即X = BA-1.
例2 當(dāng)a取何值時,線性方程組
(1 - a)x1 - 2x2 + 4x3 = 12x1 + (3 - a)x2 + x3 = 4x1 + x2 + (1 - a)x3 = 2有唯一解?
解 當(dāng)系數(shù)行列式不等于零時,方程組有唯一解. 因此,先求解a使得系數(shù)行列式等于零. MATLAB計算程序和運行結(jié)果:
syms a
format rat
>>A=[1-a,-2,4;2,3-a,1;1,1,1-a]; b=[1,4,2]'; >>D=det(A);
>>a0=solve(D)' %系數(shù)行列式等于零的根
>>X=A\b %利用左除求出方程組的符號解
>>X=subs(X,a,-1)' %特別的當(dāng)時,方程組的根
執(zhí)行后,輸出結(jié)果為:
a0 =
[ 0, 2, 3]
X =
(- a^2 + 4*a + 2)/(a*(a^2 - 5*a + 6))
-(2*a - 1)^2/(a*(a^2 - 5*a + 6))
-((2*a - 1)*(a - 1))/(a*(a^2 - 5*a + 6))
X =
1/4 3/4 1/2
3. 向量組的線性相關(guān)性及方程組的通解
向量組的線性相關(guān)性的判斷,需先將列向量矩陣化成行階梯形,非零行非零首元所在列一定線性無關(guān),MATLAB命令[R, s]=rref(A)可以快速完成行最簡形計算, 其中R為A的行最簡形矩陣;s是一個行向量,它的元素由R的非零行非零首元所在列號構(gòu)成. 求方程組通解,除了用行最簡形的方法,還可以用null(A, 'r')求齊次線性方程組Ax = 0的基礎(chǔ)解系和x0 = A\b求非齊次線性方程組Ax = b的一個特解x0.
例3 設(shè)矩陣A = 1 2 1 -22 3 0 -11 -1 -5 7,求矩陣A的列向量組的一個最大無關(guān)組,并把不屬于最大無關(guān)組的列向量用最大無關(guān)組線性表示.
解 MATLAB命令窗口中輸入:
>>A=[1,2,1,-2;2,3,0,-1;1,-1,-5,7];
>> [R,s]=rref(A)
執(zhí)行后,輸出結(jié)果為:
R =
1 0 -3 4
0 1 2 -3
0 0 0 0
s = 1 2
記A = (a1,a2,a3,a4),由運行結(jié)果可知,列向量組的極大無關(guān)組為a1,a2,并且a3 = -3a1 + 2a2,a4 = 4a1 - 3a2.
解 根據(jù)線性方程組解結(jié)構(gòu),先求對應(yīng)齊次方程通解,再求特解x0,輸入MATLAB命令:
>>A=[1 -1 -1 1;1 -1 1 -3;1 -1 -2 3]; b=[0 1 -0.5]';
>>null(A, 'r')
>>x0=A\b
執(zhí)行后,輸出結(jié)果為:
ans =
1 1
1 0
0 2
0 1
x0 = [ 0 -1/4 0 -1/4]
即所求通解為x = k11100 + k21021 + 0-1/40-1/4,k1,k2∈R
4. 特征值和特征向量
求解方陣的特征值和特征向量時,很多同學(xué)解不出特征值,顯然影響求解和理解特征向量. 應(yīng)用MATLAB的命令[V, D]=eig(A)可以快速求解特征值特征向量,其中矩陣D為A的特征值所構(gòu)成的對角陣,V的列向量為A的特征向量,與D中特征值一一對應(yīng). 從而可以節(jié)省更多時間來加深理解特征值和特征向量. 當(dāng)矩陣A為對稱陣時,還可用MATLAB命令[V, D]=schur(A)求特征值與特征向量.
例5 求矩陣A = 4 6 0-3 -5 0-3 -6 1的特征值和特征向量.
解 MATLAB命令窗口中輸入:
>>A=[4 6 0;-3 -5 0;-3 -6 1];
>> [V, D]=eig(A)
執(zhí)行后,輸出結(jié)果為:
V =
0 0.5774 -0.8944
0 -0.5774 0.4472
1.0000 -0.5774 0
D =
1 0 0
0 -2 0
0 0 1
上面的輸出結(jié)果可以清楚地看出,特征值與特征向量是相對應(yīng)的,而這一點在課堂學(xué)習(xí)中很容易被忽略.
MATLAB作為一種直觀高效的計算軟件,為線性代數(shù)教學(xué)提供了很好的平臺,它的最大優(yōu)點是數(shù)值計算功能強大,且易學(xué)易懂,運用MATLAB輔助教學(xué),可以省去繁瑣而易錯的手工計算過程,更有利于在教學(xué)中突出重點,有效提高教學(xué)質(zhì)量和效率. 如何在線性代數(shù)教學(xué)中應(yīng)用MATLAB軟件,而不改變線性代數(shù)整個理論體系,需要對現(xiàn)有的線性代數(shù)課程的教學(xué)體系、教學(xué)內(nèi)容和教學(xué)方式進行深刻的改革,讓MATLAB為線性代數(shù)教學(xué)和學(xué)生學(xué)習(xí)效率服務(wù),既發(fā)揮MATLAB的軟件優(yōu)勢,又凸顯線性代數(shù)理論的主體地位.
【參考文獻】
[1]同濟大學(xué)應(yīng)用數(shù)學(xué)系.工程數(shù)學(xué)線性代數(shù)[M].北京:高等教育出版社,2003.
[2]陳懷琛,龔杰明.線性代數(shù)實踐及MATLAB入門[M].2 版.北京:電子工業(yè)出版社,2009.
[3]李紹剛,段復(fù)建等.線性代數(shù)中MATLAB實驗教學(xué)的探索與實踐[J].長春大學(xué)學(xué)報,2010,vol.20,No.6.