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

奇異攝動、邊界層與多重尺度

有時那個微小參數恰恰坐在最高階導數前面,把它置零就會引爆整個問題。來認識兩套偉大的救援:用匹配展開縫合起來的邊界層,以及拆除那些會毀掉樸素級數的長期項的多重尺度法。

當把旋鈕擰到零,問題反而爆炸

在上一篇關於正則攝動的指南裡,你見過那個樂觀的情形:一個問題與某個你能解的問題只差一點點,你把這個差別變成一個小旋鈕 epsilon,把答案寫成冪級數 y = y_0 + epsilon y_1 + epsilon^2 y_2 + ...,然後求解一串整潔的標準問題。首項 y_0 不過是未擾動的答案,而每個修正都是同一類帶已知驅動項的方程。當它奏效時,效果極佳,級數在整個定義域上都一致地好。本篇要講的,是它失靈的那一刻——以及當那個微小參數拒絕被忽略時,它會做出什麼。

下面是那個警告信號。奇異攝動是這樣一類問題:epsilon 雖小,卻不能簡單地置零,因為這麼做改變的是問題的種類,而非程度——參見奇異攝動。最戲劇性的標誌,是一個小參數乘在最高階導數上,比如區間 0 到 1 上的 epsilon y'' + a(x) y' + b(x) y = 0,兩端都有邊界條件 y(0) = A 與 y(1) = B。把旋鈕徹底關掉,epsilon = 0,那個二階方程就塌縮成一個一階方程 a(x) y' + b(x) y = 0。一階方程只帶一個自由常數,所以只能滿足兩個邊界條件中的一個。這個樸素的極限,字面意義上丟掉了一個邊界條件。

邊界層:丟失的導數回歸之處

物理圖像是一架機翼切過空氣。遠離表面處,空氣幾乎像沒有摩擦一樣掠過,於是簡單的無摩擦模型工作得極漂亮。但空氣會黏在機翼上——在金屬表面,它必須靜止。從「自由來流速度」一路降到「貼壁處完全停止」的全部急劇變化,都被壓進一層緊貼表面、微觀地薄的薄片裡。這層薄片就是邊界層——參見邊界層。外層那個無摩擦的故事幾乎處處正確;它唯獨在這層薄皮裡出錯,而那裡正是我們丟掉的那一項(黏性,或我們的 epsilon y'')稱王的地方。

這層有多厚?你用主導平衡原理來弄清楚——這是一門藝術:猜出方程裡真正要緊、彼此同量級的兩項,而其餘可忽略;參見主導平衡。在層內,解變化迅速,於是引入拉伸坐標 X = x / delta,其中 delta 是未知的層寬。由鏈式法則,每個對 x 的求導都帶出一個因子 1/delta,於是 y' 變成 (1/delta) dy/dX,而 y'' 變成 (1/delta^2) d^2y/dX^2。這時 epsilon y'' 項是 epsilon/delta^2 乘以 d^2y/dX^2,而 a(x) y' 項是 (1/delta) 乘以 a dy/dX。要求這兩項平衡:epsilon/delta^2 必須與 1/delta 相當,這就逼出 delta = epsilon。層寬是 epsilon 量級——正是那個丟失的二階導數重新發聲之處。

在那個拉伸坐標下,方程在主導階變成常係數的內層方程 d^2y/dX^2 + a(0) dy/dX = 0——一個你能用特徵方程 r^2 + a(0) r = 0 求解的問題。它的根是 r = 0 與 r = -a(0),所以內層解是 C_1 + C_2 e^{-a(0) X}。若 a(0) > 0,這個指數在你離開壁面時衰減,這恰恰是你想要的那種急升後穩定:解在幾倍層寬之內從壁值躥升到外層值,然後變平。(若 a(0) < 0,層會改坐落在另一端 x = 1——係數的符號告訴你層貼在哪一面壁上。)

匹配漸近展開:把兩個世界黏起來

現在我們有兩幅局部圖像:一個在整段區間大部分上有效、緩慢變化的外層解,它只能滿足遠端的邊界條件;以及一個住在層內、快速變化的內層解,它能滿足近端的那個。各自都帶著待定常數。匹配漸近展開法就是把它們熔合成一個處處有效的近似的機制——參見匹配漸近展開。訣竅在於存在一個重疊區,一片三不管地帶:在層的拉伸尺度上它遠離壁面,而在外層尺度上它仍貼近壁面,在那裡兩套描述本應都成立。逼它們在那裡彼此一致,就釘死了那些鬆動的常數。

  1. 外層展開。令 epsilon = 0(或對它展開),求解降階後的一階方程。只施加遠離層的那個邊界條件。這給出緩變的外層解 y_out(x),在主體區域有效,但在薄皮裡出錯。
  2. 內層展開。用拉伸變量 X = x/epsilon 放大進入層內,使快速變化看起來是量級為一的。重新標度後的方程現在保留了你丟掉的那個最高階導數項。求解它,並施加層的邊界條件。這給出 y_in(X),它仍帶著一個自由常數。
  3. 在重疊區匹配。取外層解的內極限(在 y_out 中令 x -> 0)和內層解的外極限(在 y_in 中令 X -> 無窮),要求二者一致。這一個匹配條件釘死剩下的常數。匹配不是邊界條件——它是兩個區域之間的橋。
  4. 構造一致近似。把外層解與內層解相加,再減去它們共同的重疊值(被數了兩遍的匹配部分):y_uniform = y_out + y_in - (共同部分)。結果是一個在整段區間(含層在內)都精確的單一公式。
Model problem:   epsilon y'' + y' + y = 0 ,   y(0) = 0 ,   y(1) = 1 ,   0 < epsilon << 1

OUTER  (set epsilon = 0):   y' + y = 0   =>   y_out = C e^{-x}
   apply the FAR condition y(1)=1:        y_out(x) = e^{1-x}
   (it CANNOT also satisfy y(0)=0 -- that is the lost boundary condition)

layer is at x=0; thickness from balance epsilon y'' ~ y'  =>  delta = epsilon
INNER  (stretch X = x/epsilon):   y_XX + y_X = 0   =>   y_in = A + B e^{-X}
   apply the NEAR condition y(0)=0:        A + B = 0   =>   y_in = A(1 - e^{-X})

MATCH:   X -> infinity gives y_in -> A ;   x -> 0 gives y_out -> e
         so  A = e

UNIFORM:   y ~ e^{1-x}  +  e(1 - e^{-x/epsilon})  -  e
        =  e^{1-x}  -  e * e^{-x/epsilon}
一個從頭到尾做完的奇異攝動問題:外層 e^{1-x} 管住主體,內層 e^{-x/epsilon} 補掉 x = 0 處的缺口,而匹配值 e 被減去一次,以免重複計數。

另一種病:無界增長的長期項

邊界層是空間中的奇異攝動。在時間裡有一個孿生的麻煩,而且它會在問題看起來完全溫順時伏擊你。取一個弱非線性振子,杜芬方程 y'' + y + epsilon y^3 = 0,這是一個微分方程,描述一根越拉伸剛度越強一點的彈簧。未擾動的運動(epsilon = 0)是誠實的簡諧振子 y_0 = cos t,永遠有界。於是你搬出正則展開 y = y_0 + epsilon y_1 + ...,代入,整理出 epsilon 階的方程。麻煩出在驅動它的東西上。

y_1 方程的驅動項是 -y_0^3 = -cos^3 t,而恆等式 cos^3 t = (3/4) cos t + (1/4) cos 3t 藏著一顆毒丸:那個 (3/4) cos t 的部分,恰好以振子自身的固有頻率振盪。你在共振地驅動這個系統。對共振驅動的響應不是有界的擺動,而是振幅隨時間線性增長的那種——一個正比於 t sin t 的項。這個失控的部分就是長期項,得名於 saeculum「一個漫長的世代」,因為在天體力學裡這類項要歷經數百年才悄悄佔據主導;參見長期項

仔細讀懂出了什麼錯。杜芬方程的真實解是一個完全有界的振盪——能量守恆,彈簧絕不會失控。長期項 epsilon t sin t 是我們展開方式的贗象,而非物理的。對固定的小 epsilon,當 t 不大時它無害;可一旦 t 達到 1/epsilon 量級,那個「小修正」epsilon t sin t 就已漲到量級為一的大小,近似便一文不值。長期項是一面紅旗,表明樸素級數被組織錯了方向——而在本例中,深層原因是:真實的非線性振子以一個略微偏移的頻率振動,而我們卻固執地在原始頻率上展開。

多重尺度:給緩慢漂移配上它自己的時鐘

第一劑解藥是為週期運動找到的:龐加萊-林斯泰特方法乾脆把頻率拉伸。引入伸縮時間 tau = omega t,其中未知的 omega = 1 + epsilon omega_1 + ...,對 tau 展開,並在每一階恰好選取頻率修正 omega_k,使共振驅動相消——參見龐加萊-林斯泰特方法。對杜芬方程,這給出 omega = 1 + (3/8) epsilon(乘以振幅的平方),正是剛化彈簧那個著名的、依賴於振幅的頻率。拉伸頻率不是表面上的重新貼標籤:在錯誤的頻率上展開,本就是長期項的真正根源,所以糾正它是除去病因,而非壓制症狀。

但龐加萊-林斯泰特只能修正一個偏移的頻率;它無法描述振幅本身緩慢漂移——比如一個弱阻尼擺,快速擺動而擺幅在許多週期中漸漸衰減。要處理這個,你需要更強大的多重尺度分析——參見多重尺度分析。想法很大膽:假裝快時間 t 與慢時間 T = epsilon t 是獨立變量,把解寫成兩者的函數 y(t, T)。那唯一的物理時鐘被劈成兩根——一根快指針計數一個個週期,一根慢指針追蹤振幅與相位在長程中如何游移。

在操作上,鏈式法則把時間導數 d/dt 變成偏導組合 d/dt + epsilon d/dT——緩慢漂移正是通過那個額外的 epsilon 塊溜進來的,是偏導數的一個乾淨用法。展開 y = y_0 + epsilon y_1 + ... 並整理各階。首項解是熟悉的振盪,但它的振幅 A(T) 和相位現在是時間的未知函數。在下一階,同樣那個產生長期項的共振驅動再度出現——回報就在這裡:要求它消失並沒有丟掉信息,反而交出了一個支配 A(T) 如何演化的方程。慢尺度方程來自扼殺長期項,而非來自手工塞進去的任何額外物理。

你該帶走的東西

退後一步,本篇的兩半其實是同一個想法穿著兩套衣裳。正則攝動在小參數的效應一致地小時奏效;當把 epsilon 置零會改變問題的性質時,它就奇異地失敗了——要麼是降低了一個微分方程的階(邊界層的故事),要麼是在長時間裡使共振失諧(長期項的故事)。兩種情形的解藥在精神上是一樣的:別假裝一個近似能覆蓋整個定義域。找到那個被樸素級數壓制掉的第二尺度,給它一個誠實的、屬於自己的變量,讓兩個尺度對話。

最後一點誠實。這些方法是建設性的配方,而不是已替你核驗過假設的定理。主導平衡給出的是一個候選層寬,你必須驗證它自洽——被丟棄的項確實必須算出來更小。匹配解是一個漸近近似,在 epsilon -> 0 時最銳利,而非精確答案;對固定的 epsilon,它能達到一個最佳精度,再無法更進一步。而邊界層可以坐落在任一端,甚至在內部,取決於你必須核查、而非臆斷的符號。在這般審慎之下使用,這是整個應用數學中最強大的近似機器之一——同一套工具箱處理空氣動力學、半導體器件方程、化學反應動力學,以及一個真實擺動鐘擺的緩慢衰減。