【摘 要】線性代數(shù)是大學(xué)理工科專業(yè)和經(jīng)管類專業(yè)學(xué)生必修的一門基礎(chǔ)課,其重要內(nèi)容主要包括:行列式、矩陣、向量、線性方程組、特征值與特征向量、二次型。其中特征值和特征向量理論已經(jīng)廣泛應(yīng)用于科學(xué)技術(shù)的各個(gè)領(lǐng)域,不僅可以直接解決數(shù)學(xué)中諸如非線性規(guī)劃、常微分方程以及其他各類數(shù)學(xué)計(jì)算問(wèn)題,而且在結(jié)構(gòu)力學(xué)、工程設(shè)計(jì)、計(jì)算物理和量子力學(xué)中都發(fā)揮著重要的作用。在工程計(jì)算中,求解方陣特征值是最普遍的問(wèn)題之一,如動(dòng)力系統(tǒng)和結(jié)構(gòu)系統(tǒng)中的振動(dòng)問(wèn)題、電力系統(tǒng)的靜態(tài)穩(wěn)定性分析、工程設(shè)計(jì)中的某臨界值的確定等,都可以歸結(jié)為求解方陣特征值的問(wèn)題。本文通過(guò)借助數(shù)學(xué)軟件Matlab介紹如何計(jì)算特征值和特征向量。
【關(guān)鍵詞】線性代數(shù);Matlab;數(shù)學(xué)課堂;特征值;特征向量
【中圖分類號(hào)】G642? 【文獻(xiàn)標(biāo)識(shí)碼】A? 【文章編號(hào)】1671-8437(2020)28-0008-02
Matlab的產(chǎn)生與數(shù)學(xué)計(jì)算有著密切的關(guān)系。70年代中期,美國(guó)的穆勒教授及其同事在美國(guó)國(guó)家基金會(huì)的資助下,開(kāi)發(fā)了線性代數(shù)的Fortran子程序庫(kù)[1]。不久,他在給學(xué)生講線性代數(shù)課時(shí),為了讓學(xué)生能使用子程序庫(kù)又不至于在編程上花費(fèi)過(guò)多的時(shí)間,便為學(xué)生編寫了使用子程序的接口程序。他將這個(gè)接口程序取名為Mat1ab,意為“矩陣實(shí)驗(yàn)室”。
1? ?概述
矩陣計(jì)算是科學(xué)和工程計(jì)算的核心,特征值與特征向量計(jì)算是矩陣計(jì)算的基本問(wèn)題之一。在教學(xué)特征值與特征向量這一章時(shí),要先構(gòu)建特征方程,通過(guò)計(jì)算化簡(jiǎn)行列式求出特征值[2]。一個(gè)n階方陣有n個(gè)特征值,包括單特征值、重特征值和復(fù)特征值,其中復(fù)特征值是成對(duì)出現(xiàn)的[3]。求出特征值后,通過(guò)解特征值所對(duì)應(yīng)的齊次線性方程組,求出每個(gè)特征值所對(duì)應(yīng)的齊次線性方程組的基礎(chǔ)解系,而特征向量就是基礎(chǔ)解系的非零線性組合[4-6]。利用Matlab計(jì)算特征值和特征向量的實(shí)例如下。
2? ?利用Matlab求三階方陣A的特征值及特征向量
解:命令窗口運(yùn)行如下。
>> A=[8 1 6;3 5 7;4 9 2]? ? %生成一個(gè)3階方陣
A =
8? ? ?1? ? ?6
3? ? ?5? ? ?7
4? ? ?9? ? ?2
>> eig(A)%求3階方陣A的特征值
輸出結(jié)果為:
ans =
15.0000
4.8990
-4.8990? ? ? ? ? ? %3階方陣A的特征值分別為:15.0000,4.899, -4.8990
命令窗口運(yùn)行如下。
>> [X,D]=eig(A)? ? ? ? ? %產(chǎn)生一個(gè)對(duì)角矩陣D,對(duì)角線為矩陣A的特征值;產(chǎn)生一個(gè)矩陣X,每一列為矩陣A對(duì)應(yīng)的特征向量
輸出結(jié)果為:
X =
-0.5774? ?-0.8131? ?-0.3416
-0.5774? ? 0.4714? ?-0.4714
-0.5774? ? 0.3416? ? 0.8131
D =
15.0000? ? ?0? ? ? ? ?0
0? ? ? ? 4.8990? ? ? ?0
0? ? ? ? ? 0? ? ? -4.8990
通過(guò)運(yùn)行Matlab程序,可知矩陣A有三個(gè)不同的特征值,分別為15.0000,4.8990,-4.8990。對(duì)應(yīng)特征值15.0000的全部特征向量是矩陣X的第一列構(gòu)成的列向量乘以非零常數(shù)K1;對(duì)應(yīng)特征值4.8990的全部特征向量是矩陣X的第二列構(gòu)成的列向量乘以非零常數(shù)K2;對(duì)應(yīng)特征值-4.8990的全部特征向量是矩陣X的第三列構(gòu)成的列向量乘以非零常數(shù)K3。
3? ?利用Matlab求三階方陣B的特征值及特征向量
解:命令窗口運(yùn)行如下。
>> B=[-1,1,0;-4,3,0;1,0,2]? %生成一個(gè)3階方陣
輸出結(jié)果為:
B =
-1? ? ?1? ? ?0
-4? ? ?3? ? ?0
1? ? ?0? ? ?2
命令窗口運(yùn)行如下。
>> eig(B)
輸出結(jié)果為:
ans =
2
1
1
命令窗口運(yùn)行如下。
>> [X,D]=eig(B)
輸出結(jié)果為:
X =
0? ? ? ?0.4082? ? ? 0.4082
0? ? ? ?0.8165? ? ? 0.8165
1.0000? ? -0.4082? ? ?-0.4082
D =
2? ? ? ? ?0? ? ? ? ? ?0
0? ? ? ? ?1? ? ? ? ? ?0
0? ? ? ? ?0? ? ? ? ? ?1
通過(guò)運(yùn)行Matlab程序可知,矩陣A有一個(gè)單特征值2,一個(gè)二重特征值1,1。對(duì)應(yīng)于特征值2的全部特征向量是矩陣X的第一列構(gòu)成的列向量乘以非零任意常數(shù)K1;對(duì)應(yīng)于特征值1的全部特征向量是不全為零的任意常數(shù)K2與K3分別乘以矩陣X的第二、三列構(gòu)成的列向量的和
向量。
4? ?利用Matlab求三階方陣C的特征值和特征向量
解:命令窗口運(yùn)行如下。
>>? C= [0,-1,0;1,0,0;0,0,1]
輸出結(jié)果為:
C =
0? ? ? ? -1? ? ? ? ? ?0
1? ? ? ? ?0? ? ? ? ? ?0
0? ? ? ? ?0? ? ? ? ? ?1
命令窗口運(yùn)行如下:
>> eig(C)
輸出結(jié)果為:
ans =
0 + 1.0000i
0 - 1.0000i
1.0000
命令窗口運(yùn)行如下。
>> [X,D]=eig(C)
輸出結(jié)果為:
X =
0.7071? ? ? ? ? 0.7071? ? ? ? ? ? 0
0 - 0.7071i? ? ?0 + 0.7071i? ? ? ? 0
0? ? ? ? ? ? ? 0? ? ? ? ? ? ? 1.0000
D =
0 + 1.0000i? ? 0? ? ? ? ? ? ? ? 0
0? ? ? ? ? ? ? 0 - 1.0000i? ? ? 0
0? ? ? ? ? ? ? 0? ? ? ? ? ? ? 1.0000
通過(guò)運(yùn)行Matlab程序可知,矩陣C有一對(duì)共軛復(fù)特征值i,-i,和一個(gè)單特征值1。對(duì)應(yīng)于特征值i的全部特征向量是矩陣X的第一列構(gòu)成的列向量乘以非零任意常數(shù)K1;對(duì)應(yīng)于特征值-i的全部特征向量是矩陣X的第二列構(gòu)成的列向量乘以非零常數(shù)K2;對(duì)應(yīng)于特征值1的全部特征向量是矩陣X的第三列構(gòu)成的列向量乘以非零常
數(shù)K3。
5? ?總結(jié)
本文介紹了利用Matlab求三階實(shí)方陣特征值和特征向量的具體命令和方法。利用Matlab不僅可以求解教材常見(jiàn)的二、三階方陣,還可以求解三階以上的實(shí)方陣的特征值和特征向量,操作方式和例題完全類似。步驟較為簡(jiǎn)單,為學(xué)生提供了一種新的計(jì)算方法。
【參考文獻(xiàn)】
[1]張明.《線性代數(shù)》中“特征值與特征向量”的教學(xué)創(chuàng)新探析[J].創(chuàng)新創(chuàng)業(yè)理論研究與實(shí)踐,2019(21).
[2]同濟(jì)大學(xué)數(shù)學(xué)系.工程數(shù)學(xué)[M].北京:高等教育出版社,2014.
[3]同濟(jì)大學(xué)數(shù)學(xué)系.高等數(shù)學(xué)[M].北京:高等教育出版社,2014.
[4]孫培青.中國(guó)教育史[M].上海:華東師范大學(xué)出版社,2008.
[5]居余馬等編著.線性代數(shù)[M].清華大學(xué)出版社,2002.
[6]戴維.C.雷.線性代數(shù)及其應(yīng)用[M].機(jī)械工業(yè)出版社,2017.
【作者簡(jiǎn)介】
宮曉俊(1993~),女,漢族,山西朔州人,碩士,助教。研究方向:動(dòng)力系統(tǒng)。