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