44409 複數及複變函數的圖形表徵在數學算板中的實踐(上)
複數及複變函數的圖形表徵在數學算板中的實踐(上)

一、數學算板簡介

數學算板是一個動態數學軟體程式, 是作者退休之後獨立製作的動態數學程式, 將之前利用 Geometer's Sketchpad (桌上型程式) 及 JavaSketchpad (網路程式) 上製作的大部分數學物件程式 (200 個以上可操作的網路程式範例), 讀取並融入其中 (林, 民95 及 http://mathboard.tw)。

數學算板包含了幾何畫板、 代數算板、 動作的龜行幾何 (turtle geometry)、 機率與統計等部分。 原始構想中, 幾何畫板重點放在提供動態歐氏平面幾何的基本圖形構圖功能、 基本的幾何變換 (平移、 旋轉、 鏡射、 放縮)、 可變夾角的平面坐標系統及一元函數的平面圖形繪製上。 對於國小數學教學, 則包含了電腦數算教具、 分數教具 (圓分割、 線段及長條矩形分割、 矩形鉛直及水平分割)。 代數算板 (林, 民101) 則提供了分數係數的多項式運算、 國中階段解方程式的教學流程 (如配方法、 二元及三元一次聯立方程式的解題流程) 在教室教學時的展示工具。 龜行幾何則包含了驅使龜前進、 後退、 左轉、 右轉、 提筆 (不畫線)、 下筆 (畫線) 等動作的指令功能。 機率與統計則包含了國中階段各種圖表功能、 及簡單機率實驗工具 (黑白球、 數轉盤、 擲骰實驗) 的製作。

由於早期物件作品包含了立體的正多面體及其展開圖的製作, 因此幾何畫板中也加入動態立體坐標系統 (可使用滑鼠自由旋轉) 及 3D 構圖的功能, 3D 構圖功能與原來的 2D 構圖融合, 所有 2D 的點都看成 $z=0$ 的 3D 點。 在 3D 坐標系上製作的 3D 物件, 可隨立體坐標旋轉。 3D 坐標系統上的平面圖形, 也可以透過基軸變換由平面轉換過去。 我們也建立了正多面體及阿基米德多面體的生成及電腦模型與其展開圖的製作工具, 也包含了球面多面體 (林, 民107a)。

幾何畫板除了歐氏幾何之外, 也內建了與歐氏幾何構圖相應的雙曲幾何圓盤模型 (disk model) 基本構圖及變換的功能 (林, 民106b), 對他種平面雙曲幾何模型則提供了構圖的對照機制。 相應於多面體, 最近也完成了雙曲多面體球模型 (sphere model) 中的雙曲正多面體、 雙曲阿基米德多面體、 雙曲正直角柱及雙曲反向直角柱的作圖功能。

數學算板計畫的目標是提供創作工具, 協助數學教師透過選單及構圖功能, 建立在教室教學可直接展示運用或引領學生操作探索的電腦教具學具程式 (林, 民89), 使用者不必使用程式語言。 為方便教學流程的控制, 數學算板也提供了豐富的按鈕系統, 透過各種按鈕的排列組合, 教師可將教學設計的內容作適當的流程安排。 提供的數學內容, 從中小學至大學的數學題材都盡力融入。 本文將簡單介紹複數及複變函數的各種圖形表徵及數學算板內建的複變函數相關的繪圖功能。

二、複數的運算及其圖形表徵

複數的運算

設 $\mathbb{C}=\{z \mid z=a+bi,a,b\in\RR\}$, 我們稱 $\mathbb{C}$ 為複數集合。 在一個直角坐標平面上的點集合 $\{(a,b)\mid z=a+bi\in \mathbb{C}\}$, 我們稱之為複數平面, 此時的 $x$ 軸稱為實軸, $y$ 軸稱為虛軸。 設 $z_1=a+bi$, $z_2=c+di\in \mathbb{C}$ 定義

  1. 加法: $z_1+z_2=(a+c)+(b+d)i$。
  2. 減法: $z_1-z_2=(a-c)+(b-d)i$。
  3. 乘法: $z_1\cdot z_2=(ac-bd)+(ad+bc)i$。
  4. 除法: $\dfrac{z_1}{z_2} = \dfrac{ac+bd}{c^2+d^2 } + \dfrac{bc-ad}{c^2+d^2} i$。
  5. 模 (絕對值) : $|z_1|=\sqrt{a^2+b^2}$。
  6. 共軛複數: ${\bar z}_1=a-bi$。

複數的極式

設 $P(x,y)$ 為複數平面上一點 (其實就是複數點 $z=x+yi$), $O$ 為複數平面上坐標軸的原點 (其實就是複數 0), 若射線 $OP$ 與實軸正向的夾角為 $\theta $, $r=|z|=\sqrt{x^2+y^2}$, 則 $x=r \cos\theta$, $y=r \sin\theta$ 且 $\tan\theta =y/x$, 因此, $z=r (\cos\theta +i \sin\theta )$, 稱為複數的極式 (polar form), $\theta$ 稱為複數 $z$ 的幅角 (argument), 記為 $\arg z$, 其中 $-\pi \lt arg z\le \pi$。

設 $z=x+yi$, $e$ 為自然對數的底, 定義 $e^z=e^{x+yi}=e^x (\cos y+i \sin y)$, 此時我們容易證得 $e^{z_1}\cdot e^{z_2}=e^{z_1+z_2}$。 考慮 $e^{i \theta} =\cos\theta +i \sin\theta$, 我們可證得 $$\begin{array}{ccl} e^{i \theta _1} e^{i \theta _2}=e^{i(\theta _1+\theta _2)},&\qquad~& (e^{i \theta})^{-1}= e^{-i \theta}\\[7pt] \dfrac{e^{i \theta _1 }}{e^{i \theta _2}} = e^{i( \theta _1- \theta _2)},&\qquad~& e^{i( \theta +2k\pi )}= e^{i \theta} ,k=0,\pm 1,\pm 2\cdots \end{array}$$

由於 $z=r (\cos\theta +i\sin\theta)=re^{i \theta} =|z|e^{i\theta} $, 對於 $z_1 ,z_2\in \mathbb{C} $, 我們可設 $$z_1=r_1 e^{i \theta _1},\qquad z_2=r_2 e^{i \theta _2},$$

則 $z_1 z_2=r_1 e^{i \theta _1} r_2 e^{i \theta _2}=r_1 r_2 e^{i( \theta _1+ \theta _2)}$ 由此, 我們可得到 $|z_1 z_2 |=|z_1 ||z_2 |$ 及 $$ \arg(z_1 z_2)=\arg z_1 +\arg z_2+2k\pi,\qquad k=0,\pm 1,\pm 2,\ldots$$

亦即兩複數積的模就是兩複數模的積, 兩複數積的幅角, 就是兩複數幅角的和 (可能有 $2\pi$ 倍的差異), 複數的乘法圖示, 參看後面圖 3。

同樣地, 若 $z_2\not=0$, 則 $$\dfrac{z_1}{z_2} =\dfrac{r_1 e^{i \theta _1 }}{r_2 e^{i \theta _2 }}= \dfrac{r_1}{r_2} e^{i( \theta _1- \theta _2)}$$

由此, 我們可得到 $$\Big|\dfrac{z_1}{z_2}\Big|=\dfrac{r_1}{r_2}=\dfrac{|z_1 |}{|z_2 |}\quad \hbox{及}\quad \arg (\frac{z_1}{z_2})=\arg z_1 -\arg z_2+2k\pi ,\quad k=0,\pm 1,\pm 2,\ldots$$

也就是說, 兩複數商的模就是兩複數模的商, 兩複數商的幅角就是兩複數幅角的差 (可能有 $2\pi$ 倍的差異)。

數學算板中複數的圖形表徵

在數學算板中, 複數平面與直角坐標平面是相同的, 展示複數平面上的一點時, 可以選擇使用複數、 或實數對來表示 (圖1)。 透過滑鼠右鍵, 使用者可以切換點的標示方式。 數學算板中的點有自由、 半自由、 非自由之分。 自由點可用滑鼠自由在平面上移動。 半自由點如圓上的點、 直線上的點等, 可在物件上移動, 但不能移離物件。 自由點及半自由點的坐標會隨點的移動而變動。 透過固定坐標值描出的點或幾何物件的交點就是非自由點, 它的坐標隨幾何物件的位置變動, 但使用者無法加以改變。 數學算板中自由點與半自由點, 通常以紅色表示。

數學算板上的坐標平面有兩種可展示的形式, 一為限制範圍的有外框的直角坐標系統 (框也可隱藏), 一為以數學算板畫面整體為範圍、 軸可旋轉、 軸夾角可改變的坐標系統。 可有多個系統同時存在於數學算板的畫面上, 使用者可指定一個為目前運作坐標系統, 並更改目前坐標系統的狀態, 例如平面上的自由點是否歸於整點、 是否展示格點、 是否展示格線、 是否等單位、 是否只展示第一象限。 移動有框平面軸的正向端點, 可改變方框的長寬, 複數平面通常使用直角且等單位的坐標系統 (圖1)。 但在有需要時, 可以將坐標軸旋轉, 或作出斜角坐標系。 一個複數也可以用向量來表示, 數學算板中, 一個有箭頭的線段可以表示一個複數, $A(a+bi)$, $B(c+di)$ 兩點 (起點及終點) 決定的向量 $\overrightarrow{AB}$, 表示一個複數點 $(c-a)+(d-b)i$, 任意平行且長度相同的有向線段, 都代表同一個複數, 向量的始點若在原點上, 稱此向量為位置向量 (圖2)。 向量的端點若為自由點, 移動端點就會改變該向量。 兩端點都是自由點的向量, 以滑鼠抓取自由向量線段移動, 整個向量都會移動 (平移), 但向量的長短及方向仍維持不變。

圖1: 數學算板的複數平面及其上的點
圖2: $\overrightarrow{AB}$, $\overrightarrow{CD}$, $\overrightarrow{EF}$, $\overrightarrow{OG}$, $\overrightarrow{IJ}$, 都表示同一個複數 $3+2i$

數學算板提供了複數運算的選項, 包含加、 減、 乘、 除、 相反數、 倒數、 共軛複數、 絕對值、 冪次。 選取一個或兩個複數 (點或向量) 後再選取運算選項, 就可得到運算的結果。 結果會是一個代表複數的點, 但若所選的是兩個複數向量時, 也可以做複數的加或減, 結果會以可平移的活動向量表示, 圖 3 左圖展示向量加減法的三角形及平行四邊形法則, 右圖展示乘法時的結果:幅角為兩幅角的和, 長度為兩複數長度的積。 在數學算板中, 當所選的點或向量變動時, 運算結果也會隨之作相應的改變 (圖3)。

圖3: 左圖:複數向量加減的平行四邊形法則, 右圖:複數的乘法

設 $C$ 為定義於實數數線閉區間 $[a,b]$ 的一個連續的複數值函數, 我們稱 $z=C(t)$ 為複數平面上的路徑 (path), 點集合 $\{z\mid z=C(t),t\in[,a,b]\}$ 就是路徑的圖形, 有時就簡稱路徑。 路徑 $z =C(t)=z_0+(z_1-z_0 )t$, $t\in [0,1]$, 就是一條連接 $z_0,z_1$ 的線段。 路徑 $z =C(t)=\cos(t)+i\sin(t)$, $t\in[0,2\pi ]$, 就是以原點為圓心的單位圓, 一般來說, 平面上連續的幾何圖形都可以看為路徑, 路徑的聯集也是路徑, 數學算板提供基本幾何畫圖工具, 可在複數平面上, 直接畫出幾何圖形路徑。

圖4: 實數以分數形式呈現的複分數計算器

數學算板也提供一個以分數運算為主的複分數計算器 (圖4), 其計算的結果也可以描在目前運作的複數平面上, 成為一個定點。 作為展示複函數或變換結果的複數平面, 結果的圖形若超出方框範圍時, 超出的部分不會顯示出來, 但對於使用者自行建立的自由點或圖形, 目前坐標方框並無作用。 計算器描點時, 點若在方框之外, 就不會顯示, 但若改變坐標軸的單位使此點在方框內, 則點會顯示出來。

三、複變函數在平面上的圖形表徵 — $z$ 平面及 $w$ 平面

設 $D,E\subset \mathbb{C}$, $D\not=\emptyset$, $E\not=\emptyset$, $f:D\to E$ 定義為 $\omega =f(z)\in E$ $\forall \ z\in D$ 稱為由 $D$ 映至 $E$ 的一個函數, $D$ 稱為定義域 (domain), $E$ 稱為對應域 (codomain), $f(D)=\{w\mid w=f(z),z\in D\}$, 稱為 $f$ 的值域 (range)。 將集合 $f(D)$ 上的點 $f(z)=u+iv$ 其中 $u=Re (f(z))$ 為 $f(z)$ 的實部, $v=Im(f(z))$, 為 $f(z)$ 的虛部。 將 $f(z)$ 都呈現在複數平面 $w$ 上就得到函數 $f$ 的圖形 (以 $u,v$ 為軸, 數學算板中, 有時軸仍沿用 $x,y$ 符號)。 二維空間函數的圖形表徵, 可使用兩個複數平面, 將 $D$ 上的點描在 $z$-平面, $f(D)$ 上的點描在 $w$-平面上, 但有時為方便觀察 $z,w$ 的變動關係, 可將兩者都畫在同一坐標平面上, 在兩圖重疊時, 可以透過「秀藏」按鈕, 隱藏或呈現其一。

從變換 (function as transformation) 的觀點來看, 有時, 我們只對 $D$ 中幾何物件 $S$ (點、 線、 圓、 多邊形、 方格線圖、 及格線圖、 路徑、 $\ldots$) 有興趣, 此時可以只觀察 $f(S)$ 的圖形。 圖 5 展示 $f(z)=e^z$ 作用在一個矩形及其內部時的 $z$-平面及 $w$-平面的圖形。 圖中的紅點表示是可以移動的點, 移動點 $A,B$ 可改變矩形的形狀。 $P$ 點是矩形內部一點, 可以移動至矩形內部或邊界上任意位置。 移動左圖上的點, 可以看到右圖相應的圖形的變化。 透過 $P$ 點的移動, 我們可以容易觀察到左圖的矩形 $ABCD$ 及其內部與右圖開口環 $A'B'C'D'$ 及其內部有一一對應的關係 (若矩形高度大於 $2\pi$ 時, 有重疊部分)。 由於 $e^{x+iy}=e^x e^{iy}=e^x (\cos(y)+i\sin(y))$, 不難證明水平線段在此函數作用下映至一線段, 而包含此線段的直線會通過原點; 鉛直線段映至以原點為圓心的圓或弧。

圖5: 指數函數 $f(z)=e^z$ 作用於一個矩形及其內部的結果
圖6: 函數 $f(z)=z+1/z$ 將圓變換的結果

圖 6 展示 Joukowski foil 函數 $f(z)=z+1/z$ 作用於一圓時的結果, 左圖中土黃色圓 (圓心 $A$), 代表一系列的圓:過$C$點圓心在 $\overline{CO}$ 上的圓束, 其他的圓為該圓束中的特例圓。 右圖展示圓經函數作用後的圖形, 「動畫」按鈕可令圓心 $A$ 在 $\overline{CO}$ 上來回移動, 其相應圖形會隨著改變。

圖7: 方格線在函數 $f(z)=\dfrac{z-1}{z+1}$ 作用下的圖形一個面相

有些函數的性質, 透過圖形的展示, 很容易觀察出來。圖7展示函數 $f(z)=(z-1)/(z+1)$ 作用於一個方型格線物件上, $f$ 將正交(orthogonal)的格線映射成正交的圓 (弧), 其實 $f$ 是一個莫必烏斯 (Möbius) 變換 (林, 民107b)。 莫必烏斯變換, 可將圓 (或直線) 變換成圓 (或直線), 也有保角的 (conformal) 性質。 圖中的動畫按鈕可以使方格線物件對其中心旋轉, 此時, 其對應圖形也會隨之變換。 透過中心移動方格線物件也可以促使其對應圖像改變。 「方格線」按鈕可以隱藏或呈現方格線物件, 在物件重疊看不清的時候, 可以隱藏之。

圖8: $f(z)=z^2$ 作用於方格線圖的 $z$-平面及 $w$-平面的圖形

動態地移動物件來觀察圖形十分重要, 圖 8 展示函數 $f(z)=z^2$ 作用於方格線圖的 $z$-平面及 $w$-平面的圖形。 圖 9 展示圖 8 中, 方格線圖在不同位置時, $w$-平面上的圖形(有做圖形大小的調整), 這些函數值圖形的不同面相, 透過動態操作可以很容易的觀察到。 數學算板上, 我們可以編輯函數, 將函數編輯完成後, 呈現的就是新函數的圖形。

圖9: $f(z)=z^2$ 作用於不同位置的方格線圖時, 在 $w$-平面上圖形的不同面相

函數迭代 (Iteration) 後產生的圖形, 有時也是認識函數的有效工具 (林, 民107b), 圖 10 展示的是莫必烏斯變換迭代作用於一個圓所得到的相切圓螺線圖形

圖10: 螺線莫必烏斯變換將圓迭代而得的圖形

將點透過迭代也可以產生有趣的碎形 (Fractal) 圖案, 圖 11 展示的就是以牛頓法透過迭代繪製的碎形圖案 (林, 民106a)。 數學算板對莫必烏斯函數迭代的不變圖形及碎形探索均建立了一些有用的工具。

圖11: $z^3-1$、 $z^6-1$ 兩函數依收斂至某一根而著色的牛頓法碎形圖案

四、複變函數的三維空間表徵

前述複變函數的圖形表徵均只展示複變函數的部分特性, 對於複數中另一特性 — 模(modules)均未涉及, 設 $w=f(z)$ 為複變函數, 點集合 $\{(x,y,w)\mid w=|f(z)|,z=x+iy,x,y\in {\Bbb R}\}$ 在 3D 坐標系中呈現的圖形, 就是複變函數的景觀式 (landscape) 圖形表徵, 這是最類似於單變數函數圖形表徵的一個展示方式。 3D 坐標軸的 $w$ 軸表示的就是函數的模 (modulo,絕對值)。 圖 12 展示的是函數 $f(z)=(z-1)/(z^2+z+1)$ 的景觀式 3D 圖形。 圖中左圖是由右下方向上斜看時的圖形, 可看到圖形的內面, 內面以橘黃格線呈現。 右圖是先畫出來然後複製貼圖於原來的畫面的右邊的固定圖形, 兩圖均展示塗色方格, 以光譜色著色。 圖 10 清楚展示函數有兩個極點 (pole, $z^2+z+1=0$ 之點), 右圖前方凹下的附近是它的零點 (zero, $z-1=0$ 之點) 所在。

圖12: 函數 $f(z)=(z-1)/(z^2+z+1)$ 景觀式 3D 圖形

數學算板的立體坐標軸是動態可操作的, 以滑鼠在原點 100 光點範圍內單擊拖曳就可以旋轉坐標軸, 因此使用者可以旋轉圖形從上下內外四面八方來觀察圖形的形狀, 但在點密度甚高時 (塗色格點較密, 較小), 拖曳動作較不靈活, 若只是觀察其大致形狀, 可選擇較低的密度, 極點附近的塗色格分布較為紊亂, 尚待改進。 圖中的密度按鈕, 單擊或按右鍵單擊可以增減繪圖的密度。

圖13: 函數 $f(z)=z^6+z^3-1$ 景觀式 3D 圖形

圖13展示的是函數 $f(z)=z^6+z^3-1$ 的圖形。 中圖、 右圖為不同角度觀看時的圖形, 兩者均展示塗色格, 以太陽光譜色塗色。 兩圖均為定好選項後複製至原程式畫面右方的固定圖形 (不能旋轉)。 左圖為程式圖形, 但目前沒有展示塗色格, 而是以調色棒的顏色依其高度塗色, 改變塗色棒上五點的顏色後, 按「設定」按鈕即可改變其顏色, 顏色是以漸層的方式塗上, 塗色格密度愈高, 漸層色彩愈佳, 但移動較不容易。 圖中下方的尖點, 就是函數的零點。 圖 12 及圖 13 上方的按鈕群就是程式的控制按鈕。 其中的函數的展示或輸入框, 內建了許多函數, 可以選取展示, 或輸入使用者的函數, 其輸入的格式可參考內建函數。

對於極點附近函數值的模變動很大的函數, 我們也提供了 $(x,y,\log |f(z)|)$ 的繪圖選項, 可以緩和函數值模變大的趨勢。 圖 14 展示函數 $f(z)=(z-1)/(z^2+z+1)$ 在 $(x,y,\log |f(z)|)$ 選項時的兩個面相。

圖14: 函數 $f(z)=(z-1)/(z^2+z+1)$ 在 $(x,y,\log |f(z)|)$ 選項時的兩個面相

複變函數 $w=f(z)$ 中, 令 $z=x+iy$, $w=u(x,y)+v(x,y)i$, $u=Re(f(x+iy))$, $v=Im(f(x+iy))$, $Re$ 指複數的實部, $Im$ 指複數的虛部, $u(x,y)$ 稱為函數的實部函數, $v(x,y)$ 稱為函數的虛部函數。

集合 $\{(x,y,u,v)\mid u=Re(f(x+iy)), v=Im(f(x+iy)), x,y\in {\Bbb R}\}$ 可以看為函數的圖形, 是四維空間的物件。 完整的四度空間圖形呈現目前尚無有效的方法。 但是仿照我們在二維空間展示 3D 圖形的方式, 我們可以觀察這個四維空間圖形在三維空間的投影圖形 (https://en.wikipedia.org/wiki/Tetraview)。 我們令前述四維物件 $(x,y,u,v)$ 任一軸為 0, 即可得其在其他三軸空間的投影。 在前述的 3D 程式中, 除了 $(x,y,|f(z)|)$ 及 $(x,y,\log |f(z)|)$ 外, 我們增加了下列選項, 分別表示四維空間物件中其中一維為零時, 在三維空間的投影:

$(x,y,Re(f(z))), (x,y,Im(f(z))), (Re(f(z)), Im(f(z)),x), (Re(f(z)),Im(f(z)),y)$}

圖 15 及圖 16 一次展示了函數 $\sin(z)$ 在上述四選項之下的圖形。

圖15: $(x,y,Re(\sin(z)))$ 及 $(x,y,Im(\sin(z)))$ 的圖形
圖16: $(Re(\sin(z)),Im(\sin(z)),x)$ 及 $(Re(\sin(z)),Im(\sin(z)),y)$ 的圖形

若 $z=x+iy$, 則 $\sin(z) = \sin(x+iy) = \sin(x)\cos(iy)+\cos(x)\sin(iy) = \sin(x)\cosh(y)+i\cos(x)\sinh(y)$, 由其實部及虛部可看出圖 15 中兩圖週期性及類似性。 這些圖形只是某特定一個方向的形象, 動態地從不同方向來觀察圖形, 更能對圖形的狀況有瞭解。 圖 17 展示圖 16 右圖 $(Re(\sin(z)),Im(\sin(z)),y)$ 不同的面相 (圖形向左後旋轉), 只看其中一圖, 只怕很難確定, 圖形中上下兩葉其實交於一條線段, 不是一點, 也不是圓桶喇叭口。

圖17: $(Re(\sin(z)),Im(\sin(z)),y)$ 的不同的觀察面相

圖18 展示選項 $(Re(f(z)),Im(f(z)),y)$ 在 $f(z)$ 分別為 $e^z,z^2,z^3,z^4$ 的圖形, 其實它們就是前述函數的「反」函數 $\log (z)$, $z^{1/2}$, $z^{1/3},\ldots,z^{1/4}$ 透過解析延拓 (analytic continuation) 延展定義域的黎曼曲面 (Riemann surface) 圖形 (參閱Corless et al. (1998) 或 https://en.wikipedia.org/wiki/Riemann_surface)。

圖18: 選項 $(Re(f(z)),Im(f(z)),y)$ 在 $f(z)\!=\!e^z, f(z)\!=\!z^2, f(z)\!=\!z^3, f(z)\!=\!z^4$ 的圖形
圖19: 選項 $(Re(f(z)),Im(f(z)),y)$ 在 $f(z)=\tan(z)$ 時, 不同的面相

而圖 16 左圖其實就是函數 ${\rm arcsin}(z)$ (正弦函數的反函數) 的黎曼曲面圖形表徵。 圖 19 展示選項 $(Re(f(z)),Im(f(z)),y)$ 在 $f(z)=\tan(z)$ 時, 不同的面相。 它就是 actan$(z)$ 的黎曼曲面圖形。

---本文作者為台北市立教育大學數資系退休副教授---