劉 蒙
(淮陰師范學(xué)院 數(shù)學(xué)科學(xué)學(xué)院, 江蘇 淮安 223300)
MATLAB 軟件在線性代數(shù)教學(xué)中的應(yīng)用
劉 蒙
(淮陰師范學(xué)院 數(shù)學(xué)科學(xué)學(xué)院, 江蘇 淮安 223300)
結(jié)合Matlab的特點和線性代數(shù)課程教學(xué)的現(xiàn)狀,以線性代數(shù)教學(xué)中的一些知識點為例,說明了Matlab在線性教學(xué)中的一些應(yīng)用,以期可以激發(fā)學(xué)生學(xué)習(xí)的積極性,提高教學(xué)效率.
Matlab; 線性代數(shù); 教學(xué)
線性代數(shù)是高等院校計算機、物理、電子信息等理工類專業(yè)以及經(jīng)濟管理、市場營銷、財務(wù)管理等財經(jīng)類專業(yè)必修的一門重要的數(shù)學(xué)類公共基礎(chǔ)課,是學(xué)生學(xué)習(xí)諸多后續(xù)課程的重要理論基礎(chǔ),對培養(yǎng)學(xué)生的思維能力非常重要.該課程的理論不僅滲透到了數(shù)學(xué)的許多分支中,而且在物理、化學(xué)、生物、工程技術(shù)、經(jīng)濟、金融、技術(shù)等領(lǐng)域中都有著廣泛的應(yīng)用,日益成為學(xué)生在以后的工作中解決工程應(yīng)用問題的重要理論工具.但是線性代數(shù)課程本身含有大量比較抽象、較難理解的內(nèi)容,且在很多高校該課程課時量偏少,長期以來學(xué)生普遍感到該課程難以學(xué)習(xí),一學(xué)期結(jié)束不知所學(xué)何物.因此,如何通過改革教學(xué)方法和手段提高線性代數(shù)的教學(xué)效果和學(xué)習(xí)質(zhì)量成為了學(xué)者們普遍關(guān)心的問題.
隨著計算機軟件技術(shù)的快速發(fā)展,將數(shù)學(xué)軟件引入到線性代數(shù)的教學(xué)中已經(jīng)成為該門課程教學(xué)改革的研究熱點.在眾多數(shù)學(xué)軟件中,Matlab應(yīng)用最為廣泛.該軟件是1984年由美國MathWorks公司研制開發(fā),和Mathematica、Maple并稱為三大數(shù)學(xué)軟件,其在數(shù)值計算方面首屈一指[1].將Matlab軟件恰當(dāng)?shù)匾氲骄€性代數(shù)的教學(xué)中不僅可以降低教與學(xué)的難度、激發(fā)學(xué)生的學(xué)習(xí)興趣,還可以提高學(xué)生的理解能力[2-4].本文通過幾個例子對Matlab軟件在線性代數(shù)教學(xué)中的應(yīng)用進行了初步探討,同時給出了若干建議.
線性代數(shù)課程的第一章通常是行列式[5].行列式是一個非?;竞椭匾母拍?17世紀(jì)由日本數(shù)學(xué)家關(guān)孝和提出,其后由萊布尼茨、克萊姆、貝祖、范德蒙德、拉普拉斯、拉格朗日、凱萊、柯西、雅克比等著名數(shù)學(xué)家發(fā)展形成了系統(tǒng)的理論,在多個領(lǐng)域有著重要的應(yīng)用.求行列式值的方法多種多樣,例如:定義法、 按行(列)展開法、數(shù)學(xué)歸納法、遞推法、乘法法則、升階法、拆項法等.教師除了可以向?qū)W生介紹以上計算行列式的方法, 還可以利用Matlab軟件計算并向?qū)W生展示其便利性.這樣學(xué)生在日后的工作中若需要計算較復(fù)雜的行列式可以借助Matlab 軟件,克服難題.
在Matlab中計算行列式的語言命令格式為: det(A), 其中A若是符號矩陣,則返回結(jié)果是符號表達式;若A是一個數(shù)值矩陣,則返回結(jié)果是一個數(shù)值.
例1[5]計算四階行列式
在Matlab窗口中輸入:
?A=[-2-1 5 3; 1 13-9 7; 3 5-1-5; 2-7 8-10]; %定義數(shù)值矩陣
?D=det(A) %求矩陣A的值
執(zhí)行命令,即可得到所求值為:D=-312.
例2 計算三階行列式
在Matlab 窗口中輸入:
? symsabcdefgh%定義系統(tǒng)符號
?A=[abc;def;ghi]; 定義符號矩陣
?D=det(A) %求行列式的值
執(zhí)行命令,即可得到所求值為:
D=i*a*e-a*f*h-i*d*b+d*c*h+g*b*f-g*c*e.
矩陣是線性代數(shù)課程中最重要的概念,其各種運算有各自具體的計算方法,但是都比較繁瑣,而使用Matlab計算僅需一個簡單命令即可實現(xiàn),因此在矩陣的教學(xué)中恰當(dāng)引入Matlab可以有效地激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)習(xí)效率.
2.1 矩陣的加/減法
在Matlab中進行矩陣加/減法運算要求相加/減的兩個矩陣具有相同的行數(shù)和列數(shù),否則不能相加/減.
例3[5]設(shè)
求3A-2B+C.
在Matlab窗口中輸入:
?A=[2 4 1; 0 3 5];B=[-1 3 1; 2 0 5];C=[0 1 2;-3-1 3]; %定義數(shù)值矩陣
? 3*A-2*B+C
執(zhí)行命令,即可得到所求結(jié)果為
即:
2.2 矩陣的乘法
在Matlab 中進行矩陣乘法運算要求左邊矩陣的列數(shù)與右邊矩陣的行數(shù)相同,否則不能相乘.值得注意的是,矩陣的乘法一般不滿足交換律(AB≠BA)和消去律(AB=AC且A是非零矩陣推不出B=C).
在Matlab 窗口中輸入:
?A=[1 0-1 2;-1 1 3 0; 0 5-1 4];B=[0 3 4; 1 2 1; 3 1-1;-1 2 1]; %定義數(shù)值矩陣
?A*B,B*A
執(zhí)行命令,即可得到所求結(jié)果為
即:
這個例子也說明了矩陣的乘法一般不滿足交換律.
在Matlab窗口中輸入:
?A=[1 3; 1 3];B=[0 3; 0-1];C=[6 0;-2 0]; %定義數(shù)值矩陣
?A*B,A*C
執(zhí)行命令,即可得到所求結(jié)果為
即:
這個例子在說明了矩陣的乘法一般不滿足消去律的同時還說明了非零矩陣的乘積可以是一個零矩陣.
2.3 矩陣的轉(zhuǎn)置
矩陣A的轉(zhuǎn)置是指將該矩陣的行變成列、列變成行形成的新矩陣,記為AT.在Matlab中矩陣轉(zhuǎn)置運算的命令有兩個,一個是“′”,另一個是“. '”.二者的區(qū)別是前者完成的是共軛轉(zhuǎn)置,后者完成的是一般意義下的轉(zhuǎn)置.對于實數(shù)矩陣,二者無區(qū)別,但是對于復(fù)數(shù)矩陣,二者有區(qū)別.
在Matlab 窗口中輸入:
?A=[1 0-1 2+i;-1 1 3 0; 0 5-1 4]; %定義數(shù)值矩陣
?A′,A′
2.4 矩陣的逆
矩陣A的逆記為A-1. 在Matlab中矩陣逆運算是“inv(A)”, 其中A須為方陣,即行列相同的矩陣.
在Matlab 窗口中輸入:
?A=[-2 3-1;0 7 4;1 5 6]; %定義數(shù)值矩陣
? inv(A)
執(zhí)行命令,即可得到所求結(jié)果為
即:
2.5 矩陣的秩
在教學(xué)中,通常向?qū)W生介紹利用化階梯形矩陣的方法求矩陣的秩,比較繁瑣.利用Matlab就簡單的多,其命令為“rank(A)”,其中A為矩陣.
例8[5]設(shè)
求r(A).
在Matlab窗口中輸入:
?A=[1 1 2 5 7; 1 2 3 7 10; 1 3 4 9 13; 1 4 5 11 16]; %定義數(shù)值矩陣
? rank(A)
執(zhí)行命令,即可得到所求結(jié)果為ans=2即矩陣的秩為2.
2.6 矩陣的跡
矩陣的跡是指矩陣主對角線元素之和,在Matlab中其命令為“trace(A)”,其中A為方陣.
在Matlab窗口中輸入:
?A=[1 1 2 5; 1 2 3 7; 1 3 4 9; 1 4 5 11]; %定義數(shù)值矩陣
? trace(A)
執(zhí)行命令,即可得到所求結(jié)果為ans=18 矩陣的跡為18.
2.7 矩陣的特征值、特征向量
在Matlab中,計算矩陣A的特征值和特征向量的函數(shù)是eig(A),最常見的調(diào)用格式有以下兩種E=eig(A)和[V,D]=eig(A). 前者求矩陣A的全部特征值,構(gòu)成向量E;后者求矩陣A的全部特征值,構(gòu)成對角陣D,并求A的特征向量構(gòu)成V的列向量.
在Matlab窗口中輸入:
?A=[1 2 2; 2 1 2; 2 2 1]; %定義數(shù)值矩陣
?E=eig(A),[V,D]=eig(A)
執(zhí)行命令,即可得到所求結(jié)果為
求解線性方程組是線性代數(shù)的核心問題,貫穿課程始終.求解線性方程組的一般方法有克萊姆法則法、高斯消去法、逆矩陣法等.
例11[5]解方程組
解法1: 克萊姆法則法在Matlab窗口中輸入:
?A=[2 1-5 1; 1-3 0-6; 0 2-1 2; 1 4-7 6];
?A1=[8 1-5 1; 9-3 0-6;-5 2-1 2; 0 4-7 6];
?A2=[2 8-5 1; 1 9 0-6; 0-5-1 2; 1 0-7 6];
?A3=[2 1 8 1; 1-3 9-6; 0 2-5 2; 1 4 0 6];
?A4=[2 1-5 8; 1-3 0 9; 0 2-1-5; 1 4-7 0];
?x1=det(A1)/det(A),x2=det(A2)/det(A),x3=det(A3)/det(A),x4=det(A4)/det(A)
執(zhí)行命令,即可得到所求結(jié)果為
x1=3;x2=-4;x3=-1;x4=1
解法2: 逆矩陣法
在Matlab窗口中輸入:
?A=[2 1-5 1; 1-3 0-6; 0 2-1 2; 1 4-7 6];
?b=[8; 9;-5; 0];
?X=inv(A)*b
執(zhí)行命令,即可得到所求結(jié)果為
在線性代數(shù)的教學(xué)引入Matlab,可以克服傳統(tǒng)板書教學(xué)中內(nèi)容講解抽象、學(xué)生學(xué)習(xí)積極性不高、缺乏興趣等不足,可以使得枯燥的課堂生動有趣.但不能否認(rèn)的是,Matlab在線性代數(shù)的教學(xué)中只可起到輔助的作用,平時的教學(xué)還是須以課本知識為主,不可本末倒置.
[1] 劉保柱,蘇彥華,張宏. Matlab 7.0從入門到精通[M]. 北京: 人民郵電出版社, 2010.
[2] 劉春霞. MATLAB在線性代數(shù)教學(xué)中的應(yīng)用[J].淮陰師范學(xué)院學(xué)報:自然科學(xué)版, 2015, 14(3): 248-251.
[3] 張雪峰. MATLAB仿真軟件在線性代數(shù)課程中的應(yīng)用研究[J]. 曲阜師范大學(xué)學(xué)報:自然科學(xué)版, 2016, 42(1): 42-46.
[4] 魏鳳英. 基于矩陣求逆談高等代數(shù)中的計算及MATLAB 實現(xiàn)[J].長春大學(xué)學(xué)報, 2013, 23(10): 1279-1281.
[5] 陳伏兵. 應(yīng)用線性代數(shù)[M]. 北京: 科學(xué)出版社, 2011.
[責(zé)任編輯:李春紅]
2016-11-25
國家自然科學(xué)基金資助項目(11301207);江蘇省高?!扒嗨{工程”優(yōu)秀青年骨干教師(2014)資助項目;江蘇省“333高層次
劉蒙(1987-),男,安徽蕭縣人,副教授,博士研究生,研究方向為微分方程及其應(yīng)用.E-mail: liumeng@hytc.edu.cn
G473
A
1671-6876(2017)01-0080-04
人才培養(yǎng)工程”與江蘇省高校優(yōu)秀中青年教師境外研修計劃資助