?

對比手法在MATLAB教學改革中的應用

2022-06-15 05:49王鳳郝向英
教育現代化 2022年25期
關鍵詞:線性方程組方陣特征向量

王鳳,郝向英

(武漢工程大學 光電信息與能源工程學院,湖北 武漢)

Matlab是一款應用十分廣泛的數學分析軟件[1]。Matlab以矩陣作為數據操作的基本形式,并且還提供了很多數值計算函數,使得運算變得非常簡潔、方便。Matlab也提供了很多繪圖命令,不僅可以繪制各種圖形,還可以對圖形進行修飾處理[2]。此外,Matlab還具有強大的符號計算功能、程序語言設計功能和工具箱的擴展功能。在很多高等學校,Matlab成為線性代數、自動控制理論、數字信號處理、動態系統仿真、圖像處理等諸多課程的基本教學工具[3-5]。Matlab也是很多科學研究工作者進行理論數值模擬,實驗數據分析的首選工具。熟練掌握Matlab語言特點和命令操作是學好Matlab的關鍵。由于Matlab基礎語言較為簡單,以往,對該部分的講解側重于命令的使用方法,并且花費很少的課程時間去講解該部分。這種教學模式會使學生感到枯燥無味,并且無法理解每條命令的真正含義,從而導致學生學習興趣和專注力的降低[6-7]。

對比手法是文學創作中常用的一種表現手法,可以將兩種對應的事物對照比較,使形象更鮮明,感受更強烈。對比手法已經應用于一些文學類教學中[8-9],并取得了較好的課堂效果。將對比手法應用于Matlab教學中,在對一些命令講解時,除了講解該命令的使用規則,還對比講解該命令在數學上的求解過程,不僅使學生理解每條命令的具體含義,還幫助學生回顧其他課程的相關內容。據觀察,學生往往對實用性強的課程表現出極大的興趣。融入對比手法的Matlab課程講授可突顯Matlab軟件在實際應用方面的便利和強大之處,從而調動學生的積極性和主觀能動性。

一 對比手法在Matlab教學中的應用案例

(一) 矩陣的乘法

矩陣的乘法是Matlab的基本算術運算之一。其在《MATLAB程序設計與應用》[10]第2章第5小節中講到。

首先,我們先講在線性代數中,矩陣的乘法如何求解。對于兩個矩陣A和B,若矩陣A為m行n列的矩陣,矩陣B為n行p列的矩陣,則矩陣C=A×B為m行p列的矩陣,矩陣C中各個元素為這里要注意的是矩陣A的列數要等于矩陣B的行數,矩陣A乘以矩陣B才得以運行。接著,舉一個具體的實例。若矩陣則按照上述公式得到矩陣以矩陣C中第一行一列的元素為例,C(1,1)=A(1,1)×B(1,1)+A(1,2)×B(2,1)=1×1+2×4=9。

接下來,對比在Matlab軟件中矩陣的乘法如何計算。在Matlab軟件中,矩陣乘法用*這個命令,要得到兩個矩陣A和B的乘積,需在命令行窗口輸入A*B,并按Enter鍵,即可得到結果。以上述實例(一)中的矩陣A和B為例,具體命令如下:

>> A=[1,2;3,4];

>> B=[1,2,3;4,5,6];

>> C=A*B

C =

9 12 15

19 26 33

(二) 矩陣的逆

逆矩陣是矩陣理論中很重要的內容,逆矩陣的求法自然也是線性代數研究的重點內容之一。在《MATLAB程序設計與應用》[10]第3章第2小節中,講到矩陣的逆:對于一個方陣A,若存在一個與其同階的方陣B,使得為單位矩陣,則稱B為A的逆矩陣,A也為B的逆矩陣。

首先,我們先講解線性代數中矩陣的逆如何求解。對于任一二階方陣其逆矩陣A*是方陣A的伴隨矩陣,A*為方陣A的余子式M的轉置。為方陣A的行列式的值。方陣A的余子式同樣地,給出一個實例,對于方陣先求出方陣A的余子式即得方陣A的伴隨矩陣接著求出方陣A的行列式的值可得到方陣A的逆矩陣

下面,我們對比在Matlab軟件中矩陣逆的求法。在Matlab中,矩陣逆可用一個命令inv求出。在命令行窗口,我們輸入inv(A),并按Enter鍵,即可得到結果。以上述實例(二)中的方陣A為例,具體命令如下:

>> A=[1,2;3,4];

>> inv(A)

ans =

-2.0000 1.0000

1.5000 -0.5000

(三) 非齊次線性方程組的求解

在《MATLAB程序設計與應用》[10]第3章第2小節中講到了非齊次線性方程組的求解。線性方程組是指由n個方程構成的線性方程組:

當b1,b2…bn不全為零時,為非齊次線性方程組。其中為系數矩陣,非齊次線性方程組可表示為Ax=b,在其左右兩邊各左乘系數矩陣的逆矩陣A-1,得x=A-1b,即非齊次線性方程組的解可由系數矩陣A的逆矩陣乘以b得到。

接著我們對比在Matlab中非齊次線性方程組是如何求解的。由實例(一),我們知道在Matlab軟件中,矩陣的逆使用命令函數inv。由實例(二),我們知道Matlab軟件中,矩陣的乘法使用命令*。因此,我們在命令行窗口輸入x=inv(A)*b,即可得到非齊次線性方程組的解。以上述實例(三)中的非齊次線性方程組為例,具體命令如下:

>> A=[1,2,3;1,4,9;1,8,27];

>> b=[5;-2;6];

>> x=inv(A)*b

x =

23.0000

-14.5000

3.6667

(四) 齊次線性方程組的求解

當線性方程組(1)中的b1,b2…bn全為零時,為齊次線性方程組。當系數矩陣A經過初等行變換所化到的行階梯形矩陣的非零行行數小于A的列數時,齊次線性方程組有非零解。與非齊次線性方程組不同,齊次線性方程組的解不能運用系數矩陣A的逆矩陣來求解。給出一個實例,講解齊次線性方程組的求解方法。若一個齊次線性方程組為其系數矩陣求該齊次線性方程組的解,先對系數矩陣A進行初等行變換,分別進行將矩陣A中的第三行減去四倍的第一行,第二行減去二倍的第一行,得接著將第三行減去第二行得此矩陣是最簡化的系數矩陣,其對應的方程組為令z=k,k為任意實數,原齊次線性方程組的解為

接著我們對比在Matlab中,齊次線性方程的解如何求得。在命令行窗口輸入x=null(A),即可得到齊次線性方程組的非零解。值得注意的是,齊次線性方程組存在多組非零解,用Matlab求解,只可得到其中一組非零解。以上述實例(四)中的齊次線性方程組為例,具體命令如下:

>> A=[1,2,-1;2,3,1;4,7,-1];

>> x=null(A)

x =

-0.8452

0.5071

0.1690

(五) 矩陣的特征值與特征向量

在《MATLAB程序設計與應用》[10]第3章第4小節中講到了矩陣的特征值與特征向量。對于n階方陣A,若Aξ=λξ成立,則λ和ξ是方陣A的特征值和特征向量。等式Aξ=λξ等價于(A-λI)ξ=0,I是單位矩陣。若使方程(A-λI)ξ=0有非零解,則其系數行列式|A-λI|必須等于0。

接著我們對比在Matlab中,方陣的特征值與特征向量如何求得。在Matlab中,我們用eig函數求方陣的特征值和特征向量,其調用格式為[X,D]=eig(A),D是一個對角陣,其對角線上的元素為方陣A的全部特征值,X是與D同階的方陣,其各列是對角陣D中各特征值相應的特征向量。值得注意的是,方陣A在某一特征值下對應多組特征向量,用Matlab求解,只可得到其中一組特征向量。以上述實例(五)中的方陣A為例,具體命令如下:

>> A=[2,1;3,0];

>> [X,D]=eig(A)

X =

0.7071 -0.3162

0.7071 0.9487

D =

3.0000 0

0 -1.0000

(六) 多項式求根

在《MATLAB程序設計與應用》[10]第6章第2小節中講到了多項式求根。多項式是指由若干個單項式相加組成的代數式,其形如以2次多項式為例,2次多項式形如在數學上,我們一般用配方法來求其根,其兩個根分別是舉一個實例,對于2次多項式用配方法可得其兩個根分別是x1=1.099和x2=-9.099。

下面,我們對比在Matlab軟件中如何計算多項式的根。在Matlab軟件中,我們可以用三種方法來計算多項式的根,其中最簡單的一種是運用命令函數roots。值得注意的是,在Matlab中,多項式可由一個行向量表示,其各個元素分別為各個單項式的系數,并且按照從高次冪依次往低次冪排布。以上述實例(六)中的2次多項式為例,具體命令如下:

>> P=[1,8,-10];

>> x=roots(P)

x =

-9.0990

1.0990

第二種計算多項式的根的方法是利用多項式的伴隨矩陣求得。多項式的伴隨矩陣對應的特征值,即為多項式的根。在Matlab中,我們運用函數compan求多項式的伴隨矩陣。在實例(五)中已講到用eig函數求某方陣的特征值。該方法的具體命令如下:

>> P=[1,8,-10];

>> A=compan(P);

>> x=eig(A)

x =

-9.0990

1.0990

第三種計算多項式的根的方法是利用到《MATLAB程序設計與應用》[10]第5章第1小節中講到的二維圖形繪圖法。我們可以提供一組x坐標,并將其帶入多項式中。令多項式的值為y坐標,繪制分別以x和y為橫、縱坐標的二維曲線。這條二維曲線與y=0曲線的交點即為多項式的根。該方法的具體命令如下:

>> x=[-15:0.1:15];

>> p=x.^2+8*x-10;

>> figure

>> plot(x,p)

>> grid on

圖1 實例(六)中的2次多項式y=x2+8x-10

從以上六個實例看出,運用Matlab軟件后,很多在數學中較為復雜的解法變得簡潔,方便。通過將數學解法與Matlab的命令操作進行對比,使得學生深入地理解了Matlab每條命令的意義,便于學生記憶Matlab的基礎語言和命令。

二 效果評價

Matlab課程包括理論講授和上機實驗操作兩部分。在Matlab理論講授過程中引入對比手法,經過近幾年的課程實踐,從學生的反饋來看,課程得到了認可,學生的學習熱情得到了激發。很多學生反饋,對比某一運算的數學解法和其在Matlab中的命令操作,幫助他們理解每條命令的具體含義,并加速他們對Matlab基礎命令的記憶。并且,在上機實驗操作時,他們不再是機械化地敲命令,而是會思考和分析命令運行后得到的結果。此外,Matlab課程安排在高等數學,線性代數,矩陣論等課程之后,該教學方法還幫助他們復習了相關課程中的知識要點。

三 結語

本文針對Matlab基礎語言和命令講解中存在的問題進行分析,提出應用對比手法,通過對比Matlab的命令操作及其數學解法,加深學生對Matlab命令的理解。經過近幾年的不斷摸索與實踐,課程得到了學生的認可,學習熱情得以提高。在接下來的教學過程中,將進一步優化教學內容,更加深入地探索有利于培養學生自主性,創新性以及解決問題的能力。

猜你喜歡
線性方程組方陣特征向量
二年制職教本科線性代數課程的幾何化教學設計——以特征值和特征向量為例
一類整系數齊次線性方程組的整數解存在性問題
方陣訓練的滋味真不好受
克羅內克積的特征向量
求解非線性方程組的Newton迭代與Newton-Kazcmarz迭代的吸引域
H-矩陣線性方程組的一類預條件并行多分裂SOR迭代法
最強大腦:棋子方陣
一類特殊矩陣特征向量的求法
EXCEL表格計算判斷矩陣近似特征向量在AHP法檢驗上的應用
實力方陣 璀璨的星群
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合