會圓術
會圓術
會圓術給出圓的弧矢關係的(實用)近似公式,其思想脈絡應該來自九章算術中弧田術中的面積近似公式,即局部以直代曲,求出弧長,這裡需要注意的是,沈括給出的是近似公式,當圓心角小於45時,相對誤差小於2%。這樣的成果是粗糙的,因為他沒能給出嚴謹的公式來,直接得出的就是近似公式,這和九章算術中給出錯誤的球體積公式是一個路數。再者說,他的方法也不是原創的,思想性也不強,也可以理解為計算了一道題。
一種計算圓弓形弧長的近似方法,為北宋時沈括首創。沈括的《夢溪筆談》卷18的“會圓術”給出的圓弓形弧長的近似公式為
l=a+h^2/r
其中,r為半徑,h為矢高(即圓弓形的高),a為弦長。公式的計算結果比實際值略小,並且圓弓形的弧所對圓心角越小,其精確度越大,當圓心角小於45°時,相對誤差小於2%。沈括並未給出這一公式的推導,它很可能與《九章算術》“弧田術”有著某種密切的關係。
「會圓術」(已知圓的直徑和弓形的高,求弓形的弦和弧長的方法.
算術求積尺①之法,如芻萌②、芻童、方池、冥谷、塹堵、鱉臑③、圓錐、陽馬④之類,物形備矣,獨未有隙積一術。古法:凡算方積之物,有立方⑤,謂六冪皆方者。其法再自乘則得之。有塹堵,謂如土牆者,兩邊殺,兩頭齊。其法並上下廣折半以為之廣,以直高乘之⑥,又以直高為股,以上廣減下廣,余者半之為勾。勾股求弦,以為斜高。有芻童,謂如覆斗者,四面皆殺。其法倍上長加入下長,以上廣乘之;倍下長加入上長,以下廣乘之;並二位,以高乘之,六而一。隙積者,謂積之有隙者,如累棋、層壇及酒家積罌⑦之類。雖似覆斗,四面皆殺,緣有刻缺及虛隙之處,用芻童法求之,常失於數少。餘思而得之,用芻童法為上位、下位,別列⑧下廣,以上廣減之,余者以高乘之,六而一,併入上位。假令積罌:最上行縱廣各二罌,最下行各十二罌,行行相次。先以上二行相次,率至十二,當十一行也。以芻童法求之,倍上行長得四,併入下長得十六,以上廣乘之,得之三十二;又倍下行長得二十四,併入上長,得二十六,以下廣乘之,得三百一十二;並二位得三百四十四,以高乘之,得三千七百八十四。重列⑨下廣十二,以上廣減之,餘十,以高乘之,得一百一十,併入上位,得三千八百九十四;六而一,得六百四十九,此為罌數也。芻童求見實方之積,隙積求見合角不盡,益出羨積也。履畝之法,方圓曲直盡矣,未有會圓之術⑩。凡圓田,既能拆之,須使會之復圓。古法惟以中破圓法拆之,其失有及三倍者。余別為拆會之術,置圓田,徑半之以為弦,又以半徑減去所割數,余者為股;各自乘,以股除弦,余者開方除為勾,倍之為割田之直徑。以所割之數自乘倍之,又以圓徑除所得,加入直徑,為割田之弧。再割亦如之,減去已割之弧,則再割之弧也。假令有圓田,徑十步,欲割二步。以半徑為弦,五步自乘得二十五;又以半徑減去所割二步,餘三步為股,自乘得九;用減弦外,有十六,開平方,除得四步為勾,倍之為所割直徑。以所割之數二步自乘為四,倍之得為八,退上一位為四尺,以圓徑除。今圓徑十,已足盈數,無可除。只用四尺加入直徑,為所割之孤,凡得圓徑八步四尺也。再割亦依此法。如圓徑二十步求弧數,則當折半,乃所謂以圓徑除之也。此二類皆造微之術,古書所不到者,漫志於此。
①積尺:在本文中泛指體積,也就是“立方尺”的意思。積:數學名詞,兩個或多個數相乘的結果稱為這些數的積。在古代算學書籍里常借用長度單位名稱來兼表面積單位或者體積單位,因此,“積尺”在古代既可以表示“平方尺”,也可以表示“立方尺”。
②芻萌:長方楔形狀,其底面為長方形,兩個側面為梯形,也稱為芻甍(hōnɡ)。
③鱉臑:一種錐體,底面為直角三角形且有一棱與底面垂直。
④陽馬:四稜錐,有時指底面為長方形且有一棱與底面垂直的錐體。
⑤立方:文中指正方體。
⑥以直高乘之:用梯形面的垂直高相乘,文中指用上句中所得的數值(梯形的上下寬相加除以二)與高相乘。至此,實際上就得到了這個梯形的面積,也為下一步乘以長度得到物體的體積作了準備。
⑦罌:古代一種腹大口小的陶制容器。
⑧別列:文中指另外計算。
⑨重列:另外列出。
⑩會圓之術:會圓術,沈括所創的一種計算圓弓形弧長的近似方法,其近似公式為C=a+h2r×6,其中r為半徑,h為矢高,a為弦長。沈括並未給出這一公式的推導,它很可能與《九章算術》中“弧田術”有著某種密切的關係。
別:另,另外。古代無“另”字,用“另”的地方常寫作“別”。
各自乘:文中指將弦、股各自平方。
再割亦如之:再次切割也如此類推。
減去已割之弧,則再割之弧也:(用總的弧長)減去已割部分的弧長,就是再切割之田的弧長了。
步:古代計量單位,一步為五尺。
造微之術:比較精確的計算方法。
志:記,記述。
算術中求物體體積的方法,如芻萌、芻童、方池、冥谷、塹堵、鱉臑、圓錐、陽馬等,各種形狀的物體都具備了,只是沒有隙積術。古代的演演算法:凡計算物體的體積,有立方體,是指六個面都是正方形的物體,其計算方法是把一條邊自乘兩次就可以求得了。有塹堵,是指有點像土牆形狀的物體,兩邊是斜的,兩頭的面是垂直的。它的截面面積的演演算法是:先把上、下底的寬相加,除以二,作為截面的寬,用直高與它相乘就求得了一個值;再將直高作為股,用上底面的寬減去下底面的寬,所得之差除以二作為勾,用勾股定理算出弦,就是它的斜邊長。有芻童,是指有點像翻過來的方斗形狀,四側都是斜面。它的計算方法是:將上底面的長乘二,與下底面的長相加,再與上底面的寬相乘;將下底面的長乘二,與上底面的長相加,再與下底面的寬相乘;把這兩個數值相加,與高相乘,再取其六分之一(就求得了它的體積)。隙積,是指堆累起來而其中有空隙的物體,像堆疊起來的棋子、分層建造起來的土壇以及酒館里堆累起來的酒罈子一類的物體。它們雖像倒扣著的斗,四側都是斜面,但是由於邊緣存在著一定的殘缺或空隙,如果用芻童法計算,所得數量往往比實際的要少。我想出了一種計算方法:用芻童法算出它的上位、下位數值,另外單獨列出它的下底寬,減去上底寬,將所得之差乘高,取其六分之一,再併入前面的數目就可以了。假設有用酒罈子累成的堆垛,最上層的長、寬都是兩隻罈子,最下層的長、寬都是十二隻罈子,一層層交錯堆垛好。先從最上層數起,數到有十二隻罈子的地方,正好是十一層。用芻童法來計算,把上層的長乘二得四,與下層的長相加得十六,與上層的寬相乘,得三十二;再把下層的長乘二得二十四,與上層的長相加得二十六,與下層的寬相乘,得三百一十二;上、下兩數相加,得三百四十四,乘高得三千七百八十四。另外將下層的寬十二減去上層的寬,得十,與高相乘,得一百一十,與前面的數字相加,得三千八百九十四;取它的六分之一,得六百四十九。這就是這堆酒罈的數量。運用芻童法算出的是實方的體積,運用隙積法算出的是空缺部分拼合成的體積,也就可以算出多餘的體積。丈量土地的方法,方、圓、曲、直的演演算法都有,不過沒有會圓的演演算法。凡是圓形的土地,既能夠拆開來,也應該能讓它拼合起來恢復圓形。古代的演演算法,只用中破圓法把圓形拆開來計算,它的誤差有達三倍之多的。我另外設計了一種拆開、會合的計算方法。假設有一塊圓形的土地,用它的直徑的一半作為弦,再以半徑減去所割下的弧形的高,用它們的差作為股;弦、股各自平方,用弦的平方減去股的平方,將它們的差開平方後作為勾,再乘二,就是所割弧形田的弦長。把所割的弧形田的高平方,乘二,再除以圓的直徑,所得的商加上弧形的弦長,便是所割弧形田的弧長。再割一塊田也像這樣計算,用總的弧長減去已割部分的弧長,就是再割之田的弧長了。假如有塊圓形的土地,直徑是十步,想使割出的圓弧高二步,就用圓半徑五步作為弦,五步自乘得二十五;又用半徑減去弧形的高二步,它們的差三步作為股,自乘得九;用它與弦二十五相減得十六,開平方得四,這就是勾,再乘二,就是弧的弦長。把圓弧的高二步自乘,得四,再乘二得八,退上一位為四尺,用圓的直徑相除。現今圓的直徑為十,已經滿了整十數,不可除。只用四尺加下圓弧直徑,就是所割圓的弧長,共得圓弧直徑八步四尺。再割一塊圓田,也依照這種方法。如果圓直徑是二十步,要求弧長,就應當折半,也就是所說的要用圓弧的半徑來除它。這兩種方法都涉及精確的演演算法,是古書里沒有說到的,隨筆記錄於此。
《夢溪筆談》包括《筆談》、《補筆談》、《續筆談》三部分。《筆談》二十六卷,分為十七門,依次為“故事、辯證、樂律、象數、人事、官政、機智、藝文、書畫、技藝、器用、神奇、異事、謬誤、譏謔、雜誌、葯議”。《補筆談》三卷,包括上述內容中十一門。《續筆談》一卷,不分門。全書共六百零九條(不同版本稍有出入),內容涉及天文、數學、物理、化學、生物、地質、地理、氣象、醫藥、農學、工程技術、文學、史事、音樂和美術等。在這些條目中,屬於人文科學例如人類學、考古學、語言學、音樂等方面的,約佔全部條目的18%;屬於自然科學方面的,約佔總數的36%,其餘的則為人事資料、軍事、法律及雜聞軼事等約佔全書的46%。
就性質而言,《夢溪筆談》屬於筆記類。從內容上說,它以多於三分之一的篇幅記述並闡發自然科學知識,這在筆記類著述中是少見的。
《夢溪筆談》詳細記載了勞動人民在科學技術方面的卓越貢獻和他自己的研究成果,反映了我國古代特別是北宋時期自然科學達到的輝煌成就。