中世中国の三角関数計算法:『弧矢算術』(前半)の仮訳

明代の算術書『弧矢算術』の前半部を日本語訳した。後半は、数値例を示した問題集なので略。

(私の能力不足で)意味が取れない部分や原文がおかしいと思う部分もあるが、大意は合ってるだろう。

原文と訳を併記した。原文には、句読点や文の切れ目が殆どないが、勝手にスペースを挿入している。


『弧矢算術』の背景

三角関数は、最初、円弧の径と孤長から弦長を計算する目的で作られた。このように問題を定式化すると角度の概念は必要ない。

この問題を明示的に解決した文献は、(考古学文献も含めて)現存する中では、プトレマイオス『アルマゲスト』が最古だろう。そこでは数表の線形補間によって計算された。この方法は、西暦500年までにはインドでも知られ、ユーラシア大陸の広範囲に広まった。ラテン語文献での初出は、プトレマイオス『アルマゲスト』のラテン語訳が書かれた12世紀後半かと思う。三角関数は、長い間、天文計算のための手法であり、天文学以外の分野で本格使用されるようになったのは、17世紀以降だろう。

数表による計算は、中国にも伝わったが、17世紀初頭に、キリスト教宣教師が改めて伝えた時まで、殆ど使用された形跡はない。中国での初出は8世紀の開元占経104巻と思われ、インドから伝わった"正弦表"(直径21600/3.1416の場合の値が差分の形で書いてある)が掲載されている。

新唐書(志第十八上 暦四上)の記述は正接表とされることもあるが、三角関数計算を目的としたと言えるかは分からない。直径は圭表の長さ八尺に由来する80000であり、一周を365+779/3040度とした時の一度刻み("通法三千四十"、"周天度三百六十五虛分七百七十九太")。

宣教師が来るより少し前の時代に、明の顧應祥(1483年—1565年)は、三角関数表は作成しなかったものの、関連する問題を取り上げ、本を書いた。それが『弧矢算術』で、序によれば、1552年に完成したようである。一般的に注目されないが、キリスト教宣教師以前の中国の三角関数計算を把握するのには悪くない文献だろう。と言っても、崇禎暦書の完成まで100年近い隔たりがあるが。

『弧矢算術』の方法は、本質的には、九章算術にある関係式を変形して導くことができ、三角関数の近似計算が、代数方程式の求根に帰着する。『弧矢算術』に書かれた計算法の一つを、現代の記号で導出しておく。

円弧(扇形)に対して、孤と弦の間の面積を截積と呼び、孤の中央点と弦の中点を結ぶ直線を矢と呼ぶ。『九章算術』方田の章では、円弧の截積を$${A}$$、弦を$${S}$$、矢の長さを$${x}$$とする時、以下の近似式が成立すると教える。

$${A \approx \dfrac{1}{2} x^2 + \dfrac{1}{2} x S}$$

現代知識を以て、この近似を見ると、特段優れた所はないが、この近似が、どういう発想で出てきたものかは分からない。とりあえず、この式は受け入れる。

一方、三平方の定理によって

$${ (\dfrac{R}{2} - x)^2 + \dfrac{1}{4} S^2 = (\dfrac{R}{2})^2 }$$

である。この二式から$${S}$$を消去して、$${x}$$の次数ごとに整理すると、以下の近似方程式が得られる。

$${ 4 A^2 \approx 4 A x^2 + 4 R x^3 - 5 x^4 }$$

従って、4次方程式を解くことで、直径と截積から矢を(近似)計算できる。これが『弧矢算術』に書かれた計算法の一例。

 

沈活(1031~1095)は、『夢溪筆談』で、九章算術の式と同値だが見掛けの異なる近似式について書いている。円弧の孤長を$${B}$$、弦を$${S}$$、直径を$${R}$$、矢を$${x}$$とすると

$${ \dfrac{S^2}{4} = \dfrac{R^2}{4} - \left( \dfrac{R}{2} - x \right)^2 }$$

$${B \approx \dfrac{2 x^2}{R} + S}$$

だと述べている。前者は、上に書いた三平方の定理と同値で、後者が沈活の導出した近似式。『夢溪筆談』の記述を素直に解釈すれば、$${x}$$と$${R}$$から$${B}$$を求める方法と読め、

$${ B = R \mathrm{arccos} (1 - \dfrac{2x}{R}) }$$

なので、逆三角関数の近似式と言っていいだろう。同じ円弧の截積$${A}$$は孤長$${B}}$を使うと、厳密に、以下のように書ける。

$${A = \dfrac{B}{\pi R} \dfrac{\pi R^2}{4} - \dfrac{1}{2}S ( \dfrac{1}{2} R - x) = \dfrac{R}{4} B - \dfrac{RS}{4} + \dfrac{x S}{2} }$$

この最後の式の$${B}$$に沈活の近似式を代入すると

$${A \approx \dfrac{R}{4} \left( \dfrac{2 x^2}{R} + S \right) - \dfrac{RS}{4} + \dfrac{x S}{2} = \dfrac{1}{2} x^2 + \dfrac{1}{2} x S}$$

で、九章算術の近似が得られる。記号を使った代数計算を知ってる現代では平易だが、記法の未発達な時代には、導出にも賢さが必要だったかもしれなお。

沈活がこのような公式を考えた理由は、何も書かれてはいない。沈活は、採用してもらなかった暦も作成しているので、天文暦法への関心が動機だった可能性はある。

 

『弧矢算術』で四次方程式を解くのに使われた方法は天元術と呼ばれる方法だと思う。大層な名前だが、数値解を出すのは二分探索でもできる。矢の長さは0より大きく、円の直径より小さいので、範囲も限定されている。天元術に二分探索より優れている点はないと思う。

四次方程式には複数の解が存在する。例えば、例題の一つでは、方程式$${-5x^4 + 360x^3 + 3240*x^2 - 2624400=0}$$を解くことが要求される。想定解は$${x=18}$$だが、$${x=79.12973\cdots}$$にも正値の解がある。残りの2つは虚数解。検算すれば、大きい方の解が問題の条件を満たさないことは分かるが、正しくない解を得る可能性への言及はない。

近似計算では精度が問題となる。数表による計算の精度は、数表の"大きさ"(特殊値の精度と表の項数)次第だが、『弧矢算術』の近似計算法は、プトレマイオスの数表による計算より精度が悪い。更に、数表なら精度を上げる方法は明確だが、『弧矢算術』の方法は一般化して精度をあげていく筋道が明らかでない。優れた方法とは言えないが、一応、中国でも、三角関数の計算をする手法を手にはしていたと言える。

日本の和算は、中国の算術を継承して始まった。江戸時代冒頭の1600年頃は、ヨーロッパで高精度な三角関数表が作成されてたとは言え、全体としてみれば、ユーラシアの他地域とヨーロッパ都では、数学の知識に大きな差はない。江戸時代前半は、漢訳洋書の輸入も禁止されてたので、日本で公に、三角関数表が見られるのは、18世紀初頭の徳川吉宗の時代になってからとなる。関孝和の死後であり、その頃には、日本の和算家も三角関数の有用性を理解できる程度の水準には達していた。三角関数表と高精度な時計がなければ、伊能忠敬の測量も、覚束ないものとなったかもしれない。

仮訳『弧矢算術』序

弧矢一術古今算法所載者絶少錢唐呉信民九章法止載一條四元玉鑑所載數條 皆不言其所以然之故沈存中夢溪筆談有割圓之法雖自謂造微然止於徑矢求弦而於弧背求矢截積求矢諸法俱未備

弧矢術の計算法は古今非常に少なく、唐代には数えるほどしかない。九章算術には一條のみ載り、四元玉鑑には数條が載っているが、理由の説明はない。沈活の『夢溪筆談』には割円の法があり、精妙さを自負しているものの、径と矢から弦を求めるにとどまり、孤長から矢を求めたり、截積から矢を求めるなどの諸法が揃っていない。

予每病之南曹訟牒頗暇乃取諸家算書間附己意各立一法 名曰弧矢算術 藏諸篋笥俟高明之士取正焉未敢謂盡得其閫奥也

私は病床にあって暇であった時に、諸々の算術書を参考にし、独自の方法を立てた。それを『弧矢算術』と名付け、タンスに仕舞い込んで、高明の士がそれを取り上げ、正しいと認めることを待っている。

嘉靖壬子春三月吉吳興顧應祥識

嘉靖壬子(西暦1552年)春、三月吉日。吳興の顧應祥が識す。

仮訳:弧矢論說

弧矢者割圓之法也 割平圓之旁狀若弧矢故謂之弧矢 其背曲曰弧背其弦直曰弧弦其中衡曰矢 而皆取法於徑
徑也者平圓中心之徑也 背有曲直弦有脩短係于圓之大小 圓大則徑長圓小則徑短 非徑無以定之 故曰取則于徑而其法不出

弧矢は割円の法である。平円を割った片割れの形状が弧矢(弓矢に同じ)に似ていることから、弧矢と呼んでいる。その曲がりを弧背(以下では、弧背の長さを孤長と訳す)、直線部分を弧弦といい、その中衡を矢と呼ぶ。これらはいずれも直径に比例している。曲がった孤長、まっすぐな弦の長短は、円の大小と相関している。大きい円の径は長く、小さい円の径は短い。径がなければ円を定義できないので、径を基準にしなければ計算法も作れない。

於勾股開方之術以矢求弦則以半徑為弦半徑減矢為股股弦各自乗相減餘為實平方開之得勾 勾即半截弦也

勾股開方之術(三平方の定理のこと)で(円弧の)矢から(円弧の)弦を求めるには、(円弧の)半径を、(直角三角形の)弦として、また、(円弧の)半径から(円弧の)矢長を引いたものを(直角三角形の)股として、それぞれの二乗の差の平方根を取れば、(直角三角形の)勾長を得る。勾長は、(円弧の)弦長の半分である。

注:「弦」は、円弧の弦を指す場合と、直角三角形の斜辺を指す場合がある。直角三角形の斜辺以外の二辺を、「勾」「股」と呼ぶ

以弦求矢亦以半徑為弦半截弦為勾 勾弦各自乗相減餘為實平方開之得股 股乃半徑减矢之餘也

(円弧の)弦から(円弧の)矢を求めるには、また、(円弧の)半径を(直角三角形の)弦として、(円弧の)弦の半分を、(直角三角形の)勾とする。(直角三角形の)勾と弦を各々二乗して、差の平方根を取ると、(直角三角形の)股が得られる。股は、(円弧の)半径から(円弧の)矢の長さを引いた長さである。

以減半徑即矢 或以矢减全徑為勾股和以矢為勾股 較乘之亦得勾筭即半截弦筭也

これを半径から引くと矢(の長さ)が得られる。あるいは矢を直径から引いたものが勾股である。矢と足したものを勾股となして、互いに掛け合わせても同様に、勾の二乗が得られる。これは半弦長の二乗である。

注:直径$${R}$$、矢長$${x}$$、弦長$${S}$$として、$${ (R-x)R = \dfrac{S^2}{4}}$$だと言ってるのだろう。これは三平方の定理$${\dfrac{S^2}{4} + (\dfrac{R}{2} - x)^2 = (\dfrac{R}{2})^2}$$を変形して出る

矢自乗圓徑除之得半背弦差 倍以加弦即弧背 以半背弦差除矢筭亦得圓徑

矢を二乗して円の直径で割ると、孤長と弦の差の半分が得られ、それを倍にして弦を足すと、孤長が得られる。孤長と弦の差の半分で矢の二乗を割ると、また円の直径が得られる。

注:$${\dfrac{x^2}{R} = \dfrac{1}{2}(B-S)}$$などで沈活の式の言い換え

半截弦自乗為實以矢除之得矢徑差 加矢即圓徑 以矢加弦以矢乗而半之即所截之積也

半弦の二乗を実として矢で割ると、矢と直径の差が得られる。それに矢を足すと、円の直径が得られる。矢と弦を加えて、矢を掛けると、截積が得られる。

注:前半は、三平方の定理$${\dfrac{S^2}{4} + (\dfrac{R}{2} - x)^2 = (\dfrac{R}{2})^2}$$の言い換え。後半は、九章算術にある截積の公式そのもの

倍截積以矢除之減矢即弦 倍截積以弦為從方開之即矢

截積の2倍を矢で割って矢を引くと弦が得られる。截積を2倍して、弦を從方として(最高次の係数が1の二次方程式を解くと)矢が求まる。

注:截積$${A}$$、弦$${S}$$、矢$${x}$$とすると、$${\dfrac{2A}{x} - x \approx S}$$である。$${2A \approx S x + x^2}$$を$${x}$$について解くと矢が求まるということだろう。

注2:「実」「方」、それに後から出てくる「亷」「偶」などは、天元術で一変数多項式の係数を指す用語だとされるが、以下では、多少違った使い方もされているように思う。深く気にせず、変数名だと思って、理解に支障はない

惟弧背與徑求矢 截積與徑求矢 開方不能盡用三乗方法開之 弧背求矢 以半弧背筭與徑筭相乗為實 徑乗徑筭為從方
徑筭為上亷 全背與徑相乗為下亷
約矢乗上亷以減從方 以矢自乗以減下亷 又以矢乗餘下亷與减餘從方為法 除實得矢

弧長と径から矢を求めたり、截積と直径から矢を求めるには、二次方程式では無理で四次方程式を解く必要がある。

孤長から矢を求める場合。孤長の半分の二乗と直径の二乗の積を実とし、直径と直径の二乗の積(つまり、直径の三乗)を従方とする。直径の二乗を上亷、孤長と直径の積を下亷とする。

矢と上亷の積を從方から引いて、矢を2乗して下亷から引く。矢を下亷残余に掛けて従方残余から引いて法として、実を割ると矢である。

注: 矢を$${x}$$、直径を$${R}$$、弧長を$${B}$$として、從方$${a_0=R^3}$$、上亷$${a_1=R^2}$$、下亷$${a_2=BR}$$として、$${a_0 - a_1 x}$$が餘從方で、$${(a_2-x^2)x}$$が餘下亷。$${(a_0 - a_1 x) + (a_2 - x^2)x = a_0 + (a_2 - a_1)x - x^3}$$が法。これで実を割ると矢になるので、$${x(a_0 + (a_2 - a_1)x - x^3)}$$が実と等しい。まとめると、以下の式が成り立つことを述べている。

$${ \dfrac{1}{4}(BR)^2 = R^3 x + (BR-R^2)x^2 - x^4}$$

厳密には、$${x = R ( 1 - \cos \dfrac{B}{2} )}$$なので、cos関数の近似を与えていると言っていいだろう。

曷為以矢乗上㢘减從方也 蓋從方乃徑與徑筭相乗其中多一矢乗徑筭之數故減之

矢と上㢘の積を従方から引くのは何のためか。従方は直径の三乗で、矢と直径の二乗の積より大きいから、それを引く。

曷為又以矢自乗以減下亷也 下亷乃背徑相乗其中多一矢自乗之數 故亦减之減之則法與實相合矣

矢を二乗して下亷から引くのは、どういうことか。下亷、つまり、孤長と直径の積は、矢の二乗より大きい。故に、それも引く。これによって法と実が一致する

注:式の導出を説明しているのだろうが、想定している式変形は、よく分からない。

以截積求矢 則倍積自乗為實 四因積為上亷 四因徑為下亷 五為負隅 約矢以隅因之以减下亷 又以矢一度乗上亷兩度乗下亷併而為法

截積を用いて矢を求める場合。截積の2倍を二乗して実とし、截積の四倍を上亷とし、直径の四倍を下亷とし、5を負偶(-5を最高次の係数)とする。

約すには、最高次の項と矢の積を下亷から引き、また、上亷に矢を掛け、下亷には矢の二乗を掛け、総和を法とする。

注:截積を$${A}$$、直径を$${R}$$、矢を$${x}$$として、文章に忠実に式に直せば、実は$${(2A)^2}$$で、法は$${(4R - 5x)x^2 + 4 A x}$$になる。実を法で割ると矢になるので、以下の式を意味する。

$${ 4 A^2 = 4 A x^2 + 4 R x^3 - 5 x^4 }$$

矢减下亷者何也 矢本減徑而得 故减徑以求之

矢を下亷から引く理由は何か。矢はもともと径から引いて得るものである。故に、径から引いて、これを求める。

五為負隅者何也 凡以方為圓毎一寸得虛隅二分五釐 四其虛隅與四其矢合而為五也 四其亷者何也 倍積則乗出之數為積者四 故亦四其亷以就之升法以就實也

-5を最高次の係数とするのは何故か。方を円とした場合、一寸ごとに得られる虚隅が0.25であり、その虚隅の4倍と矢の4倍が合わさって矢の5倍となるからである(説明の意味は理解できない)。亷を4倍するのは何を表しているか。截積の係数2を2乗して得られる数が4であるため、亷の係数を4倍とし、それに合わせて実も定数倍している。

若以截弦與截餘外周求矢 則以弦筭半弦筭相乗四而三之為實 併弦及餘周為益方 半弦乗弦加弦筭為從上亷 併亷及餘周為下亷 以約出之矢乗上亷 又以矢自乗再乗為隅法 併上亷以减益方矢自之以乗下亷併减餘從方為法 除實得矢

截弦と截餘外周から矢を求める場合。弦の二乗と弦の半分の二乗の積の3/4を実とする。弦と餘周を足して益方とし、半弦と弦の積に弦の二乗を足して從上亷とし、亷と餘周の和を下亷とする。約すには、矢を上亷に乗じて、矢を自乗して再び乗じて隅法として、益方を上亷で減じ、矢を自乗して乗じ、下亷を併せて、余った従方から引いて法となす。実を(法で)割って矢を得る。

注:ここの説明はおかしい気がする。例題の方(未訳)に書かれてる術則を見ると、例えば、下亷は弦と殘周(餘外周)の和だと言っており、その指示をまとめると、餘外周を$${D}$$、弦を$${S}$$、矢を$${x}$$として、以下の方程式になる。

$${ \dfrac{3}{16}S^4 = \dfrac{S^2}{4}(S+D)x - \dfrac{3}{2}S^2 x^2 + (S+D)x^3 - x^4 }$$

仮訳:方圓論說附

世之習算者咸以方五斜七圍三徑一為凖殊不知方五則斜七有奇徑一則圍三有奇
故古人立法有勾三股四弦五之論而不能使方斜為一定之法
有割圓矢弦之論而不能使方圓為一定之法

世の算術家は、一辺5の正方形の対角線を7、直径1の円の周長を3としているが、その奇妙さを理解していないようです。そのため、古人は三平方の定理を発見したが、方斜一定の法は作り出せませんでした。また、割円矢弦の議論でも、方円一定の法を作り出すことができませんでした。

試以勾股法求之 勾股各自乗併為弦實平方開之此施之於長直方則可
若一整方勾五股五各自乗併得五十平方開之得七而又多一筭矣

試しに、勾股法でこれを求めてみましょう。勾と股をそれぞれ二乗して足して、平方根を取ると弦の長さが得られる。これは長方形に適用できます。しかし、正方形で、勾が5、股が5、それぞれ自乗して併せて50を得、平方根を取ると7が得られる。そうして、斜辺の二乗は(7の二乗より)1だけ大きい。

割圓之法求矢求弦固是至於求弧背則恐未盡也 何以知之 試以平圓徑十寸者例之中心剖開矢闊五寸自乗得二十五寸以徑除之得二寸五分為半背弦差倍之得五寸以加弦得一十五寸與圍三徑一之論正合然徑一則圍三、有竒奇數則不能盡矣 以是知弧背之說猶未盡也

割円の法で、矢長や弦長を求めようとしても、方円一定の法を作り出すことはできない。これはどうして分かるでしょう。直径が10寸の円を考え、それを2つに分割して、矢の幅を5寸とする。その二乗を求めて25寸になり、直径で割って2寸5分になります。半円の孤長と弦の差を倍にして5寸とし、弦を加えると15寸になります(要するに、半円に沈活の公式を適用している)。これは周囲が3、直径が1の法則と正確に合致します。しかし、円周率に端数があれば正確に合わなくなることがわかります。これによって、弦長の説明がまだ不十分と分かります。

不特是也凡平圓一十二立圓三十六皆不過取其大較耳
或曰宻率徑七則圍二十二徽率徑五十則圍一百五十七
何不取二術酌之以立一定之法曰二術以圓為方以方為圓非不可但其還原與原數不合數多則散漫難收
故算厯者止用徑一圍三亦勢之不得已也

平円十二と立円三十六は、大まかに選択されただけであり、(円周率の近似値の一つである)宻率では径7に対し周22、(また別の円周率の近似値である)徽率では径50に対し周157だという。なぜこれらの近似値を使用しないのか。それは、これらの近似値を取って計算法を作ると、円を方に、方を円にする二つの方法はできるが、それらを戻しても、元の数と一致せず、不整合が増えて収拾がつかなくなる。故に、算暦者は径1に対し周3の比率を採用せざるを得なかったのである。

曰厯家以徑一圍三立法則其數似猶未精然郭守敬之厯至今行之無弊何也

暦学者は径1周3で計算法を構築しており、その数はまだ精密でないように見えるが、郭守敬の暦(授時暦)は今日まで行われており、何の問題もない。なぜでしょうか。

曰厯家以萬分為度秒以下皆不録縱有小差不出於一度之中況所謂黃赤道弧背度乃測驗而得止
以徑一圍三定其平差立差耳雖然行之日久安保其不差也

暦学者は万分の一を度秒にし、それ以下の数値は一度の中に収め、小さな誤差があっても、黄道や赤道、弧長などを測定することができます。徑が一で周が三であると仮定して、平差や立差を定める。計算を長く続けると、誤差が埋もれて見えなくなるでしょう。

竊嘗思之天地之道隂陽而已方圓天地也 方象法地靜而有質故可以象數求之
圓象法天動而無形故不可以象數求之 方體本静 而中斜者乃動而生陽者也 圓體本動而中心之徑乃静而根隂者也

私はかつて考えたことがあります。天地の道は陰陽だけであり、方円が天地を表すものである。方の象法である地は静止して実体があり、そのために象数を通して求めることができるのです。円の象法である天は動であるが無形である故に象数を通して把握することはできないのです。方の本体は静止しているが、内部は動いていて、本質は陽者である。円の本体は動であるが、その中心は静止していて、根本は隂者である。

天外陽而內隂 地外隂而內陽 隂陽交錯而萬物化生 其機正在於奇零不齊之處 上智不能測巧厯不能盡者也向使天地之道俱可以限量求之則化機有盡而不能生萬物矣 余因論方圓之法而併著其理如此

天は外側で陽であり、内側は陰であり、地は外側で陰であり、内部は陽である。陰と陽が交錯して万物が生まれ、その機構は無理数の整数でも分数でも表せない部分にある。上智者もそれを測ることができず、巧妙な手腕もそれを尽くすことができない。もし天地の道が限定されて求められるならば、化機は限りがあり、万物を生み出すことはできないだろう。私は方円の法則を論じながら、同時に、その理を、このように著しました。

この記事が気に入ったらサポートをしてみませんか?