第254章 無解的方程
前兩個項目一路往前沖,東翼實驗樓里天天有人跑著報喜。
複合裝甲那邊解決了材料問題,周德海帶著人泡在衝擊台邊上,記錄紙一張接一張地往外飛。
旋翼項目那邊更誇張,空軍研究所來的幾位專家這兩天安靜得很,見了秦鐵生的徒弟都客客氣氣,連遞圖紙都知道雙手捧著。
只有炮控穩像儀項目組,氣壓低得像塊石頭壓在地上。
顧明遠已經七天沒回家了。
這七天裡,實驗室的燈從沒滅過。桌上堆滿了草稿紙,地上也全是廢稿。有人算到一半把紙團成團扔了,有人剛寫完兩行又重頭來過。最裡面那台院裡最先進的計算機一直在運轉,機箱燙得厲害,風扇轉得嗡嗡響,像隨時要散架。
問題卡在一組非線性微分方程上。
這組方程用來補償坦克行進中炮口的隨機抖動。炮塔轉向,車體起伏,履帶壓過坑窪,所有誤差疊在一起,最後都得靠這套算法吃掉。不然炮口一偏,前線打出去的炮彈就得往天上跑。
顧明遠把能用的方法全試過了。
歐拉法不行,誤差太大。
龍格庫塔不行,算到後面直接發散。
差分疊代也不行,剛收斂一點就被新的擾動項頂翻。
計算機每次跑到後半段都會停住,屏幕吐出一串難看的報錯代碼。旁邊的技術員一遍遍重啟,一遍遍重算,最後看著那串代碼,眼神都發直。
顧明遠坐在黑板前面,眼窩深得嚇人。
他的鬍子長出來了,襯衫領口松著,袖口卷到手肘,手背上全是墨水和粉筆灰。那種三年前熟悉的無力感又回來了,一點一點往心裡鑽。那時候他也是這樣,抱著一堆推不動的公式,熬到最後,連自己都開始懷疑自己。
旁邊的年輕技術員捧著一摞新算出來的草稿,小聲開口。
「顧工,要不咱們把補償模型再簡化一層試試。」
顧明遠抬眼看了看他,嘴唇動了一下。
「再簡化,就不是穩像儀了,是安慰自己。」
年輕技術員閉上了嘴。
實驗室里沒人再吭聲。
牆上的鐘走到了深夜十一點二十。
門外的走廊傳來腳步聲,不快,很穩。
陸川先推門進來,身上還帶著夜裡的涼氣。後面跟著程美麗,頭髮用髮夾簡單別著,手裡拿著一捲圖紙,進門之後先掃了一眼屋裡。
地上全是紙。
桌上全是紙。
黑板上那組方程寫得滿滿當當,像一張網,把所有人都兜住了。
顧明遠站起來,動作太急,膝蓋在椅子上磕了一下,差點沒站穩。
「程工。」
他的嗓子啞得厲害。
「這個坎,我們過不去了。」
他抬起手,指向黑板。
「我把能試的數值方法都試了一遍。模型越推越亂,參數越補越多,後面根本收不住。也許……是我太高估自己了。」
說到最後一句,他把手放下了,肩膀也跟著塌了一截。
這句話一出來,屋裡那點撐著人的氣也散了。
有人低下頭,有人直接把鋼筆放回桌上,誰都沒接話。
程美麗沒急著開口,走到了黑板前面。
她站在那裡看。
從左上角看到右下角。
看了第一遍,又看第二遍。
陸川走到她身後,把自己身上的軍大衣脫下來,披在了她肩上。動作很輕,衣領剛好壓住她的後背。
程美麗抬手攏了攏衣襟,眼睛沒離開黑板。
五分鐘。
沒人動。
也沒人敢出聲。
顧明遠站在旁邊,手心裡全是汗。他不是等一個答案,他是在等宣判。他想知道自己到底是差了半步,還是從一開始就走錯了。
程美麗終於伸手,拿起了黑板槽里的板擦。
第一筆,從最上面那行方程擦起。
顧明遠愣住了。
旁邊兩個技術員也愣住了。
「程工,您這是……」
話沒說完,整塊黑板上的方程已經被她擦掉了一大半。
粉筆灰往下掉,白茫茫落了一地。
顧明遠的眼睛一下子紅了。
那是他們七天七夜的東西。
程美麗把最後一塊寫滿公式的區域也擦乾淨了,把板擦往槽里一丟,轉過身。
「你們的建模思路從一開始就錯了。」
她的聲音不高,但每個字都很清楚。
「你們想的是怎麼求一個精確解。問題是,坦克行進中的炮口抖動,本來就不是一個能提前寫死的精確量。它是隨機的,是持續變化的,是你測到一半它就已經變了的東西。」
顧明遠怔在原地。
「可如果不求精確解,穩像補償靠什麼做?」
「靠估計。」
程美麗拿起粉筆,在黑板最左邊寫下兩個字。
狀態。
她又在右邊寫下兩個字。
觀測。
「你們現在的問題,不是求解方程。是怎麼在每一瞬間,用測到的數據,去修正你對下一瞬間的判斷。」
她轉過頭看了一眼那台還在嗡嗡響的計算機。
「說白了,不是先把結果算出來再去補償,是邊測邊估,邊估邊改。」
顧明遠的呼吸停住了。
腦子裡像是有一層東西被她一句話戳破了。
旁邊一個年輕技術員忍不住開口。
「這怎麼可能,測量本身就有誤差,誤差疊上誤差,最後不是更亂?」
「所以要濾。」
程美麗在黑板上寫下四個字。
卡爾曼濾波。
沒人聽過。
顧明遠沒聽過,屋裡的其他人更沒聽過。
但光是這四個字寫出來,顧明遠就覺得後背起了一層麻。
程美麗轉回身,粉筆在黑板上迅速落下。
先寫概率。
再寫均值。
再寫協方差矩陣。
一個矩陣套一個矩陣,一個狀態方程接一個觀測方程,符號越寫越多,結構卻越來越清楚。她沒有繞複雜的彎,先從最基礎的誤差傳播講起,再把隨機噪聲和系統噪聲拆開,最後一步一步把預測和修正拼到一起。
「先給系統一個初值。」
「讓模型往前走一步,得到預測狀態。」
「再把實測值塞進來,比較預測和觀測之間的偏差。」
「偏差怎麼用,不是全信測量,也不是全信模型。權重由誤差協方差來定。」
她邊寫邊說,粉筆在黑板上一路往右推。
「這一步,叫預測。」
「這一步,叫更新。」
「預測錯了,更新來拉。」
「測量偏了,模型來穩。」
「每次只改一點,但每次都比上一次更准。」
黑板上的公式越來越密。
但不是亂,是一層一層搭起來的。
顧明遠看著第一行的時候還能跟得上,看到中間的時候已經開始冒汗,看到後面那組矩陣遞推關係,手指都在發抖。
那不是這個時代常見的解方程習慣。
這是另一套思路。
更狠,也更准。
它不跟隨機擾動硬碰硬,它把隨機擾動吃進模型里,拿它當系統的一部分。
顧明遠忽然往前走了一步,差點撞到黑板。
「這裡……這裡為什麼能這麼處理?」
程美麗頭也沒回。
「因為誤差不是敵人,誤差是信息。」
她在黑板最右邊寫下最後一組矩陣公式,粉筆停住了。
「你們之前那套模型,想把所有擾動都消滅掉,結果把自己先累死了。」
她把最後一個符號補完,往後退了一步。
「我這套模型,不消滅擾動,只管把它馴服。」
黑板滿了。
從左到右,全是新世界。
顧明遠站在原地,像被誰迎面打了一悶棍,又像被人從井底一把拽了出來。
他看著那整整一黑板的公式,眼神一點一點變了。
先是不信。
再是茫然。
最後變成了某種近乎敬畏的東西。
他抬起手,想碰那塊黑板,又不敢碰,指尖懸在半空里,抖得厲害。
「這……這是什麼算法?」
他的聲音劈了。
「它甚至……甚至不在現代數學的範疇里。」
程美麗把粉筆隨手往槽里一扔,拍了拍手,粉筆灰落在軍大衣的袖口上。
她轉身,幾步走回陸川身邊,直接窩進了他懷裡,腦袋往他胸口一撞,長長地打了個哈欠。
「一個數學模型而已,有什麼大驚小怪的。」
她在陸川懷裡換了個舒服點的位置,聲音懶了下來。
「老
複合裝甲那邊解決了材料問題,周德海帶著人泡在衝擊台邊上,記錄紙一張接一張地往外飛。
旋翼項目那邊更誇張,空軍研究所來的幾位專家這兩天安靜得很,見了秦鐵生的徒弟都客客氣氣,連遞圖紙都知道雙手捧著。
只有炮控穩像儀項目組,氣壓低得像塊石頭壓在地上。
顧明遠已經七天沒回家了。
這七天裡,實驗室的燈從沒滅過。桌上堆滿了草稿紙,地上也全是廢稿。有人算到一半把紙團成團扔了,有人剛寫完兩行又重頭來過。最裡面那台院裡最先進的計算機一直在運轉,機箱燙得厲害,風扇轉得嗡嗡響,像隨時要散架。
問題卡在一組非線性微分方程上。
這組方程用來補償坦克行進中炮口的隨機抖動。炮塔轉向,車體起伏,履帶壓過坑窪,所有誤差疊在一起,最後都得靠這套算法吃掉。不然炮口一偏,前線打出去的炮彈就得往天上跑。
顧明遠把能用的方法全試過了。
歐拉法不行,誤差太大。
龍格庫塔不行,算到後面直接發散。
差分疊代也不行,剛收斂一點就被新的擾動項頂翻。
計算機每次跑到後半段都會停住,屏幕吐出一串難看的報錯代碼。旁邊的技術員一遍遍重啟,一遍遍重算,最後看著那串代碼,眼神都發直。
顧明遠坐在黑板前面,眼窩深得嚇人。
他的鬍子長出來了,襯衫領口松著,袖口卷到手肘,手背上全是墨水和粉筆灰。那種三年前熟悉的無力感又回來了,一點一點往心裡鑽。那時候他也是這樣,抱著一堆推不動的公式,熬到最後,連自己都開始懷疑自己。
旁邊的年輕技術員捧著一摞新算出來的草稿,小聲開口。
「顧工,要不咱們把補償模型再簡化一層試試。」
顧明遠抬眼看了看他,嘴唇動了一下。
「再簡化,就不是穩像儀了,是安慰自己。」
年輕技術員閉上了嘴。
實驗室里沒人再吭聲。
牆上的鐘走到了深夜十一點二十。
門外的走廊傳來腳步聲,不快,很穩。
陸川先推門進來,身上還帶著夜裡的涼氣。後面跟著程美麗,頭髮用髮夾簡單別著,手裡拿著一捲圖紙,進門之後先掃了一眼屋裡。
地上全是紙。
桌上全是紙。
黑板上那組方程寫得滿滿當當,像一張網,把所有人都兜住了。
顧明遠站起來,動作太急,膝蓋在椅子上磕了一下,差點沒站穩。
「程工。」
他的嗓子啞得厲害。
「這個坎,我們過不去了。」
他抬起手,指向黑板。
「我把能試的數值方法都試了一遍。模型越推越亂,參數越補越多,後面根本收不住。也許……是我太高估自己了。」
說到最後一句,他把手放下了,肩膀也跟著塌了一截。
這句話一出來,屋裡那點撐著人的氣也散了。
有人低下頭,有人直接把鋼筆放回桌上,誰都沒接話。
程美麗沒急著開口,走到了黑板前面。
她站在那裡看。
從左上角看到右下角。
看了第一遍,又看第二遍。
陸川走到她身後,把自己身上的軍大衣脫下來,披在了她肩上。動作很輕,衣領剛好壓住她的後背。
程美麗抬手攏了攏衣襟,眼睛沒離開黑板。
五分鐘。
沒人動。
也沒人敢出聲。
顧明遠站在旁邊,手心裡全是汗。他不是等一個答案,他是在等宣判。他想知道自己到底是差了半步,還是從一開始就走錯了。
程美麗終於伸手,拿起了黑板槽里的板擦。
第一筆,從最上面那行方程擦起。
顧明遠愣住了。
旁邊兩個技術員也愣住了。
「程工,您這是……」
話沒說完,整塊黑板上的方程已經被她擦掉了一大半。
粉筆灰往下掉,白茫茫落了一地。
顧明遠的眼睛一下子紅了。
那是他們七天七夜的東西。
程美麗把最後一塊寫滿公式的區域也擦乾淨了,把板擦往槽里一丟,轉過身。
「你們的建模思路從一開始就錯了。」
她的聲音不高,但每個字都很清楚。
「你們想的是怎麼求一個精確解。問題是,坦克行進中的炮口抖動,本來就不是一個能提前寫死的精確量。它是隨機的,是持續變化的,是你測到一半它就已經變了的東西。」
顧明遠怔在原地。
「可如果不求精確解,穩像補償靠什麼做?」
「靠估計。」
程美麗拿起粉筆,在黑板最左邊寫下兩個字。
狀態。
她又在右邊寫下兩個字。
觀測。
「你們現在的問題,不是求解方程。是怎麼在每一瞬間,用測到的數據,去修正你對下一瞬間的判斷。」
她轉過頭看了一眼那台還在嗡嗡響的計算機。
「說白了,不是先把結果算出來再去補償,是邊測邊估,邊估邊改。」
顧明遠的呼吸停住了。
腦子裡像是有一層東西被她一句話戳破了。
旁邊一個年輕技術員忍不住開口。
「這怎麼可能,測量本身就有誤差,誤差疊上誤差,最後不是更亂?」
「所以要濾。」
程美麗在黑板上寫下四個字。
卡爾曼濾波。
沒人聽過。
顧明遠沒聽過,屋裡的其他人更沒聽過。
但光是這四個字寫出來,顧明遠就覺得後背起了一層麻。
程美麗轉回身,粉筆在黑板上迅速落下。
先寫概率。
再寫均值。
再寫協方差矩陣。
一個矩陣套一個矩陣,一個狀態方程接一個觀測方程,符號越寫越多,結構卻越來越清楚。她沒有繞複雜的彎,先從最基礎的誤差傳播講起,再把隨機噪聲和系統噪聲拆開,最後一步一步把預測和修正拼到一起。
「先給系統一個初值。」
「讓模型往前走一步,得到預測狀態。」
「再把實測值塞進來,比較預測和觀測之間的偏差。」
「偏差怎麼用,不是全信測量,也不是全信模型。權重由誤差協方差來定。」
她邊寫邊說,粉筆在黑板上一路往右推。
「這一步,叫預測。」
「這一步,叫更新。」
「預測錯了,更新來拉。」
「測量偏了,模型來穩。」
「每次只改一點,但每次都比上一次更准。」
黑板上的公式越來越密。
但不是亂,是一層一層搭起來的。
顧明遠看著第一行的時候還能跟得上,看到中間的時候已經開始冒汗,看到後面那組矩陣遞推關係,手指都在發抖。
那不是這個時代常見的解方程習慣。
這是另一套思路。
更狠,也更准。
它不跟隨機擾動硬碰硬,它把隨機擾動吃進模型里,拿它當系統的一部分。
顧明遠忽然往前走了一步,差點撞到黑板。
「這裡……這裡為什麼能這麼處理?」
程美麗頭也沒回。
「因為誤差不是敵人,誤差是信息。」
她在黑板最右邊寫下最後一組矩陣公式,粉筆停住了。
「你們之前那套模型,想把所有擾動都消滅掉,結果把自己先累死了。」
她把最後一個符號補完,往後退了一步。
「我這套模型,不消滅擾動,只管把它馴服。」
黑板滿了。
從左到右,全是新世界。
顧明遠站在原地,像被誰迎面打了一悶棍,又像被人從井底一把拽了出來。
他看著那整整一黑板的公式,眼神一點一點變了。
先是不信。
再是茫然。
最後變成了某種近乎敬畏的東西。
他抬起手,想碰那塊黑板,又不敢碰,指尖懸在半空里,抖得厲害。
「這……這是什麼算法?」
他的聲音劈了。
「它甚至……甚至不在現代數學的範疇里。」
程美麗把粉筆隨手往槽里一扔,拍了拍手,粉筆灰落在軍大衣的袖口上。
她轉身,幾步走回陸川身邊,直接窩進了他懷裡,腦袋往他胸口一撞,長長地打了個哈欠。
「一個數學模型而已,有什麼大驚小怪的。」
她在陸川懷裡換了個舒服點的位置,聲音懶了下來。
「老