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