胡 文
(南京航空航天大學信息科學與技術學院,江蘇南京 210016)
混沌與分形是近年來發(fā)展迅速的熱門研究方向,幾乎涉及理工科各個研究領域[1,2]?!盎煦缗c分形”是我校研究生的一門選修課,主要面向電類專業(yè)學生開設。分岔理論在“混沌與分形”課程中占有非常重要的地位,是理解和分析動力系統(tǒng)進入混沌的關鍵工具。它主要研究隨參數改變,動力系統(tǒng)解的變化[3]。
筆者在分岔理論教學過程中發(fā)現,由于較多抽象的數學概念,工科研究生對該部分內容普遍缺乏興趣。而僅僅通過課堂講解及圖示介紹,學生難以深刻理解分岔理論方面的概念。
探討Matlab應用于課堂輔助教學的文獻很多[4,5],但它們大多是將Matlab作為一種演示工具。將Matlab作為與學生交流的媒介進行互動式教學的專題文章卻很少。筆者通過引導學生在課堂參與調試Matlab程序,直觀的了解平衡點的穩(wěn)定性、非線性系統(tǒng)的線性化、分岔等關鍵概念,加深學生對于分岔理論的理解,取得較好的效果。
分岔理論是對動力系統(tǒng)解的定性變化或拓撲結構改變的數學研究。分岔理論不僅是研究動力系統(tǒng)中動力學特征和現象的主要工具,也影響著對動力系統(tǒng)產生混沌現象的理解。
動力系統(tǒng)中所見到的分岔是當系統(tǒng)參數平滑緩慢改變時,系統(tǒng)發(fā)生拓撲結構上的突變。分岔類型有局部分岔和全局分岔兩類,其中局部分岔可以由簡單的程序直觀描述,是課堂講授的重點。
局部分岔與平衡點、平衡點類型、平衡點穩(wěn)定性等概念緊密相連,需要先給學生講授上述概念。對平衡點和平衡點類型的講授,要利用相空間和解軌跡來進行演示,授課中應對這兩個概念作詳細說明。平衡點穩(wěn)定性的分析涉及雅可比矩陣和它的特征值,授課中需復習這兩個概念。
分岔可以在連續(xù)系統(tǒng)或離散系統(tǒng)中出現。在連續(xù)系統(tǒng)中,局部分岔發(fā)生在平衡點的雅可比矩陣特征值實部為0處,如果特征值為0就是穩(wěn)定狀態(tài)分岔,如果特征值為純虛數就稱為Hopf分岔。對離散系統(tǒng),分岔發(fā)生在平衡點具有模為1的特征值處,如果特征值等于1是鞍結點分岔(或稱穿越分岔、Pitchfork分岔),如果特征值等于-1是倍周期分岔或Hopf分岔。在分岔理論的課程學習中,要求透徹理解連續(xù)和離散系統(tǒng)中常見的局部分岔概念。
分岔理論教學中的上述概念較為抽象和枯燥,但都可以通過一些例子由簡單的Matlab程序演示。在課堂講授分岔理論概念的同時,讓學生參與現場編寫Matlab調試演示程序,能使學生在主動參與中加深理解,提高興趣。演示程序調試的結果,也是教師判斷學生是否理解相關概念的依據。
借助于Matlab中的Ode45函數講解平衡點的類型和穩(wěn)定性。
[例1]采用Ode45函數來演示源、匯和鞍點這三種平衡點的性質,用來演示的二維線性連續(xù)系統(tǒng)為
其中,x∈R2,A為2×2的常系數矩陣。式(1)在原點處有唯一的平衡點,在以原點為圓心的單位園上均勻取8個點為初始值,在相空間中得到8條解的軌跡,由此可以直觀看到原點處平衡點對附近初始值的吸引或排斥特性。
主要源程序為
程序運行結果如圖1(a)所示。
改變矩陣A的取值為
可以分別得到圖1(b)、圖1(c)和圖 1(d)的結果。
從圖1(a)和圖1(b)中可以看到,當矩陣A對角線上的系數全為正時原點處平衡點排斥所有方向的初始值,是不穩(wěn)定平衡點,稱為源。反之則吸引所有方向的初始值,是穩(wěn)定平衡點,稱為結點或匯。從圖1(c)可以看出,從單位圓上的初始值出發(fā)的軌跡,在x1方向上受到吸引,在 x2方向上受到排斥。對比圖1(b)和圖1(d),所有方向上的初始值都受到吸引,不同的只是圖1(d)中的軌跡在收斂到原點的同時還要轉動,因此平衡點對附近初始值的吸引作用只受對角線上系數的影響。作完上述演示后,可以讓學生動手任意改變矩陣A的系數,觀察平衡點特性的變化,學生對矩陣A對角線上系數的影響將有較深刻的體會。再通過討論,引導學生認識到對角線上的系數就是矩陣A的特征值,從而容易理解線性系統(tǒng)平衡點的穩(wěn)定性由系數矩陣特征值的實部決定這一概念。
圖1 系數矩陣A取不同值時平衡點附近初始值的軌跡
在理解線性系統(tǒng)的基礎上進一步討論非線性系統(tǒng),通過復習雅可比矩陣的概念闡述非線性系統(tǒng)的線性化,從而可以將學生對線性系統(tǒng)平衡點穩(wěn)定性的理解擴展到非線性系統(tǒng)。借助Matlab中的Jacobian函數可以容易地計算任意非線性函數的雅可比矩陣。相關主要程序分為三部分,第一部分為利用Jacobian函數得到非線性系統(tǒng)的線性化系統(tǒng),后兩部分利用ode45函數計算非線性系統(tǒng)解的軌跡與線性化系統(tǒng)解的軌跡。
[例2]采用Jacobian函數計算非線性函數的雅可比矩陣,源程序為
運行結果如下:
程序中變量dx表示一個二維非線性函數,兩個變量分別是x1和x2。按需要也可以將dx改為其他的非線性函數。
介紹Jacobian函數的調用方式后,結合例1中ode45函數,學生已經可以自己動手編寫演示程序的后兩部分,對比線性化系統(tǒng)與非線性系統(tǒng)間的軌跡。對比程序的現場編寫調試可加深學生對非線性系統(tǒng)可以用線性化在平衡點附近逼近的理解,其中線性化系統(tǒng)的系數矩陣就是非線性系統(tǒng)的雅可比矩陣。結合例1的結果,學生能較深刻的理解非線性系統(tǒng)平衡點的性質將由雅可比矩陣特征值的實部決定。
[例3]利用Matlab中的Solve函數可以得到動力系統(tǒng)平衡點的值,然后由Jacobian函數得到平衡點上的雅可比矩陣,再由Eig函數得到特征值。這三個函數相互配合可以容易地分析動力系統(tǒng)的局部分岔。
主要源程序為
圖2(a)是程序運行的結果,可以看到當a=0,系統(tǒng)在原點處有唯一的平衡點,由學生動手計算該點的特征值證實該平衡點為鞍結點。隨著a增大到a>0,系統(tǒng)產生了兩個平衡點,一個為鞍點,一個為結點,兩個平衡點的位置隨著a的增大在x1方向上移動。由學生動手,在平衡點附近取初始值,利用ode45函數計算a=0和a=0.5時系統(tǒng)的軌跡。如圖2(b)和圖2(c)所示,直觀證實系統(tǒng)特性在a=0處發(fā)生了改變。逐漸減小a的值接近于0,如圖 2(d)和圖2(e),系統(tǒng)狀態(tài)也將越來越接近a=0時,說明這是一種局部分岔。這個互動演示的過程能使學生對鞍結點分岔概念有更清晰的認識。類似的,改變源程序中的dx變量,分析其他非線性系統(tǒng),讓學生進一步討論和理解其他的局部分岔類型,從而全面的理解各種類型局部分岔的概念。
圖2 鞍結點分岔
在分岔理論的課程教學中,充分利用Matlab軟件工具進行互動式輔助教學。結果表明,這種引導學生參與的演示教學形式,能將抽象概念具體化、形象化和可視化,使學生在動手參與中理解枯燥的理論概念,對教學效果和教學水平的提高也大有裨益。
[1] H.O.Peitgen,H.Jurgens,D.Saupe.Chaos and fractals:New Frontiers of Science(Second edition).New York:Springer-Verlag,Incorporated,2004
[2] R.C.Robinson.An introduction to dynamical systems:Continuous and Discrete.Upper Saddle River,New Jersey:Prentice Hall,2005
[3] P.Blanchard,R.L.Devaney,G.R.Hall.Differential Equations.Pacific Grove,CA:Brooks/Cole Publishing,2006
[4] 黃紅飛.Matlab下DCT變換在信號壓縮中的應用[J].南京:電氣電子教學學報,2007(2)
[5] 張萌,武攀.基于Matlab的多采樣率信號處理教學設計[J].南京:電氣電子教學學報,2009(4)