
[摘 要] Matlab是當今國際上公認的最優秀的科技應用軟件之一。主要介紹了Matlab在矩陣求逆中的應用,旨在增強學生對線性代數的學習興趣,提高學生的學習積極性和數值計算能力。
[關 鍵 詞] Matlab;矩陣求逆;線性代數
[中圖分類號] G642 [文獻標志碼] A [文章編號] 2096-0603(2016)18-0016-01
一、引言
線性代數是一門應用性極強但理論上又具有高度抽象性的基礎課程,其包含的數學原理和方法廣泛應用于控制、機械及信息工程等領域。瑞典數學家Lars Garding說:“如果不熟悉線性代數的概念,要去學習自然科學,現在看來就和文盲差不多。”然而抽象的理論、繁瑣的計算往往讓學生感受不到線性代數理論體系存在的實際意義,難以調動學生的學習積極性,學生也很難體會到其在科學與工程應用領域中的重要地位。
Matlab是一種以矩陣計算為基礎的交互式程序語言,擁有強大的科學計算和可視化圖形處理功能。而線性代數的主角就是矩陣及其運算,因此將Matlab引入線性代數課堂教學,可以提高學生的數值計算能力,激發學生的學習興趣,有利于教學質量的提高。
本文主要結合線性代數中矩陣求逆這一知識點,深入探討如何借助Matlab軟件來求矩陣的逆。
二、矩陣求逆的方法
設矩陣A(aij)n×n是n階方陣,E是n階單位矩陣,并假方陣可逆。下面詳細介紹求解逆矩陣的方法:
方法一:借助逆矩陣的定義,利用待定系數法求矩陣A的逆。設B是由n2個未知數組成的n階方陣滿足,利用矩陣的乘法運算將其展開可得一個含n2個未知量的線性方程組,應用高斯消元法求解該線性方程組。如果該方程組有唯一解,此時即可得到矩陣A的逆矩陣。但當矩陣A的階數比較高時,利用該方法求逆運算量將非常大。
方法二:借助伴隨矩陣來求解矩陣A的逆:此時,A-1=A*A其中A*為A的伴隨矩陣;注意伴隨矩陣A*的第i行第j列的元素是aji的代數余子式。利用該方法求矩陣A的逆需要計算1個n階行列式和n2個n-1階行列式,因此應用該方法求解高階矩陣的逆時,計算量非常大。
方法三:借助初等變換來求解矩陣A的逆:該方法的基本思路是構造一個n×2n階矩陣A=A E,對A進行初等行變換,當子塊A所在部分化為單位矩陣E時,子塊E所在部分就被化為A-1;類似地也可以借助初等列變換來得到矩陣A的逆矩陣。
上述三種方法都可以用來求解矩陣的逆,但當矩陣的階數比較高時,計算將變得非常復雜。此時為激發學生的學習興趣,增強學生應用數學知識解決實際問題的能力,可以將Matlab引入課堂教學,使學生了解到數學不是枯燥乏味的,它具有很強的實用性。
下面通過一個具體的例子來詳細介紹如何利用Matlab來進行矩陣求逆運算。
①調用求逆命令inv
>>B=inv(A)
②調用左除命令或右除命令,其中表示階單位矩陣,運算符“\”“/”分別表示左除和右除。眾所周知,在矩陣理論中沒有矩陣除法的概念,但在Matlab中可以把乘以逆矩陣看作除法。程序如下:
>>E=eye(5),B=A\E(或B=E/A)
③調用求行列式命令det.首先定義伴隨矩陣函數adj,M函數文件編寫如下:
function adj=adj(A,n)
adj=zeros(n);
for i=1:n
for j=1:n
adj(j,i)=(-1)^(i+j)*det(A([1:i-1,i+1:n],[1:i-1,i+1:n]));
end
end
程序如下:
>>B=adj(A,5)/det(A)
④調用最簡行階梯形命令rref.程序如下:
>>R=rref([A eye(5)]),B=R(:,6:10)
三、結束語
在線性代數教學中適當地引入Matlab,利用Matlab的強大計算功能,激發學生的學習興趣,提高課堂效率,讓學生在感覺到學有所用的同時,提高學生的數值計算能力,為學生日后應用該軟件進行科學與工程計算打下良好的基礎。
參考文獻:
[1]陳懷琛,龔杰民.線性代數實踐及MATLAB入門[M].北京:電子工業出版社,2009.
[2]李尚志.數學實驗[M].北京:高等教育出版社,2004.
[3]同濟大學數學系.工程數學線性代數[M].北京:高等教育出版社,2014.
[4]王沫然.MATLAB與科學計算[M].北京:電子工業出版社,2003.