JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

把導數看成旋轉與縮放

你已經知道 f'(z_0) 是一個複數,它的極限無視趨近方向。本篇要揭露這個數在幾何上「做了什麼」:在 z_0 附近,解析映射抓住每一個微小箭頭,把它拉長 |f'(z_0)| 倍、轉動 arg f'(z_0)——一次「放大兼扭轉」,讓保角性一眼就懂。

一個數,兩件差事

到現在為止,f'(z_0) 對你已有確切的意義:差商 (f(z) - f(z_0)) / (z - z_0) 的極限,一個每條趨近路徑都得認同的單一複數。那是代數面。本篇談的是這個數背後的圖像——f'(z_0) 在 z_0 附近究竟對平面做了什麼。簡短的答案,也是值得帶走的一句,是它把每一個從 z_0 伸出的微小箭頭一次到位地旋轉並縮放,全都轉一樣多、放一樣大。

線索就藏在複數乘法的運作方式裡,那是你很久以前就見過的。把任何複數寫成極式:f'(z_0) = r e^(i theta),其中 r = |f'(z_0)| 是它的模、theta = arg f'(z_0) 是它的輻角。用 r e^(i theta) 去乘任何另一個複數,恰好對它做兩件事——把長度拉長 r 倍、把方向旋轉 theta 角。一個複數,一次拉伸,一次轉動。把這個事實放在手邊;整篇指南不過是把它套到導數身上。

現在把這點餵進複可微的局部圖像。在 z_0 附近,解析函數被 f(z) ≈ f(z_0) + f'(z_0)(z - z_0) 良好逼近。有趣的是位移 z - z_0——那個從 z_0 指向鄰近 z 的小箭頭。依極式事實,用 f'(z_0) 去乘這個箭頭,正好是把它拉長 |f'(z_0)| 倍、轉動 arg f'(z_0)。所以在一階近似下,映射把從 z_0 到 z 的箭頭,變成從 f(z_0) 到 f(z) 的一個被拉長且旋轉過的箭頭。這就是複導數在做它的幾何工作。

幅旋:放大兼扭轉

Tristan Needham 給這個合一的動作取了個一聽就忘不掉的名字:幅旋(amplitwist)。把「放大」(拉長長度)與「扭轉」(旋轉方向)熔成一個動詞,你就有了描述 f'(z_0) 所為的那一個字。它的模 |f'(z_0)| 是放大率——每個小箭頭變長多少倍;它的輻角 arg f'(z_0) 是扭轉角——每個小箭頭轉過的角度。一個複導數所承載的兩個數,恰恰就是一個拉伸倍率與一個旋轉角,捆在一起。

具體地說:取任何一個從 z_0 伸出、長度為 L、指向角度 phi 的小箭頭。用 f'(z_0) = r e^(i theta) 去乘它,會把它送成一個長度為 r 乘以 L(放大這一步)、指向角度 phi + theta(扭轉這一步)的箭頭。關鍵的細節是:對每一個起始方向 phi,都套用「相同」的 r 與「相同」的 theta。一個朝東的短箭頭與一個朝北的短箭頭,都被拉長相同的倍率 r、都被擺過相同的角度 theta——幅旋對各個方向一視同仁。

要劃線強調的是與箭頭方向無關。映射不會把朝東的箭頭拉一個倍率、把朝北的拉另一個倍率,也不會把它們轉不同的角度。z_0 處每一個無窮小箭頭,無論指向何方,都得到相同的 r 與相同的 theta。這種一致性,正是乘以一個固定複數所保證的,也是平面上一般光滑映射「沒有」的唯一特徵——一般映射可以把不同方向拉不同倍率,還能把它們剪切錯開。

一個小小的圖像演練

讓我們在最親切的例子 f(z) = z^2 上、在點 z_0 = i 處觀看這次幅旋。用冪法則 z^n 的導數是 n z^(n-1),得 f'(z) = 2z,故 f'(i) = 2i。讀出它的極式資料:|2i| = 2 而 arg(2i) = pi/2(即 90 度)。所以在 i 處的幅旋就是「長度加倍、轉四分之一圈」。每一個從 i 伸出的短箭頭,回來時都變成兩倍長,並逆時針旋轉了 90 度。

  1. 在 z_0 = i 處挑一個朝東的小箭頭,指向 z = i + h,其中 h 是一個小的正實數。這箭頭是 h(長度 h、角度 0)。
  2. 乘上 f'(i) = 2i:像箭頭是 2i * h = 2h i——長度 2h、角度 90 度。朝東的箭頭加倍了,並旋轉成朝北。
  3. 再挑一個朝北的箭頭,指向 z = i + i k = (1 + k) i,其中 k 是小實數。這箭頭是 i k(長度 k、角度 90 度)。
  4. 乘上 2i:像是 2i * (i k) = -2k——長度 2k、角度 180 度。同樣加倍、同樣多轉 90 度。朝東與朝北兩箭頭之間的直角,被保持為直角。

最後那一行,就是整個重點的縮影。兩個輸入箭頭起初相隔 90 度;兩者都轉了同樣的 90 度;於是它們最後仍相隔 90 度。映射拉伸了局部圖像(一切加倍)、又旋轉了它(一切轉四分之一圈),卻從未壓扁兩箭頭之間的夾角。拉伸兼旋轉是一種相似變換——它改變大小與定向,卻讓形狀保持忠實——這正是為何無窮小正方形映成無窮小正方形,而非平行四邊形。

夾角為何存活:保角性

這個微縮例子可推廣成本學科最招牌的性質之一。因為幅旋把 z_0 處每個箭頭都轉同一個角度 arg f'(z_0),任何兩個箭頭「之間」的夾角便絲毫未動——夾角的兩臂一同旋轉,開口維持不變,而且兩臂以相同倍率拉長,故毫無扭曲。像這樣保持曲線間夾角的映射稱為保角(共形)映射,而我們剛論證的,正是「解析函數保角」的乾淨理由:夾角的保持是旋轉-縮放結構免費贈送的禮物。

這裡有一條誠實的細則,而且很要緊。保角性只在 f'(z_0)「不」為零之處成立。若 f'(z_0) = 0,就沒有良好定義的扭轉角(0 的極式沒有輻角),也沒有讓箭頭存活的拉伸倍率——短箭頭塌縮得比一階更快,夾角一般「不」被保持。這種點稱為臨界點。在臨界點上,映射通常是把角度加倍而非保持:對 f(z) = z^2,導數 f'(0) = 0,而在 0 附近平方映射確實把角度加倍(原點處開口 alpha 的楔形展開成 2 alpha),這正是教科書裡保角性失效的標準方式。

柯西-黎曼方程說的本是同一回事

幅旋不是硬加在你兩篇前見過的柯西-黎曼方程之上的新事實——它就是同一個事實的幾何面貌。回想平面上實可微的映射,在局部是一個由 2×2 雅可比矩陣 [u_x, u_y; v_x, v_y] 給出的線性映射,這個含四個自由元素的矩陣可以任意組合地拉伸、旋轉、剪切與反射。柯西-黎曼方程 u_x = v_y 與 u_y = -v_x 把這矩陣逼進那個特殊而狹窄的形狀 [a, -b; b, a]。

Cauchy-Riemann:  u_x = v_y,  u_y = -v_x

  Jacobian  =  [ u_x  u_y ]  =  [ a  -b ]   with  a = u_x,  b = v_x
               [ v_x  v_y ]     [ b   a ]

  [ a  -b ]   is EXACTLY 'multiply by a + i b'  =  r e^(i theta),
  [ b   a ]   a rotation by theta and a scaling by r = sqrt(a^2 + b^2).

  and then  f'(z) = a + i b = u_x + i v_x.
柯西-黎曼矩陣 [a, -b; b, a] 正是複數乘法的矩陣形式——一個旋轉-縮放,也就是幅旋。

那個矩陣 [a, -b; b, a] 不是隨便一個矩陣——它正是充當「乘以複數 a + i b」的那個矩陣。這種矩陣永遠是一個旋轉-縮放:先旋轉 theta = arg(a + i b),再均勻縮放 r = |a + i b| 倍,絕非剪切、也絕非扭曲夾角的拉伸。所以柯西-黎曼方程、f 為解析函數的要求、以及幅旋圖像,是同一個想法的三個名字:複可微逼使局部線性部分成為一個相似變換,一次純粹的拉伸兼旋轉。代數面(柯西-黎曼)、線性代數面(那個特殊矩陣)、幾何面(幅旋),講的全是同一句話。

把實部虛部讀成流線

旋轉-縮放的觀點還悄悄敲定了一個本階梯一再繞回的事實:解析函數的實部與虛部互為調和共軛。因為局部映射是一個保持直角的相似變換,u 的等位曲線(u 為常數之處)與 v 的等位曲線(v 為常數之處),在所有 f' 非零之處都必定彼此成直角相交——這就是你會在下一篇釘住的共軛對正交性。畫出這兩族曲線,恰恰就是流體力學與靜電學所繪的等位線與流線。

留意我們從「拒絕共軛」中得到了多少。解析函數可以使用 z,卻絕不使用 z-bar——這就是「解析即與 z-bar 無關」的口號。在幾何上,z-bar 是反射 z = x + i y -> x - i y,它翻轉定向;幅旋可以旋轉與拉伸,卻「不」能翻轉。這正是共軛沒有複導數的深層理由:反射永遠寫不成旋轉-縮放,故它永遠當不了解析映射的局部作用。本階梯的每一個性質,都追溯回這唯一一次幾何上的拒絕。