第102节
    1989年的中關村還不是後來的中國矽谷,但電子一條街的名聲已經傳開了——長城、聯想、四通,這些名字都是從那條街上的灰磚樓里長出來的。

    鄒工把公文包放在講臺上,開啟,從裡面拿出一樣東西。

    不是檔案,是一臺筆記型電腦。

    黑色的,大概一本《辭海》縮印本那麼大,螢幕合著,外殼上有一個紅綠藍三色組成的標誌。

    他把螢幕掀開,按了一下側面的一個按鈕,機器發出一聲輕微的蜂鳴,螢幕上亮起了一片藍色的光。

    活動室裡的空氣凝固了大概三秒鐘。

    1990年,一臺真正的筆記型電腦,能掀開螢幕就能用的那種。

    集訓隊裡大多數人只在《計算機世界》雜誌上見過照片。

    鄒工把機器轉過來面朝大家,螢幕上是一個DOS命令列,游標一閃一閃的。

    “這是我們公司跟香港合作開發的一款行動式微機。”

    鄒工的聲音帶著一點南方口音,“80286的晶片,1兆記憶體,20兆硬碟,國內目前還沒有批次上市,這是工程樣機。”

    他從公文包裡又掏出一張軟盤,三寸半的,黑色塑膠殼,貼著一張手寫的標籤——數學函式庫·測試版。

    他把軟盤插進機器側面的驅動器裡,軟盤推進去的時候發出咔嗒一聲脆響。

    螢幕上的游標閃了幾下,然後跳出一行字:“MathLib v0.1——中國計算機發展公司。”

    “這個數學函式庫是我們公司正在開發的產品,主要是給國內的科研單位和大學用的。”

    鄒工敲了幾個命令,螢幕上列出了一長串函式名——三角函式、指數對數、矩陣咚恪抵捣e分。“目前核心演算法部分基本完成了,但有一個模組一直沒達到預期的精度。”

    他開啟了一個名為SPLINE.TST的檔案,螢幕上顯示出一組資料和對應的曲線擬合結果。

    “三次樣條插值模組,在邊界條件比較複雜的情況下,誤差會放大,我們除錯了兩個月沒找到問題出在哪裡。”

    鄒工轉過身看著活動室裡的隊員們。

    “公司離這兒不遠,騎車二十分鐘,我們李總聽說集訓隊有一群數學底子紮實的年輕人,讓我帶著機器過來,看有沒有人願意幫忙看看。不是白乾,按專案外包算報酬。”

    活動室裡響起一陣低低的議論聲。

    報酬的事大家沒太在意,真正讓人興奮的是那臺機器。

    一臺能掀開蓋子就能用的筆記型電腦,一張三寸半的軟盤,一個實實在在的、正在開發中的軟體產品。

    不是課本上的例題,不是競賽捲上的試題,是出了這間屋子就要被千千萬萬人用的東西。

    陸沉看著螢幕上那行SPLINE.TST的資料。

    三次樣條插值,數值分析裡的經典內容。

    邊界條件複雜時誤差放大,這個問題他前世見過。

    通常不是插值演算法本身的問題,是邊界導數的估計方法在特定資料分佈下會產生病態。

    標準做法是用自由邊界或者固定邊界的樣條,但實際工程資料往往既不滿足自由邊界也不滿足固定邊界,硬套標準方法就會在邊界附近出現振盪。

    他站起來,走到講臺前面。

    鄒工讓開鍵盤的位置。

    陸沉調出樣條模組的原始碼,螢幕上的C語言程式碼一行一行地滾動。

    他看程式碼的速度讓鄒工的眉毛微微揚了一下。

    不是瀏覽,是在追蹤資料流和邊界處理的邏輯鏈條。

    看到邊界導數估計那一段的時候他停下來。

    “問題在這裡。”他指著螢幕上一段程式碼,“邊界導數的估計用的是三點差分公式,這個公式假設邊界附近的資料是光滑的,如果實際資料在邊界處有突變或者曲率很大,三點差分的截斷誤差會急劇上升。”

    鄒工湊近螢幕看了一會兒。

    “我們試過用五點差分,精度沒改善多少。”

    “不是差分點數的問題。”

    陸沉把程式碼往下翻了幾頁,找到邊界條件判斷的那一段,“是邊界條件的分類不夠細。標準樣條只分三種邊界——固定邊界、自由邊界、週期邊界。

    但實際工程資料的邊界形態遠不止這三種。

    你們這個模組在處理非標準邊界時,會自動歸到最近的標準型別裡,然後硬套標準公式,這才是誤差的根源。”

    他在鍵盤上敲了幾行,在邊界條件判斷模組里加了一個新的分支——非標準邊界預處理。

    思路很簡單:在進入樣條求解之前,先用一個低階多項式對邊界附近的幾個點做區域性擬合,用擬合曲線的端點導數代替原來的差分估計。

    這樣做相當於在邊界處加了一個緩衝區,讓邊界條件從非標準平滑

本章未完,请点击下一页继续阅读>>