電腦代數與符號計算

里施演算法(Risch algorithm)

/ RISH /

一代代學生靠尋找技巧來積分:試代換、試分部、試查表,然後祈禱。里施演算法以確定性取代尋找。由羅伯特·里施於 1968 年發表,它是積分的判定程序:給定一個初等函數,它不只是試著找反導數——它保證要嘛以封閉形式產生一個,要嘛證明不存在初等反導數。它把「我找不到」變成強得多的「根本沒有」。

關鍵的洞見是結構性的,而非一袋技巧。里施在一個「微分體」內建構被積函數——一座擴張之塔,每一新層恰在有理函數之上加進一個超越元素(像 e^x 的指數,或像 log(x) 的對數)。在這個剛性的代數結構裡,「初等反導數是否存在,又是什麼?」的問題化為對係數的一連串可解代數條件:你假設反導數在同一個體裡必須具有的一般形狀,然後解出它,而那些條件要嘛成功(給出積分),要嘛可證明無解(證明不存在)。它立基於劉維爾定理,該定理嚴格限制了初等反導數可能長什麼樣子,而它正是正經電腦代數系統中 integrate 指令的引擎。

里施演算法之所以重要,在於它是符號積分的理論頂石——這正是電腦代數系統能自信地說 exp(-x^2) 沒有初等積分、而非只是失敗的原因。誠實的提醒是真實的。完整的演算法極其錯綜複雜;沒有系統完整實作它,因為它最終歸結到一些子問題(判定某些常數是否為零),而那觸及了不可判定的零等價問題。真實的系統實作一大塊實用片段,外加啟發法與表格。而且它侷限於初等函數:把問題延伸到特殊函數,那個乾淨的判定程序就不再適用。

向電腦代數系統要 exp(x^2) 的積分。里施機制在建構出由 exp(x^2) 生成的微分體之後,判定不存在有理函數 R 能使 d/dx (R * exp(x^2)) 等於 exp(x^2)。於是它回傳一個有證明背書的裁決:不存在初等反導數(答案以虛誤差函數 erfi 命名)。

里施判定存在性:給出封閉形式積分,或給出「不存在」的證明。

沒有電腦代數系統完整實作里施演算法,因為它的常數零檢驗子問題撞上了不可判定的零等價問題。實務上系統使用一大塊片段加啟發法——所以電腦代數系統偶爾會積不出其實是初等的東西。

又称
Risch integration algorithmRisch decision procedure里施積分演算法里施判定程序