陳浩的硬體理解力確實不錯。
最後是劉宇的數學問題。
陸沉看了看那個積分公式和被積函式,是一個振盪衰減的函式。
劉宇用BASIC寫了一個矩形法求積分的程式,但結果誤差很大。
“你的思路是對的,離散化,用矩形面積求和近似積分。但問題可能出在兩個地方。”陸沉分析道,“第一,離散步長。這個函式在初始階段變化劇烈,後面衰減平緩。用固定步長,要麼前面精度不夠,要麼後面浪費計算。可以考慮用自適應步長,變化快的地方步長小一點,平緩的地方步長大一點。”
劉宇若有所思:“自適應……就像用顯微鏡看細胞,密集的地方多看幾眼,稀疏的地方少看幾眼?”
“對。第二,舍入誤差。BASIC用的是單精度浮點數,有效位數有限。連續加和很多小數時,誤差會累積。你可以試試用雙精度變數,如果BASIC支援的話。或者,改變求和順序,先加絕對值大的數,再加小的,能稍微減少誤差。更根本的辦法,是換用數值穩定性更好的演算法,比如辛普森積分法,但實現起來複雜些。”
陸沉一邊說,一邊在8086上快速寫了個簡單的雙精度累加示例,演示誤差累積。
又簡要介紹了辛普森公式的思想。
劉宇聽得非常專注,在筆記本上飛快記錄。
“數值計算……誤差分析……演算法穩定性……”劉宇喃喃道,彷彿打開了一扇新窗戶,“我原來只覺得數學是公式和定理,沒想到用到計算機上,還有這麼多講究。”
“數學是理論,計算機是實現工具。兩者結合,才能解決實際問題。”陸沉說。
這正是他一直以來秉持的理念。
解決了三個人的問題,窗外天色已暗。
孫鵬心滿意足地回去除錯他的坦克,陳浩抱著他那張CPU流水線工廠圖如獲至寶,劉宇則若有所思地捧著筆記本離開了。
陸沉坐回8086前,準備繼續自己的學習。
然而,就在他敲下幾個命令後,顯示器突然一黑,主機風扇的嗡鳴聲也戛然而止。
停電了?不,頭頂的日光燈還亮著。
陸沉心裡一沉,立刻檢查主機背後的電源線,插緊了。
按下電源開關,毫無反應。
他趴到桌子底下,看向插座——指示燈是亮的,有電。
問題出在主機電源上。
他關掉插座開關,拔掉主機所有連線線,拿出宋師傅給的那套螺絲刀,小心地擰開主機箱側板的螺絲。
機箱內部展現在眼前,落著一層薄灰。
電源是一個方形的鐵盒子,位於機箱後部上方。
他湊近聞了聞,沒有焦糊味。








