奧推網

選單
遊戲

兩百年前就創造出計算機的大神——巴貝奇的傳奇人生(一)

你很難想象,電子計算機在被髮明的時候,只是單純為了計算複雜工程的應用資料。當年老美的第一臺計算機埃尼阿克誕生的時候,可不是為了以後我們可以網上購物,刷抖音,而是為了更加快速準確計算導彈軌跡的。沒人會想到在21世紀,計算機和網際網路相互加持的時候會給世界帶來多大的顛覆。為什麼要突出老美造的第一臺計算機是電子計算機呢?因為在這之前的一百多年,有個男人用純機械的方式也造了一臺計算機,後世的電子計算機正是在這基礎上改造而來,這個人就是英國人巴貝奇。

第一臺電子計算機 埃尼阿克

查爾斯·巴貝奇,1791年出生在英國的一個銀行家族裡。家裡是幹銀行的,不管在任何時代都應該能被稱為富二代。有了這個出身,以後幹金融或者別的什麼行業,家庭都會很用心去培養孩子的。在父親的培養下,巴貝奇從小就展現了驚人數學天賦。後來巴貝奇考入劍橋大學,在這所大學裡,也沒過多久他的數學知識就已經超過了他的大部分老師。畢業之後,巴貝奇留校任教,24歲時,巴貝奇就擔任劍橋“盧卡斯講座”的數學教授,這是一個相當高階的職位,類似於終身教授了。人家才24歲啊,換著是我們現在的年紀,剛剛畢業。。。

查爾斯 巴貝奇

家庭優渥,天賦異稟,個人奮鬥讓巴貝奇的求學從教生涯如此水到渠成,彷彿也跟很多數學大師的青年時代很類似。他們的整個職業生涯都跟大學分不開,始終都站在學術第一線。憑藉巴貝奇的天賦,如果也按照前輩們的足跡,按部就班發展下去,等到他晚年時,就算達不到高斯的高度,到達柯西的地位還是很有可能的。然而巴貝奇一生都在挑戰那些不可能,他放棄了“平平無奇”的科研一線,選擇了另外一條彷彿苦行僧一般的職業軌跡。

劍橋大學

然而一件事卻改變了巴貝奇的職業生涯。

18世紀末,法蘭西帝國的急速擴張,在工程計算領域,法蘭西人發起了一場編制《數學用表》的浩大工程,以此來簡化各種工程領域的繁雜計算。這在18,19世紀並沒有多少先進計算工具的前提下可是一件相當龐大的系統工程,就好比是同時期的乾隆要編纂《四庫全書》一般。當時法國的數學實力在世界上是頂尖的存在,法國集中了大量的計算能手,甚至組織成流水線作業,終於在幾年時間內完成了一部長達17卷的大書。為了完成這項工程,法國人也真是拼了老命了。

數學用表的編制工作極為複雜

然而非常不幸的是,這部大工具書裡仍然是錯誤百出,畢竟這始終是一部人工編寫的工具書,既然是人工計算那就免不了會出現錯漏,你想盡可能使得這部書正確,那你就必須要在初稿完成之後做多次複查驗算,直到你的幾次驗算結果完全一致才能說明這部工具書真的可靠。話雖如此,你以為是考試檢查錯題呢?法國人能完成就不錯了,還想再驗算,法國人吃不消了!

巴貝奇有幸看到了這部浩大的《數學用表》,憑藉敏銳的數學才能,他沒翻幾頁就已經發現成堆的錯誤。再翻下去,他忍不了,真的忍不了了,甚至吐槽“天哪,但願上帝知道,這些計算錯誤已經充斥瀰漫了整個宇宙!”

工業革命時代的蒸汽機車

有人說,數學家都是一群有強迫症的人,他們眼睛裡容不得一丁點漏洞出現。巴貝奇顯然也是這一類,自從上次看到法國人嘔心瀝血鑄成的《數學用表》居然是如此粗糙不堪。這件事始終在巴貝奇心裡揮之不去,有天迷迷糊糊對著桌子上的對數表發呆,突然靈光一閃,也許這些表可以用機器代替人工計算。

事實上,巴貝奇可不是一時心血來潮,很久以前他就注意到法國人傑拉德發明的提花編織機與別的機器不太一樣。18世紀,正是工業革命如火如荼的時代,各種以蒸汽為動力的機器層出不窮,但是這些機器普遍執行的都是一些最沒有技巧性的蠻力動作。唯獨這個提花編織機卻可以自動編織出一些複雜圖案來,且全程無人參與。

傑卡德

在充分了解了這套提花編織機的原理之後,巴貝奇發現,這套提花編織機之所以能夠執行這些高難度動作,主要原因就是這些密密麻麻的執行卡片,當把卡片插入機器時,各種經線緯線對應的鉤針就會全程根據卡片上的不同針孔排列順序來進行穿線過程,只要編制卡片的針孔事先定義好,那麼最後製成的布料就必定是同樣的圖案。按照現代程式設計的思想來看,這個編制卡片就相當於計算機執行的程式,鉤針的數量就相當於是計算機執行記憶體,程式設計這個詞就是從這開始的吧。

提花編織機 執行卡片工作原理

編織卡片給了巴貝奇極大的靈感,如果我也能發明一套可以自動計算資料的編織機,然後再插入對應的執行卡片,那麼製表的繁重工作不就可以交給機器了嗎?人工計算帶來的錯誤就可以完全避免了!

說幹就幹,巴貝奇準備先製造一個簡單的差分機,可以自動計算多項式值的機器。說到這個差分機的原理,這是帕斯卡在1654年提出的一個數學結論。

一個n次多項式的n次數差是個常數。

不好理解?我們來舉個例子。

圖1

圖2

這是個一次式子,那麼只要計算一次,就能發現一次數差就一直是4。那再搞個複雜的多項式來看看。

圖3

圖4

經過計算,我們得到,當計算到4次數差之後,就開始出現一個常數,這個常數是24。可能有許多厲害的同學已經發現,這個求n次數差的過程有點類似於給某個多項式求導啊。是的,就是這樣的思路,一個n次多項式,在連續求了n次導數之後會是什麼呢?就是

D(n)=Δf(n)=an!

當然這裡只是一個概括性的結論,嚴謹的方式應該要用數學歸納法來證明才行。

可能很多同學疑惑了,這個表跟機械計算有什麼關係嗎?機器最擅長的是加和重複計算,從這上面的表,我們可以看到,總有f(n+1)=f(n)+d1(n)。這裡存在一個遞推關係,也就是,你想計算f(n+1),就要知道f(n)和一次階差d1(n)。而巧就巧在,這f(n-1)和d1(n)都可以從f(0)和d1(0)逐漸遞推而來。

我們來看看,這樣遞推得到的計算結果,是否與真實結果相同。

圖5

果然一模一樣,在這裡我們不斷用前面的值層層遞進去相加最終得到後面一個函式值f(n)。而且計算過程中,我們也只要提前準備f(0),d1(0),d2(0),d3(0)=24這4個值,便可以透過很少的加法就得到任意一個f(n)的值,

這裡避免直接計算多項式f(n)帶來的巨大計改用簡單的加法計算來得到最後的結果,效率大大提高

巴貝奇又注意到,這種重複迭代的加法仍然有缺陷,只要中間中斷一步,後面的計算通通不能執行。於是,他改進了這種重複迭代相加的方式,改用並行相加的方式,使得效率更加提高。

1822年 差分機一號

理論上毫無爭議,巴貝奇開始真正來做原型機。然而這個簡單的技術驗證的原型機都耗費了巴貝奇整整十年時間!如此困難的原因在於,當時的工業機械加工零件精密度極差,你設計了圖紙,也沒人能按照圖紙原封不動製作出來。於是巴貝奇就承擔了從設計到零件加工,調教的全部工作。本來人家是一位數學大師,硬生生被訓練成了機械工程師和車工。事實上,我都懷疑,假如巴貝奇這個時候放棄差分機的研製工作,轉行去瑞士發展,大概也會成為一個頂尖的製表大師。

如果轉行,巴貝奇也一定是個製表大師

1822年,巴貝奇的第一臺差分機制造完成,就迫不及待地將它展示給英國皇家學會,並且提交 一份《論機械在天文及數學用表計算中的應用》的論文,從此差分機的概念正式問世。這臺機器的確可以很快執行一些複雜計算,很適合來製作一些航空資料用表,可以達到6位精度,並且從來不會出錯。這還真是個好東西,能夠替代人力計算的確是個有利可圖的先進玩意。這次成功展示之後,英國政府決定資助巴貝奇來製造計算能力更加強大的差分機二號,並且贊助了巨資1。7萬英鎊,這相當於現在的170萬英鎊,是一筆很大的投資了。要知道,在1831年,一臺蒸汽機車的製造成本也就只有784英鎊而已。

後世根據巴貝奇手稿完成的差分機

眼看要到贊助,巴貝奇就開始準備他雄心勃勃的差分機二號計劃。文章開頭說了,巴貝奇選擇了一條崎嶇不堪的職業生涯,就是從製造差分機二號開始的。於是,從此開始,巴貝奇改變了自己的人生。