← 返回文章列表
September 23, 2025
5 分鐘閱讀

納維-斯托克斯問題:為什麼你的咖啡杯能執行《毀滅戰士》

納維-斯托克斯問題:為什麼你的咖啡杯能執行《毀滅戰士》
#納維-斯托克斯
#數學
#物理
#CFD
#湍流
#機器學習
#量子計算
#演算法
#流體力學
#程式設計

程式設計師拿不到諾貝爾獎。但解決納維-斯托克斯問題能讓你從克雷研究所獲得一百萬美元——這是唯一一個同時被傳統數學家、DeepMind的AI研究人員和IBM的量子工程師攻克的千年數學難題。2024年發現,流體動力學方程是圖靈完備的,這意味著理論上,你早晨的咖啡杯真的可以計算任何東西。包括《毀滅戰士》。

流體動力學奇點形成:從層流到湍流的轉變

30秒瞭解問題本質

1822年,法國工程師克勞德-路易·納維推導出描述粘性流體運動的方程。23年後,英國人喬治·斯托克斯將其完善為現代形式。這些方程運作得很好——現代空氣動力學、天氣預報和電影特效都依賴於它們。只有一個問題:沒人能證明這些方程總是有解。或者它們不會在有限時間內爆炸到無窮大。

想像一個以非線性方式修改自身的遞迴函數。你無法保證它不會進入無限迴圈或產生除零錯誤。現在想像有無數個這樣的函數,它們都相互關聯,並在三維空間的每個點同時執行。這就是納維-斯托克斯方程。

二維情況在1960年代由蘇聯數學家奧爾加·拉迪任斯卡婭解決了。但在三維中,數學已經卡了200年。克雷數學研究所為證明解的存在性和光滑性提供一百萬美元獎金。或者為顯示解可能"爆炸"的反例。

流體的數學複雜性 無限遞迴複雜性:視覺化流體動力學的非線性、自我修改性質,這使得解析解變得極其困難。

為什麼這對程式設計師很重要

每次你在遊戲中看到逼真的水、Blender中的煙霧模擬或智慧手機上的天氣預報——背後都是納維-斯托克斯方程的數值解。《半條命2》在2004年帶來革命,正是因為基於這些方程的水物理效果。Unity和Unreal Engine使用簡化版本進行即時模擬。皮克斯花了數年時間為《海洋奇緣》開發水的演算法。

但有一個根本問題:我們不知道我們的數值方法是否正確。這就像使用沒有正確性證明的排序演算法——看起來能用,但沒有保證。當波音設計新機翼時,他們在風洞測試上花費數百萬,因為CFD模擬不能100%信任。

def navier_stokes_step(u, v, p, dt, dx, dy, nu):
    u_new = u - dt * (u * np.gradient(u, dx, axis=1) +
                      v * np.gradient(u, dy, axis=0))

    u_new += nu * dt * laplacian(u, dx, dy)

    p = solve_poisson(divergence(u_new, v_new), dx, dy)

    u_final = u_new - dt * np.gradient(p, dx, axis=1)
    return u_final, v_final, p

問題在於對流行。術語u * np.gradient(u)意味著速度影響自身。在湍流狀態下,這會產生從大渦流到小渦流的能量級聯,直到達到分子尺度。完整的湍流模擬需要與Re³成比例的解析度,其中Re是雷諾數。對於飛機來說,這是10^18個網格點。即使世界上所有的超級計算機也解決不了這個問題。

物理資訊神經網路求解流體動力學方程

DeepMind用AI發現新奇點

2024年最大的新聞:DeepMind團隊使用物理資訊神經網路在簡化版本的方程中搜索不穩定奇點。他們的計算精度相當於"在幾釐米內預測地球的直徑"。

AI在參數λ(爆炸率)中發現了人類數學家在200年研究中錯過的模式。這不是千年難題的解決方案,但證明了機器學習可以找到人類看不見的結構。

class NavierStokesPINN(nn.Module):
    def forward(self, x, t):
        u = self.net(torch.cat([x, t], dim=1))
        return u

    def physics_loss(self, x, t):
        u = self.forward(x, t)
        u_t = autograd.grad(u, t)[0]
        u_x = autograd.grad(u, x)[0]
        u_xx = autograd.grad(u_x, x)[0]

        residual = u_t + u * u_x - nu * u_xx
        return torch.mean(residual**2)

其他團隊相比經典CFD實現了1000倍的加速。堆疊深度學習模型在7毫秒內解決512×512網格——比遊戲幀渲染還快。這為在普通GPU上即時流體模擬開闢了道路。

AI與物理資訊神經網路 物理資訊神經網路 (PINNs):AI 比經典 CFD 更快地發現隱藏關係並預測湍流中的不穩定奇點。

求解微分方程的量子-經典混合計算演算法

量子計算機加入遊戲

2024年,IBM和喬治亞理工學院展示了用於求解納維-斯托克斯方程的混合量子-經典演算法。經典處理器處理非線性對流,量子計算機求解壓力的泊松方程——計算最密集的部分。

HTree方法即使在嘈雜的NISQ裝置上也能有效讀取量子態。雖然目前只是小網格的概念驗證,但潛力巨大。量子計算機自然地處理疊加態,非常適合描述湍流。

數學解決嘗試:16次修訂還在繼續

每年都有人聲稱解決了千年難題。2024年12月,Anthony Jordon發表了"諧波共振場模型"——數學界持懷疑態度。Xiangsheng Xu在ArXiv上釋出了"肯定答案"的預印本,並更新了16次——數學論文的記錄。Alexander Migdal提議通過"對偶性"將三維納維-斯托克斯簡化為一維繫統。

歷史教導我們要謹慎。2006年,Penny Smith在發現錯誤後撤回了她的"證明"。2014年,哈薩克數學家Otelbayev聲稱有解決方案,但國際審查發現了致命的漏洞。

有趣的是,大多數嘗試都專注於證明解的存在。但正確答案可能是一個反例,顯示有限時間內的爆炸。這對數值方法來說是災難性的,但對數學來說是突破。

你不知道的應用

資料中心最佳化。Google使用CFD設計伺服器農場的冷卻系統。適當的氣流分佈能節省數百萬的電費。Facebook專門為此任務開發了自己的CFD求解器。

未來醫學。基於患者特定的CFD根據MRI掃描模擬特定患者動脈中的血流。外科醫生可以在第一次切口之前預測手術結果。初創公司SimVascular為此類模擬提供開源平臺。

一級方程式和航空。紅牛車隊使用帶有ANSYS Fluent的超級計算機進行空氣動力學最佳化。網格包含1億個單元;一個配置的計算需要數小時。FIA限制風洞時間,使CFD至關重要。

虛擬網紅和NFT。最意想不到的應用——NFT中的動態流體藝術,通過即時求解納維-斯托克斯生成圖案。Instagram上的虛擬模特使用CFD進行逼真的頭髮和服裝模擬。

納維-斯托克斯的實際應用 計算流體動力學的實際應用:從一級方程式空氣動力學和全球天氣預報到對特定患者動脈血流進行建模。

圖靈完備性和哲學含義

2024年中期,數學家證明某些流動配置可以模擬任何可計算函數。納維-斯托克斯方程是圖靈完備的。理論上,你可以在初始流動條件中編碼程式,並通過流體演化"計算"結果。

這對可預測性設定了根本限制。如果流動可以模擬任意程式,那麼預測其行為等同於解決停機問題——一個可證明無解的任務。即使是完美的AI也無法在所有情況下預測湍流。

另一方面,這為流體動力計算機開闢了道路。MIT研究人員已經基於液滴建立了邏輯閘。未來的處理器可能不是用電子,而是用渦流來計算。

下一步:數學家 vs 程式設計師

在處理納維-斯托克斯問題上形成了兩個陣營。傳統數學家使用泛函分析和測度論尋求解析證明。計算科學家通過機器學習、量子演算法和計算機輔助證明來攻克問題。

CFD初創公司不等千年難題解決。ByteLAKE將工業模擬時間從幾小時減少到幾分鐘。M-Star Simulations提供可在任何硬體上執行的基於粒子的方法。Convergent Science釋出了帶有自主網格生成的CONVERGE CFD v5——不再需要花幾個月準備計算模型。

開源社群也沒有落後。Lorena Barba教授的CFDPython GitHub倉庫獲得了數千顆星。"通往納維-斯托克斯的12步"成為程式設計師的經典教程。OpenFOAM仍然是擁有150萬行C++程式碼的工業標準。

尾聲:咖啡、《毀滅戰士》和計算的未來

納維-斯托克斯問題仍然是經典物理學抵抗數學形式化的最後堡壘。它既是價值數萬億美元的實際工程問題,也是關於無窮本質的深刻數學謎題。

續篇:第二部分:從湍流到交易:納維-斯托克斯方程如何革新演算法交易

對程式設計師來說,這提醒我們並非所有問題都能通過新增抽象層或增加計算能力來解決。有些問題是根本性的。但正是在數學、物理和電腦科學的交叉點上產生了突破。

也許解決方案不會來自一個拿著粉筆和黑板的孤獨天才,而是來自一個結合數學直覺和計算能力的人機混合團隊。或者某個初級開發者在最佳化他們獨立遊戲中的水渲染時意外地找到了反例。

在我們等待的同時,請記住:每次你攪拌咖啡時,你都在啟動一個理論上可以模擬任何演算法的計算過程。包括《毀滅戰士》。只是我們還不知道如何用湍流的語言程式設計。

免責宣告:本文提供的資訊僅用於教育和參考目的,不構成財務、投資或交易建議。加密貨幣交易涉及重大損失風險。

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

緊跟市場步伐

訂閱我們的時事通訊,獲取獨家 AI 交易見解、市場分析和平台更新。

我們尊重您的隱私。您可以隨時退訂。