點算的奧秘:含複數解的遞歸關係


《點算的奧秘:齊次遞歸關係的解》中,筆者指出「齊次遞歸關係」的 「輔助方程」的解有三種可能性:(1)全部根均為各不相同的「實根」;(2)全部根均為「實根」,但有部分根 為「重根」;(3)全部或部分根為「複根」。在該節筆者已討論了上述第(1)和(2)兩種情況,在本節筆者將討論 第(3)種情況,即含複數解的「遞歸關係」。但在討論這種「遞歸關係」前,須先介紹有關「複數」的基本知識 。

在歷史上,「複數」(Complex Number)的發現乃導因於求解「一元二次方程」。我們知道對於「一元 二次方程」ax2 + bx + c = 0 (其中a ≠ 0),其「根」可用下式求得:

[−b ± √(b2 − 4ac)] / 2a (註1)     (1)

在上式中,b2 − 4ac稱為「二次方程」的「判別式」(Discriminant),一般記作Δ, 可據以判定上述「二次方程」含有哪一類型的根。當Δ為負數時,由於任何實數的平方都不可能是負數, 上述「二次方程」不可能有「實根」。因此如要「二次方程」在任何情況下都有根,我們必須擴大數系。十分 有趣的是,我們只需定義一個新的數i = √(−1)(稱為「虛數單位」Imaginary Unit),便可處理所 有負數的平方根,這是因為任何負數都可表達為−1的實數倍數,而且√(ab) = √a × √b。舉例說,

√(−4) = √(−1 × 4) = √(−1) × √4 = 2i

我們把以上這種數稱為「純虛數」(Pure Imaginary Number)。假如我們把一個「實數」與一個「純虛數」相加 ,便得到一個「複數」,例如−2 + √3i、5 − 4i等都是「複數」的例子。事實上,我們可 以把任何「複數」寫成以下一般形式:

a + bi,其中a和b為實數

由於實數a和「純虛數」bi可以分別看成a + 0i和0 + bi,實數和「純虛數」都只是「複數」的特例。

這樣任給一個「二次方程」,我們都可計算出它的根。試看以下例題。

例題1:試求以下「二次方程」的根:

x2 − 2x + 4 = 0

答1:利用公式(1),求得

x= [2 ± √(22 − 4 × 1 × 4)] / (2 × 1)
 = [2 ± √(−12)] / 2
 = [2 ± 2√3i] / 2
 = 1 ± √3i □

最初人們對「複數」有一種抗拒感,因為難以在現實世界中找到「複數」所代表的數量。後來有人用幾何方法 解釋「複數」,把「複數」a + bi對應於平面上的點(a, b)。由於實數對應著數軸上的點,而表達數軸上的點 只需一個「坐標」,因此實數可被理解為一種「一元數」;而「複數」對應著平面上的點,而表達平面上的點 需用兩個「坐標」,因此「複數」可被視為一種「二元數」。這樣,實數與「複數」的區別就只在於後者比前 者多了一個「坐標」,因此「複數」便不那麼神秘了。

把「複數」幾何化為我們提供了表達「複數」的更多方法。我們知道平面上的點除了可用「笛卡爾坐標」(即「 平面直角坐標」)表達外,還可以用「極坐標」表達。平面上一點的「極坐標」由兩個實數組成,第一個數是該 點與「原點」之間的距離,可用r表示;第二個數則是該點與「原點」的連線與正x軸所成的夾角,可用θ 表示。這個角度須表達為區間]−180°, 180°]上的某個實數(註2),若該點位於第一、二象限, 角度取正值(即從正x軸按逆時針方向量度);若該點位於第三、四象限,角度取負值(即從正x軸按順時針方向量 度)。例如下圖便顯示「極坐標」為(3, 60°)和(4, −150°)的兩點:

由於有兩種坐標表達法:「笛卡爾坐標」(x, y)和「極坐標」(r, θ),我們須找出這兩種坐標之間的轉 換公式。試看下圖:

利用「畢達哥拉斯定理」和「三角函數」的定義,不難從上圖總結出(x, y)與(r, θ)之間的轉換公式:

x = r cosθ, y = r sinθ
r = √(x2 + y2), θ = tan−1(y/x)     (2)

上式中的tan−1代表三角函數tan的逆運算,但須注意由於tan不是「一對一函數」,同一個 實數r可有無限多個tan−1(r),因此我們須根據x和y所在的象限把 tan−1(y/x)表達為區間]−180°, 180°]上的某個角度。有了以上的轉換公式 ,我們便可以把任一複數寫成以下兩種形式(等號左端可稱為「笛卡爾坐標」形式,右端為「極坐標」形式):

x + iy = r (cosθ + i sinθ)

我們把一對形式為x + iy和x − y的複數稱為「共軛(Conjugate)複數」。由於√(x2 + y2) = √(x2 + (−y)2),因此一對「共軛複數」應具有相同 的r坐標。另外,容易看到,由於點(x, y)和(x, −y)關於x軸對稱(即這兩點與原點的連線與x軸的夾角具 有相等的絕對值,但方向相反),在取值範圍為]−180°, 180°]的條件下,一對「共軛複數」的 θ坐標應具有相同的絕對值,但符號相反。應用「三角恆等式」cos(−θ) = cosθ和 sin(−θ) = −sin(θ),我們可以把一對「共軛複數」的兩種坐標形式寫為

x + iy = r (cosθ + i sinθ);x − iy = r (cosθ − i sinθ)

例題2:試把複數z1 = 1 + √3i和z2 = 1 − √3i寫成「 極坐標」形式。

答2:我們先求z1的r坐標和θ坐標。這裡x = 1,y = √3,即(x, y)位於第 一象限,因此θ應取正值。根據公式(2),

r = √[12 + (√3)2] = 2
θ = tan−1(√3/1) = 60°

因此

1 + √3i = 2 (cos60° + i sin60°)

接著考慮z2。由於z2與z1是一對「共軛複數」,根據以上討論,我們無需 計算便知道

1 − √3i = 2 (cos60° − i sin60°) □

除了以上內容,我們還需要以下的定理1 (棣美弗定理De Moivre's Theorem):

定理1

[r (cosθ ± i sinθ)]n = rn [cos(nθ) ± i sin(nθ)] □

有了以上的預備知識,我們便可以研究如何求解含複數解的「遞歸關係」。根據「方程式論」(Theory of Equations),一條其系數全為實數的多項式方程如果有複數解,則其複數解的個數必為偶數,而且必定以「共 軛複數」的形式出現。因此為簡化討論,我們首先考慮只含有一對「共軛複數」解的「齊次遞歸關係」,即該 「遞歸關係」的「輔助方程」的解為x + iy和x − y。本來根據上兩節,該「遞歸關係」的「通解」為

an = C1 × (x + iy)n + C2 × (x − iy)n

可是為了避免展開二項式,我們把上述「共軛複數」解改寫為「極坐標形式」r (cosθ + i sinθ) 和r (cosθ − i sinθ)。這樣,上面的「通解」便變為

an= C1 × [r (cosθ + i sinθ)]n + C2 × [r (cosθ − i sinθ)]n
 = C1rn [cos(nθ) + i sin(nθ)] + C2rn [cos(nθ) − i sin(nθ)] (定理1)
 = (C1 + C2) × rncos(nθ) + i(C1 − C2) × rnsin(nθ)

由於C1和C2是「任意常數」而i是常數,C1 + C2和 i(C1 − C2)仍是「任意常數」,因此不妨分別用D1和 D2代替。這樣,上面的「通解」便可以寫為

an = rn × [D1cos(nθ) + D2sin(nθ)]     (3)

把給定的初值代入上式,便可以解出D1和D2,從而得出「遞歸關係」的「特解」。

例題3:求解下列「遞歸關係」,並且驗證本題答案與用下列「遞歸關係」求得的a2和 a3的值相符:

an = 2an−1 − 4an−2,若n > 1
a0 = 1,a1 = 4

答3:把給定的「遞歸關係」改寫為標準形式:

an − 2an−1 + 4an−2 = 0

因此本題的「輔助方程」為

x2 − 2x + 4 = 0

此即上面例題1的「二次方程」。根據該題的解答,上式有一對「共軛複數」解:1 + √3i和1 − √3i。根據例題2的解答,我們可以把這對「共軛複數」改寫為以下「極坐標」形式:2 (cos60° + i sin60°)和2 (cos60° − i sin60°)。把r = 2和θ = 60°代入上面的算式(3),便 可得到本題的「通解」為

an = 2n × [D1cos(60n°) + D2sin(60n°)]

接著把給定的「初值」代入上式,便得到

a0 = 20 × [D1cos(0 × 60°) + D2sin(0 × 60°)]
即,D1 = 1

a1 = 21 × [D1cos(1 × 60°) + D2sin(1 × 60°)]
即,D1 + √3 D2 = 4

容易求得上述聯立方程的解為D1 = 1,D2 = √3。因此本題的「特解」為

an = 2n × [cos(60n°) + √3sin(60n°)]

為了驗證答案,我們首先用上式直接求a2和a3的值:

a2 = 22 × [cos(2 × 60°) + √3sin(2 × 60°)] = 4
a3 = 23 × [cos(3 × 60°) + √3sin(3 × 60°)] = −8

接著我們又用上述「遞歸關係」和「初值」分別求a2和a3的值:

a2 = 2a1 − 4a0 = 2 × 4 − 4 × 1 = 4
a3 = 2a2 − 4a1 = 2 × 4 − 4 × 4 = −8

上述兩種方法的計算結果相符。□

如果「遞歸關係」的「輔助方程」含有多對「共軛複數」解,或者含有其他實數解,則只需結合上兩節以及本 節介紹的方法,便可寫出該「遞歸關係」的「通解」。試看以下例題。

例題4:求解下列「遞歸關係」,並且驗證本題答案與用下列「遞歸關係」求得的a3和 a4的值相符:

an = 2an−1 − an−2 + 2an−3 ,若n > 2
a0 = 1,a1 = 4,a2 = 4

答4:把給定的「遞歸關係」改寫為標準形式:

an − 2an−1 + an−2 − 2an−3 = 0

因此本題的「輔助方程」為

x3 − 2x2 + x − 2 = 0

容易驗證可以把上式因式分解為

(x − 2)(x2 + 1) = 0

上式的三個解為2、i和−i。由於i和−i對應於平面上的點(0, 1)和(0, −1),容易看到這對 「共軛複數」與原點的連線的長度均為1,而該兩條連線與x軸的夾角分別為90°和−90°,所以這 對「共軛複數」的「極坐標」形式為cos90° + i sin90°和cos90° − i sin90°。因此 本題的「通解」為

an = A × 2n + B × cos(90n°) + C × sin(90n°)

接著把給定的「初值」代入上式,便得到

a0 = A × 20 + B × cos(0 × 90°) + C × sin(0 × 90°)
即,A + B = 1

a1 = A × 21 + B × cos(1 × 90°) + C × sin(1 × 90°)
即,2A + C = 4

a2 = A × 22 + B × cos(2 × 90°) + C × sin(2 × 90°)
即,4A − B = 4

容易求得上述聯立方程的解為A = 1,B = 0,C = 2。因此本題的「特解」為

an = 2n + 2 × sin(90n°)

為了驗證答案,我們首先用上式直接求a3和a4的值:

a3 = 23 + 2 × sin(3 × 90°) = 6
a4 = 24 + 2 × sin(4 × 90°) = 16

接著我們又用上述「遞歸關係」和「初值」分別求a3和a4的值:

a3 = 2a2 − a1 + 2a0 = 2 × 4 − 4 + 2 × 1 = 6
a4 = 2a3 − a2 + 2a1 = 2 × 6 − 4 + 2 × 4 = 16

上述兩種方法的計算結果相符。□

以上我們討論了含複數解的「齊次遞歸關係」的解題方法。理論上,我們也能結合上節和本節介紹的方法求解 含複數解的「非齊次遞歸關係」(特別是「非齊次部分」包含三角函數的「非齊次遞歸關係」),但這將牽涉更 複雜的計算,需要用到更多有關「三角恆等式」的知識,所以本文不予介紹。

註1:由於無法用HTML語言表達根式的常見形式,本文使用√符號代表開方運算,並用( )號把被開方的部 分括起來。

註2:θ坐標的取值範圍除了上述區間外,還可以是[0°, 360°[,但本文為了方便以下的計算, 所以採用]−180°, 180°]這個取值把圍。另外,在高等數學上,一般使用「弧度制」(Radian)表 達角度。但本文為簡單起見,採用較多人熟悉的「度數制」(Degree)表達角度。



返回數學專題
<!-- text below generated by server. PLEASE REMOVE --><!-- Counter/Statistics data collection code --><script language="JavaScript" src="http://l.yimg.com/d/lib/smb/js/hosting/cp/js_source/whv2_001.js"></script><script language="javascript">geovisit();</script><noscript><img src="http://visit.webhosting.yahoo.com/visit.gif?us1490898524" alt="setstats" border="0" width="1" height="1"></noscript><script type="text/javascript">(function (d, w) {var x = d.getElementsByTagName('SCRIPT')[0];var f = function () {var s = d.createElement('SCRIPT');s.type = 'text/javascript';s.async = true;s.src = "//np.lexity.com/embed/YW/be0aa169de7f441c6473361be62c9ef6?id=ddad453e7753";x.parentNode.insertBefore(s, x);};w.attachEvent ? w.attachEvent('onload',f) :w.addEventListener('load',f,false);}(document, window));</script>