thumbright300px x⁴ 15245x² 626250625 的秦九韶演算法 秦九韶演算法是中國南宋時期的數學家秦九韶表述求解一元高次多項式的值的演算法 正負開方術。它也可以配合牛頓法用來求解一元高次多項式的根。 歷史 19 世紀初，英國數學家重新發現並證明，後世稱作霍納演算法（、）。但是，19 世紀英國傳教士偉烈亞力 Alexander Wylie 18151887 最早對霍納的發明權提出質疑。他在 1852 年著的《中國科學札記》（Jottings on the Science of the Chinese）一篇論文中，詳細介紹秦九韶的正負開方術之後寫道 讀者不難認出這就是霍納在 1819 年因為發表《解所有次方程》論文，被數學家奧古斯都德摩根評為必使其發明人因發現此演算法而置身於重要發明家之列的方法；我以為應該對霍納的發明權提出辯駁。歐洲的朋友們可能會覺得意外，一位來自天朝帝國的競爭者，有更大的機會確立他的優先權Alexander Wylie Jottings on the Sciences of The Chinese p188 1852。吳文俊主編《中國數學史大系》第五卷 533537 此後，日本數學史家三上義夫在《中日數學史》一書中在詳述秦九韶的正負開方術後寫道：誰能否認，霍納的輝煌方法，至少在早於歐洲六百年之前，已經在中國運用了。Yoshio Mikami The Development of Mathematics in China and Japan Chelsia New York 1913 edition p77。三上義夫還最先指出，秦九韶演算法起源於漢代《九章算術》的開方法。其後王玲和李約瑟有專文論述秦九韶演算法起源於《九章算術》。前蘇聯數學史家尤什克維奇說 這是中國傳統數學最偉大成就之一，他還說印度人不知有此方法，而阿拉伯數學家可能從中國前人傳入此方法 Urich Librecht Chinese Mathematics in Thirteen Century 平 08 Dover。 下面以自今到古的順序，列出早在霍納之前對該演算法的發現： 1809 年，保羅魯菲尼 Florian Cajori Horners method of approximation anticipated by Ruffini Bulletin of the American Mathematical Society Vol 17 No 9 pp 409414 1911 read before the Southwestern Section of the American Mathematical Society on November 26 1910 1669 年，艾薩克牛頓（但缺乏詳細引文） 14 世紀，中國數學家朱世 傑 13 世紀，中國數學家秦九韶在《數書九章》中 12 世紀，波斯的伊斯蘭數學家 11 世紀（宋朝），中國數學家賈憲 漢朝（公元前 202 到公元 220 年），劉徽所注的《九章算術》中 Temple Robert 1986 The Genius of China 3000 Years of Science Discovery and Invention With a forward by Joseph Needham New York Simon and Schuster Inc ISBN 0671620282 Page 142 霍納在 1819 年發表的《解所有次方程》論文中的算例，其演算法程式和數字處理都遠不及五百多年前的秦九韶有條理；秦九韶演算法不僅在時間上早於霍納，也比較成熟。白尚恕 《中國數學史研究白尚恕文集》 47 頁 元代數學家李冶和朱世 傑 繼承了秦九韶演算法。 用秦九韶演算法解方程 thumb400pxx4763200x2406425600000 秦九韶演算法精確解 x840 南宋數學家秦九韶將賈憲的增乘開方術推廣，以求解任意高次方程的實數根的數值解。秦九韶的《數書九章》詳細敘述用秦九韶演算法求解二十六個二次到十次方程的的實數根的數值解，其中包含二十個二次方程，一個三次方程，四個四次方程和一個十次方程。Urich Librecht Chinese Mathematics in the Thirteen Century p189 Dover；其中有些得到精確解；多數得近似解。 《數書九章》《遙度圓城》 題列出一個十次方程，求解圓城的直徑： x1015x872x6864x411664x2349920 ，得精確解 x3 吳文俊主編 中國數學史大系第五卷 302309 頁。 《數書九章》《興田求積》 題列出一個四次方程， x4763200x2406425600000 吳文俊主編中國數學史大系第五卷 293298 頁 將方程式寫成一般式 x40x3763200x20x406425600000 第一次估根～800；作 yx800 減根代換，估出根的第二位數字為 y40；經過第二次減根代換 zy40 後常數項抵消為 0；得精確解 y40；x800y80040840。右圖為用阿拉伯數字表示的解此四次方程的秦九韶程式圖（c、d、e 是運算過程中的臨時數，最終分別併入 c、d、e）。 《數書九章》《環田三積》 題列出另一個四次方程， x415245x26262506250 吳文俊主編中國數學史大系第五卷 299302 頁 Jean Claude Matzloff A History of Chinese Mathematics p233245 ISBN 3540337822 下圖為秦九韶解下列四次方程的程式。 centerthumb400px x415245x26262506250 秦九韶演算法近似解 x205 以下是原演算法與現代數學語言的對照： 原演算法 現代數學語言 置 626250625 為實 置 15245 為上廉 置 1 為益隅 列出方程 x415245x26262506250 上廉超二位，益隅超三原文似有誤；對應的算籌圖上移動了四位。位 置商 20 步 令 x10x，得 10000x41524500x26262506250；估計解的整數部分為 2。 以商乘益隅入下廉位 以下廉乘商生負廉 以負廉與正廉相消得正上廉 以商乘上廉為方 以方乘商除實 令 xy2，算得新方程的常數項為 10000cdot 241524500cdot 2262625062532450625 又以商乘益隅入下廉 以下廉乘商生負廉 負廉與正廉相消 商與上廉生方 商隅相乘入下廉 商與下廉生負廉 負廉與正廉相消 商又與隅生下廉 依次算出新方程的各系數，得 10000y480000y31284500y25778000y324506250。 方一退，上廉再退，下廉三退，隅四退 無商 令 y10y，得 y480y312845y2577800y324506250；估計解的整數部分為 0。 以上廉併入方，並益隅入下廉 益隅並負廉與正方廉相消，命為母 估計得數的非整數部分；當 y1 和 y0 時等式左邊相差 590 564，得 yapprox frac 32450625590564。 約分 折算回 x 的值，得 xapprox 20 frac 32450625590564 20frac 12980252362256。 其中：frac 12980252362256 不等於 0，其第一位有效數字 05；即商的下一位數字為 5，商～205，按秦九韶程式的一般規則，運算須繼續進行下去直到 實0 為止；但秦九韶在商 205 而止，因 205 的精確度已滿足在相關問題的需要。 三上義夫特別指出： 秦九韶在處理 x415245x26262506250 這一類四次方程式時，絕非作為 x2 的二次方程式來求解（所謂雙二次方程），而是按四次方程來求解的。 秦九韶演算法同樣可以求出小數點後的數值，後來的中國數學家和日本數學正是這麼做的。Yoshio Mikami Mathematics in China and Japan p77 1912 原理 設有 n1 項的 n 次函式 p f xa_nxna_n1 xn1a_n2 xn2a_2x2a_1xa_0 p 將前 n 項提取公因子 x，得 p f xa_nxn1a_n1 xn2a_n2 xn3a_2xa_1 xa_0 p 再將括號內的前 n1 項提取公因子 x，得 p f xa_nxn2a_n1 xn3a_n2 xn4a_2 xa_1 xa_0 p 如此反覆提取公因子 x，最後將函式化為 p f xa_nxa_n1 xa_n2 xa_1 xa_0 p 令 p f_1a_nxa_n1 p f_2f_1xa_n2 p f_3f_2xa_n3 p p f_nf_n1 xa_0 p 則 f_n 即為所求 應用示例 求當 x3 時 f x2x36x22x1 的值。 反覆提取公因子 x 後，原函式可以寫成 f_1 xx x 2x621。建立下列係數表可以用來加快演算速度： x_0 x3 x2 x1 x0 3 2 6 2 1 6 0 6 2 0 2 5 第四行中的數是表中本列上方兩數之和。第三行的數字是 x 的值與左下方第四行數的乘積。第二行的數是多項式各項按照次數從大到小排列後的係數。表中右下角的數就是函式的值：5。 效率 對於一個 n 次的多項式函式，用常規方法（用重複乘法計算冪，再把各項相加）計算出結果最多需要 n 次加法和 frac n2 n2 次乘法。若用 x 迭代的方法計算冪則需要 n 次加法和 2n1 次乘法。如果計算中的數值資料是以位元組方式儲存的，那麼常規方法約需要 x 佔用的位元組的 2n 倍空間。 而使用秦九韶演算法時，至多隻需作 n 次加法和 n 次乘法，最多需要 x 佔用的位元組的 n 倍空間。 意義 該演算法看似簡單，其最大的意義在於將求 n 次多項式的值轉化為求 n 個一次多項式的值。在人工計算時，利用秦九韶演算法和其中的係數表可以大幅簡化運算；對於計算機程式演算法而言，加法比乘法的計算效率要高很多，因此該演算法仍有極大的意義，用於減少中央處理器運算時間。 參考文獻 引用 來源 書籍 參見 秦九韶 多項式方程求解 Category 數值分析 Category 演算法 Category 宋朝發明