摘要:利用數(shù)學(xué)軟件強(qiáng)大的符號計(jì)算功能,我們可以改變傳統(tǒng)課堂的教學(xué)方式,并收到良好的教學(xué)效果。本文通過用Mathematica解數(shù)列遞歸關(guān)系的例子,來說明Mathematica在組合數(shù)學(xué)教學(xué)中的巨大功效。數(shù)學(xué)在某種程度上也可以變成一門“實(shí)驗(yàn)科學(xué)”。
關(guān)鍵詞:組合數(shù)學(xué);Mathematica;遞歸關(guān)系
中圖分類號:G642.4 文獻(xiàn)標(biāo)志碼:A 文章編號:1674-9324(2014)23-0114-02
一、引言
組合數(shù)學(xué)是數(shù)學(xué)的一個(gè)基本分支學(xué)科,也是高等院校數(shù)學(xué)專業(yè)的專業(yè)必修課,它主要研究離散對象在各種約束條件下的安排和配置問題。近年來計(jì)算機(jī)技術(shù)的飛速發(fā)展對我們的生活有了越來越大的影響。計(jì)算機(jī)計(jì)算速度的提升,使我們能夠解決許多以往難以想象的大規(guī)模的計(jì)算問題。但計(jì)算機(jī)裸機(jī)并不能自己進(jìn)行運(yùn)算,它需要相應(yīng)的程序作為基礎(chǔ),而這些程序的基礎(chǔ)又往往是一些組合算法,因此組合數(shù)學(xué)在計(jì)算機(jī)技術(shù)的發(fā)展中起著非常重要的作用。反過來,計(jì)算機(jī)技術(shù)特別是數(shù)學(xué)軟件也可以在組合數(shù)學(xué)的教學(xué)中發(fā)揮作用?,F(xiàn)在有幾款比較成熟的數(shù)學(xué)軟件,比如Mathematica,Maple,Matlab,它們都具有強(qiáng)大的數(shù)值計(jì)算和符號計(jì)算功能,可以給我們的數(shù)學(xué)研究與教學(xué)帶來極大的便利。在教學(xué)中適當(dāng)?shù)厥褂眠@些軟件,同時(shí)教會(huì)學(xué)生使用這些軟件,可以激發(fā)學(xué)生的學(xué)習(xí)熱情,取得更好的教學(xué)效果,同時(shí)也讓學(xué)生有一技之長,對他們?nèi)蘸蟮墓ぷ骱蛯W(xué)習(xí)都是很有幫助的。本文通過用Mathematica求解數(shù)列遞歸關(guān)系的例子,來說明Mathematica在組合數(shù)學(xué)教學(xué)中的巨大功效。
二、使用Mathematica求解數(shù)列遞歸
(一)求解線性齊次遞歸關(guān)系
求解線性遞歸關(guān)系(齊次或者非齊次)是組合數(shù)學(xué)的重要內(nèi)容,我們舉一個(gè)例子來說明:an=5an-1-6an-2,n≥2。在傳統(tǒng)的數(shù)學(xué)教學(xué)中,我們采用特征方程的方法:上述遞歸關(guān)系的特征方程是x2=5x-6,兩個(gè)特征根是x1=2,x2=3,因?yàn)閮蓚€(gè)特征根不相等,所以數(shù)列的通項(xiàng)公式是an=c12n+c23n,其中c1,c2是任意的常數(shù)。
在Mathemacita中,求解遞歸關(guān)系的命令是RSolve。我們只需要在Mathematica的工作環(huán)境中輸入
RSolve[{a[n]==5a[n-1]-6a[n-2]},a[n],n]
(注意我們要用兩個(gè)等號==來表示相等,一個(gè)等號=表示的是賦值)然后運(yùn)行(按Shift+Enter),就得到了以下結(jié)果
a[n] 2n C[1]+3n C[2]
注意在Mathematica中,兩個(gè)任意的常數(shù)是用C[1],C[2]來表示的。
如果給定了初值,比如a0=1,a2=4,那么我們只需要改一下命令
RSolve[{a[n]==5a[n-1]-6a[n-2],a[0] 1,a[1] 4},a[n],n]
運(yùn)行之后就得到
a[n] -2n+2 3n
(二)求解線性非齊次遞歸關(guān)系
求解線性非齊次遞歸關(guān)系是一個(gè)比較困難的問題,主要的難點(diǎn)在于要先找到一個(gè)特解。雖然也有現(xiàn)成的規(guī)則,但因?yàn)榉浅┈嵍y以記憶,學(xué)生要么記不住這些規(guī)則,要么記住了但不明白為什么,實(shí)際的掌握效果是很差的。另外,求解一個(gè)非齊次的遞歸關(guān)系往往需要較長的時(shí)間,一般程度的學(xué)生大約需要花十分鐘,而且很容易算錯(cuò),這導(dǎo)致學(xué)生不會(huì)做很多的練習(xí),計(jì)算的經(jīng)驗(yàn)相當(dāng)缺乏。利用Mathematica,我們可以在短時(shí)間內(nèi)演算大量的例子,并且通過改動(dòng)遞歸關(guān)系中的參數(shù),用直觀的結(jié)果讓學(xué)生體會(huì)解的細(xì)微變化,這樣可以給學(xué)生留下較為深刻的印象,并激發(fā)他們學(xué)習(xí)的熱情。
1.比如我們要求解an=5an-1-6an-2+(n2+2),我們在Mathematica中輸入
RSolve[{a[n]==5a[n-1]-6a[n-2]+(n^2+2)},a[n],n]
運(yùn)行后就能得到
a[n] 1/2(17+7n+n2)+2n C[1]+3n C[2]
初始的非齊次項(xiàng)n2+2是n的二次多項(xiàng)式,特解(n2+7n+17)也是n的二次多項(xiàng)式,很符合常理,也符合學(xué)生們的預(yù)期。
2.如果我們改變一下非齊次項(xiàng),多一個(gè)2的冪次,變?yōu)閍n=5an-1-6an-2+(n2+2)2n,它的解會(huì)有什么變化呢?我們在Mathematica中輸入
RSolve[{a[n]==5a[n-1]-6a[n-2]+(n^2+2)2^n},a[n],n]
運(yùn)行后得到
a[n] -(1/3)2n(288+121n+21n2+2n3)+2n C[1]+3n C[2]
學(xué)生在這個(gè)時(shí)候會(huì)很驚訝:為什么特解-(2n3+21n2+121n+288)2n中包含n的三次方呢?比非齊次項(xiàng)中n的次數(shù)高了一。
3.我們再改變一下非齊次項(xiàng),多一個(gè)3的冪次,變?yōu)閍n=5an-1-6an-2+(n2+2)3n,解會(huì)如何變化呢?我們在Mathematica中輸入
RSolve[{a[n]==5a[n-1]-6a[n-2]+(n^2+2)3^n},a[n],n]
運(yùn)行后得到
a[n] 1/2 3n(-162+61n-9n2+2n3)+2n C[1]+3n C[2]
特解(2n3-9n2+61n-162)3n中也包含n的三次方,比非齊次項(xiàng)中n的次數(shù)高了一。
4.我們繼續(xù)改變非齊次項(xiàng),多一個(gè)5的冪次,變?yōu)閍n=5an-1-6an-2+(n2+2)5n,解會(huì)如何變化呢?我們在Mathematica中輸入
RSolve[{a[n]==5a[n-1]-6a[n-2]+(n^2+2)5^n},a[n],n]
運(yùn)行后得到
a[n] 1/54 52+n(104-39n+9n2)+2n C[1]+3n C[2]
特解(9n2-39n+104)5n是的二次多項(xiàng)式,比非齊次項(xiàng)中n的次數(shù)一樣。
通過對比上面四個(gè)例子,學(xué)生們有了一個(gè)模糊的認(rèn)識(shí):如果非齊次項(xiàng)含有特征根的冪次,則特解中n的次數(shù)會(huì)升高;否者就不會(huì)升高。我們的教學(xué)目的在很大程度上也就達(dá)到了,因?yàn)槲覀兂晒σ鹆藢W(xué)生的興趣,并且讓他們自己總結(jié)出了規(guī)律。
5.我們還可以更進(jìn)一步,舉一個(gè)更復(fù)雜的例子:an=3an-2-2an-3+(n2+2)。這是一個(gè)三階的線性非齊次遞歸關(guān)系,它的特征方程的三個(gè)根是1(二重根)和-2。我們在Mathematica中輸入
RSolve[{a[n]==3a[n-2]-2a[n-3]+n^2+2},a[n],n]
運(yùn)行(并且用命令Simplify[%]簡化之后)得到
a[n]80/243+(79n2)/108+(5n3)/27+n4/36+(-2)n C[1]+C[2]+n(-313/162+C[3])
此時(shí)特解中包含n的四次方,比非齊次項(xiàng)中n的次數(shù)高了二!為什么會(huì)這樣?學(xué)生們發(fā)出這樣的疑問。這正是一個(gè)解釋理論的良機(jī)。
筆者在課堂上完整地演示過上面的過程,外加2.5中例子的變形,收到了良好的效果,學(xué)生的求知欲確實(shí)被激發(fā)出來了,并且能夠自己把規(guī)律總結(jié)出來。
(三)求解非線性的遞歸
Mathematica在求解非線性的遞歸關(guān)系方面也有很高的效率。比如我們要求解遞歸關(guān)系an=+1,這是一個(gè)分式線性變換,它也可以用特征方程的方法求解,但大部分學(xué)生難以掌握其要領(lǐng)。在Mathematica中輸入
RSolve[{a[n]==2/a[n-1]+1},a[n],n]
運(yùn)行后就得到
a[n]-((-1/2)n+4 C[1])/((-1/2)n-2 C[1])
三、總結(jié)
借助數(shù)學(xué)軟件強(qiáng)大的符號計(jì)算能力,我們可以在極短的時(shí)間內(nèi)向?qū)W生展示很多的例子。通過改變遞歸關(guān)系中的參數(shù),學(xué)生觀察到了解的性狀的變化,這個(gè)反饋是很及時(shí)的(只需幾秒鐘),因而學(xué)生們可以總結(jié)出解對參數(shù)的依賴關(guān)系。結(jié)合了現(xiàn)代技術(shù)的教學(xué)方式,我們可以不強(qiáng)求理論的完備性,也不必拘泥于“定義——定理——例子”的授課模式,而是以啟發(fā)為主,通過例子向?qū)W生展示具體的數(shù)學(xué),讓學(xué)生在觀察中總結(jié)規(guī)律,把數(shù)學(xué)變成一門“實(shí)驗(yàn)科學(xué)”。在學(xué)生有足夠的興趣的時(shí)候,我們就可以講解現(xiàn)象背后的原理,或者鼓勵(lì)他們自己去探索背后的原理。
四、致謝
本文受到北京市教委2013北京市共建項(xiàng)目人才培養(yǎng)項(xiàng)目:“數(shù)學(xué)人才培養(yǎng)模式改革”的支持。
參考文獻(xiàn):
[1]南基洙.組合數(shù)學(xué)[M],北京:高等教育出版社,2008.
[2]洪維恩.數(shù)學(xué)運(yùn)算大師Mathematica 4[M],北京:人民郵電出版社,2002.
作者簡介:張漢雄(1983-),男,浙江海寧人,博士,講師,研究方向:數(shù)學(xué)物理。
endprint