中世中国の三角関数計算法:『弧矢算術』(前半)の仮訳
明代の算術書『弧矢算術』の前半部を日本語訳した。後半は、数値例を示した問題集なので略。
(私の能力不足で)意味が取れない部分や原文がおかしいと思う部分もあるが、大意は合ってるだろう。
原文と訳を併記した。原文には、句読点や文の切れ目が殆どないが、勝手にスペースを挿入している。
『弧矢算術』の背景
三角関数は、最初、円弧の径と孤長から弦長を計算する目的で作られた。このように問題を定式化すると角度の概念は必要ない。
この問題を明示的に解決した文献は、(考古学文献も含めて)現存する中では、プトレマイオス『アルマゲスト』が最古だろう。そこでは数表の線形補間によって計算された。この方法は、西暦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で計算法を構築しており、その数はまだ精密でないように見えるが、郭守敬の暦(授時暦)は今日まで行われており、何の問題もない。なぜでしょうか。
暦学者は万分の一を度秒にし、それ以下の数値は一度の中に収め、小さな誤差があっても、黄道や赤道、弧長などを測定することができます。徑が一で周が三であると仮定して、平差や立差を定める。計算を長く続けると、誤差が埋もれて見えなくなるでしょう。
私はかつて考えたことがあります。天地の道は陰陽だけであり、方円が天地を表すものである。方の象法である地は静止して実体があり、そのために象数を通して求めることができるのです。円の象法である天は動であるが無形である故に象数を通して把握することはできないのです。方の本体は静止しているが、内部は動いていて、本質は陽者である。円の本体は動であるが、その中心は静止していて、根本は隂者である。
天は外側で陽であり、内側は陰であり、地は外側で陰であり、内部は陽である。陰と陽が交錯して万物が生まれ、その機構は無理数の整数でも分数でも表せない部分にある。上智者もそれを測ることができず、巧妙な手腕もそれを尽くすことができない。もし天地の道が限定されて求められるならば、化機は限りがあり、万物を生み出すことはできないだろう。私は方円の法則を論じながら、同時に、その理を、このように著しました。