mikeo_410


 算木

 中国から伝わった算木は、そろばんと共に江戸時代を通じて使用されていたと言う。算木を広辞苑で引くと、まず易の算木の説明がある。計数や計算に使われた算木がどのようなものか知りたいと思う。

易の算木

 算木と言うと主に易の爻を表す積木のような直方体の木を指すようだ。面の中央部分に色を塗って「陰」を表し、色を塗っていない面を「陽」として、1つの棒で陰陽の「爻」を表す。
 同じ形の棒6つで卦(六爻)を示すのに使うようだ。
 算木積みは石の組方で、算木は易の算木で、直方体に整形した石を組むことらしい
 この算木は計算に使われた「算木」とは無関係のようだ。

和算の算木

 計数や計算に使われた算木は中国から伝わったものだが、中国では13世紀ごろに失われたと考えられているようだ。
 日本では、江戸時代を通じて、和算の道具として使用されたため、現存する。和算に使用された算木は200本1組で、正負を表す赤と黒100本ずつらしい。
 和算では布などでできた算盤(さんばん)が使用され、罫線によって位が表された。
 現在では、「算盤」は「そろばん」と読まれる。

そろばん

 中国では13世紀ごろから「そろばん」が普及し、算木は使われなくなったと考えられているようだ。
 「そろばん」の前身が算木と算盤(さんばん)であることは疑問がない。バラバラにならず位が明確な「そろばん」は算木の完成形で、長い間、同形の物がたくさん作れるようになる時代を待っていた。
 算木に限らず、小さい同形の物がたくさんあれば、計数に使われたと考えられる。メソポタミアでは陶片が使われたと考えられている。また、算盤(さんばん)も各地でいろいろなものが作られ、そろばんに類似のものに発達した。

 「そろばん」は、「算盤」の中国語の音から採られたと考えられている。おそらく、十露盤は「そ(十)」+「露盤」で、「そろばん」に、漢字を当てたもののようだ。
 「算盤」が「そろばん」を指すことからも、算木と算盤(さんばん)の組の使用は一般的なものではなかったと考えられる。
 日本にも15世紀には伝来しており、江戸時代には計算は主にそろばんが使われたものと考えられる。

計算の歴史

 計数や計算の歴史について何が知られているのかと考えると、ほとんど知られていないと言うのが答えのようだ。
 物の数は動物でも認識するもので、計数や計算は人の歴史と共にある。しかし、他の道具と同じように何も記録されていない。
 中国の青銅器や、日本の銅鐸などは何に使ったのか推測する以外にない。弓や槍と言ったものでも、使い方を説明した文書が残ることなどほとんど考えられない。
 根本的に道具は人伝に使い方が伝承されるものだ。また、筆記具は高価で、結果しか記録されてこなかった。

 メソポタミア文明に関して計数に陶片が使用されたと言うが、エジプトからアジアの広範囲に分布する陶片は、ほとんどが荷物の封泥であったようだ。エジプトやメソポタミアには数学の問題を記した粘土板などがあるとされるが、中国の文献と同様に問と答えが記されるのみのようだ。

 グーテンベルグ聖書は1455年2月23日に印刷が開始され、羊皮紙に45部、紙に135部印刷されたとされている。活版印刷は文字による情報伝達に大きな影響を与えた。
 おそらく、これ以降に数式が現在のように整備された。ニュートンの「プリンキピア」(1687)には、図表や数式が含まれていたろうと推測する。
 結果ではなく、数式が文献の中心になるのは、アルファベットの文化圏でも、こうした時期になってからだと推測する。

 筆算についても、そう歴史は古いとは考えられない。木材からパルプを生産できるようになるのは1840年ころで、それまでは古着の繊維が原料だった。明治になって国内で最初に作られた洋紙の工場も同様で、国内でも古着が集められた。計算過程を書き留めるには高価で、計算は木片などの道具や、石板など消して再利用できるものが使われ、後代に残ることは、まずなかったと推測する。

 記録に残らないからと言って高度でなかったと言うことではない。記録が残ったのが高々数百年であるのに対して、記録の残っていない計算の歴史は万年のオーダーで存在する。
 対象や地域にによって、たいへん高度な計算術や道具が存在したはずだ。しかし、それらは簡単に失われ、何度も再構築されていたに違いない。
 多くの計算術は、同じ計算を繰り返す人々の集団がなければ、どんなに巧妙でもすぐに忘れ去られる。

 この話しは、日本にも当てはまる。中国から伝来しなくとも、人々は物を数え、計算をしていたはずだ。しかし、何も知られていない。
 日本書紀には、年月日が干支を使って表されている。「二月丁巳朔癸未」のように太陰暦の月の見え方で日にちも表されている。何百年にも渡ってつじつまを合わせるには困難な計算作業が行われたと推測できる。
 日本には仏典とともに、悉曇文字が伝わり、アラビア数字に近い記数法も渡来していた。中国の数学書も渡来していた。
 和算の初期の文献は、1672年に出版された「新編算學啓蒙」のようだ。
 1229年に表された「算學啓蒙」は、鎌倉時代には日本に伝来していたと考えられている。「新編算學啓蒙」は、朝鮮で1450年ごろに復刻されたものが、文禄・慶長の役の際に仏典と共に東福寺の蔵するところとなったものから作られた。「算學啓蒙」は中国では早くに失われていたようだ。1229年に著わされた数学書は、2度の発見を経て、1672年に和算の元となった。和算は、発掘的に始まったようだ。
 しかし、日本人が1672年まで計算に関心がなかったと言うことではない。何の記録もないだけで、人々はいろいろな道具を使て工夫を凝らしていたに違いない。

 大陸では、中国語や文字を含む文化的な大きな変革があった。文献や道具、技芸も古いものは失われて当然と言える。
 一方、日本は大陸から伝来したものを、大陸の変革とは無関係に保存してきた。日本の漢字には漢音があり、古い中国の音の再建に役立っている。漢数字による記数法も古い形式を残している。
 一方、三十路を「みそじ」と読み、「そろばん」を十露盤と当て字しているように、今も使われている数の数え方(ひと、ふた、・・・)は、漢字伝来以前からの日本固有のものと考えられているようだ。

 ニュートンが数式で引力を表す前から人々は投擲を的に当てることができた。ニュートンの偉大さは、引力を「発見」したのではなく、式で「表現」したことに有る訳で、数学書について言えば、江戸時代が世界的に見ても、「表現」するための準備ができた時代だったようだ。

日本の筆記環境

 古くは中国では竹簡が、日本では木簡が出土する。その後の紙については、日本では、和紙が質、量共に大変恵まれた状況にあったことが知られる。
 現存する最古の版暦(摺暦)は1317年(正和6年)の具注暦のようだ。
 「御堂関白記」は藤原道長の長徳4年(998年)から治安元年(1021年)の間の日記のようだ。この日記は具注暦に書き込まれたもので、そのための余白がとられていた。
 鎌倉時代には木版印刷が経典を中心に広く行われていた。文禄・慶長の役の際には金属活字を使った活版印刷も導入された。木活字も使われた。
 暦は大量に作られたので残りやすいが、陰陽寮が採用した暦法や、どのような道具で計算していたのかと言ったことは推測するよりないようだ。

中国の算木

 老子に「善数不用籌策」とあることが古くから算木が使用されていた根拠とされているようだ。現存する算木は戦国時代(湖南省長沙の左家公山15号楚墓)のもののようだ。
「そろばん」は2世紀ごろに登場したと考えられていて、13世紀以降に算木に代わったと考えられているようだ。
 13世紀以降、算木や数学書が失われたように受け取れるが、記録が残っていないだけなのかもしれない。用途によって、計数方法や計算方法は工夫されていて、用途と共に継承されていたと考えるのが妥当だと思う。
 算木を算籌、算木による計算は籌策と言ったようだ。

算籌

 広辞苑の「籌算」は、そろばん、計数、はかりごと、と言った意味らしい。籌策は計略と言った意味で使用され、籌は計算やくじ引きに使用された竹の棒のことらしい。
 壽は寿の旧字で、現在の中国では、籌は筹と書かれるようだ。算筹(サンチョウ)は算木のことで、筹算(チョウザン)は算木を使った計算を指している。
 また、筭子も算木のことのようだ。筭は算の異字で孫子算経は「筭」を算木を使った計算を指すのに使用しているようだ。 
 中国では13世紀にそろばんによって籌算は失われたと見られているようだ。
 唐代(618-907)に編纂された「算経十書」には「孫子算経」が含まれ、算木による四則などが記されていて唯一の資料のようだ。

孫子算経

 度量衡の換算が書かれていて利用された実用書のようだ。
 以下のような記述が、算木の置き方を指すと考えられているようだ。およそ筭の法は、まず其の位を識し、一従い十横たえる,百立ち千僵(たおれる)、・・・
 位によって数値の形が異なるのは不便だと考えられるので、この記述は算盤(さんばん)の位の示し方だと思える。
 しかし、「新編算學啓蒙」など和算の書の図では、同じ数の向きが、桁ごとに縦、横2通りで描かれている。
 「孫子算経」には図はなく、算木用数字も用いられていないようだ。したがって、この書からは、各桁(0から9)の表し方は知られない。しかし、どう表しても計算自体には無関係なので問題はない。
 和算の算木は布などでできた算盤(さんばん)と共に残っており、経線が引かれている。横向きには位を表す文字が書かれている。数字は算用数字と同様に並べられた。各行(段)には、商、実、方(法)、廉、・・・と言った名前が付けられている。「孫子算経」は、乗算の説明で、上、中、下、の3行としている。
 例として81x81=6561がある。(九九八十一,自相乘,得幾何?答曰:六千五百六十一。)

上  81

下  81

重置其位

上   81
中 6400
下   81

以上八呼下八,
八八六十四,
即下六千四百於中位。

上   81
中 6480
下   81

以上八呼下一,
一八如八,
即於中位下八十。

上    1
中 6480
下    8

退下位一等,
收上位八十。

上    1
中 6560
下    8

以上位一呼下八,
一八如八,
即於中位下八十。

上    1
中 6561
下    8

 以上一呼下一,
一一如一,
即於中位下一。

上   
中 6561
下   

上下位俱收,
中位即得六千五百六十一。

 この例も文章のみだが、上段、下段が被乗数と乗数で、中段に答えを得ることは分かる。
 普通の筆算なら、

  81
x 81
----
  81
648
----
6561

 と、計算する。これを、

  81
x 81
----
64
  8
  8
   1
----
6561

と、計算している。

 算木の計算の優位性は特に感じられない。おそらく算木のメリットは、複数の数値の同時表示と、再利用にある。
 筆記環境は大変重要な要素だったはずだ。

 各桁の数字は、算木でどう表したとしても、算木と算盤(さんばん)の計算方法には影響しない。したがって、漢数字を書いた札を用意することも行われただろうと考える。
 和算の算木は正負を表す赤と黒、それぞれ100本だったらしい。平均3本と考えると34桁分あれば良かったことになる。これを漢数字を書いた札で用意すると、340枚いることになる。

uncode

 Unicode の 1d360 から Counting Rod Numerals (算木用数字)が割り当てられている。

 当然ながら、文書に記されているのでUnicodeに収録された訳で、必ずしも道具の算木を表すものではない。算木は全て同じ形状の棒だったようだ。
 上の段は「横式」、下の段は「縦式」と言うようだ。
 「算木用数字」と訳されているが、算木と共に用いると言うことではなく、算木由来の数字なのだと推測する。
 文書は漢数字で書かれた訳だが、数学書では計算過程を説明する必要があったものと思う。ただし、漢数字より早く書くことが出来るとは思えないので、筆算に使った訳ではないと思う。

算木用数字

 算木用数字は、算木を書き留めたものを、数字としても使用するようになったものだと理解できる。数字は漢数字で書かれていた訳で、画数の多い算木用数字が文書に記されることは、まずなかったと考えらえる。例外的に計算方法を説明する場合には使用されたと言うことだと思う。
 効率よく数字を書く方法には蘇州号碼が使われている。

 百八を中国語にgoogle翻訳すると一百零八となる。
 日本は古い表記を残しているのだと考えられる。中国では漢数字の表記方法を計算にも向くように変化させてきたようだ。
 仏教伝来と共に悉曇文字なども伝来したと考えられているので、ゼロを含めて算用数字(アラビア数字)のような表記方法を知る機会は日本でもあった。
 しかし、単に数値を表すだけなら特に漢数字で困ることはない。江戸時代の和算では、算木用数字が使用されていて、明治以降は算用数字(アラビア数字)が使われることとなったようだ。

  15世紀ごろの永楽大典には、「七萬一千八百二十四歩」を算木用数字で表した図が含まれる。
  縦式、横式の記号が混在している。
  和算の書では、両方混ぜて使われている。隣り合う数を、異なる向きで書くことで、並べても区切りが分かるようにするための習慣だったと推測する。また、「新編算學啓蒙」では漢文中に算木用数字が書かれている。2桁の数は左右に算木用数字2文字を合成して1文字にしている。

 数字と位を分けて、「一千」を単に「千」とすることをしなければ、漢数字も算木用数字と同じように使用できたと思う。位を省略して書けば、算木用数字より早く書くことが出来る。

 算木の使用は、いろいろな文献が示唆するが、書物は漢数字で書かれ、算木用数字が記されたものはほとんどないようだ。
 四元玉鑑細草には漢数字と共に算木用数字が記されているが年代は新しいもののようだ。
 ただ、算木用数字と類似の記号は、秦代の貨幣などにもあり、発掘品に刻まれているらしい。

 「算数書」が中国最古の数学書のようだ。200支ほどの竹簡で前漢代の張家の墓からの発掘品のよう。「九章算術」のように伝承された文書ではない。
 内容は「九章算術」に類似で、68の問題と解が記されているらしい。
 「算数書」が算木用数字を用いているのかどうかは分からない。
 「孫子算経」には算木用数字は書かれていないようだ。
 「九章算術」は、書き写されて伝わったもので、年代によって異なるのかも知れないが、デジタルコレクションでは全て漢数字で記されているように見える。

  [新編算學啓蒙]の写真を見ると、左図のように、文中に算木用数字による数字が埋められている。92とゼロを乗算することのようだ。
 漢文中に小さい文字で漢数字を横並びに書くことはある。2桁や九九だったりする。これは、数字以外の場合と同様、原則右から左へ読まれる。
 算木用数字の場合は、左から右に読まれる。この記法は各桁を隙間なく書く。ゼロは〇で描く。繋がっているものが1つの値となる。したがって、数字の区切りが分かるように縦式と横式の記号を組み合わせる。

 また、算木用数字の横に「実」や「方」と言った文字が書かれている箇所がある。この記法は3yなどの係数表示に繋がる。「実」や「方」は算盤(さんばん)の行に指し、計算機のレジスタやメモリのようなものだ。

 江戸時代は、世界的にも、自然科学の文献の内容が大きく変化した時代のようだ。数学書も問と答えから、式が表されるようになっていく。
 数値解を得て、結果だけが文献に記された状態から、算法の説明を経て、式が文献の目的となった。
 和算の文書は、その過程を示しているように見える。

 算木は赤と黒があり正負を表したが、算木用数字が色分けされている文書が存在するのかどうかは分からない。文書では黒が正で、斜線を負で表している。

蘇州号碼

 Unicode の 〡(3021) から 〩(3029) は Suzhou numerals、〸(3038)、〹(3039)、〺(303a)は Additional Suzhou numerals となっている。

 ゼロは、〇(3007)が使われる。縦書きには漢数字の一、二、三が使用されるようだ。
 蘇州(Suzhou)数字は、算木が使用されなくなって以降、漢数字より早く書くことを意図して使用された。

算木の使い方

 数を数えるのにチップやロッドを並べるのは当然で、その使い方が一様であるはずもない。
 現在でも、いろいろな用途で、専用の計数や演算の道具が使われている。
 江戸時代の和算については、算木そのものや算盤が残っており、算木の使い方も文書が伝わった。

 そろばんが普及しても算木が使われたのは、算木の計算能力によるものではないようだ。時代が、計算結果ではなく、算法や式など方法を文書で伝える時代になったことが理由だと思う。そろばんの普及する時期に、算木を使った算法を再発見した日本では、算木用数字を使った数式が書かれるようになった。

和算の算木

 そろばんが広く使われるようになっても日本では和算に算木が使い続けられた。算木の話しは、主に日本の江戸時代の和算の話しになる。これは道具の算木も、使い方も伝わっている。
 教科書「高等科国語一」には「和算の天才」と言う章があり、算木の説明と共に、関孝和の點竄術の評が記されている。
 「算木と言うのは、長さ一寸五分ぐらいの四角柱の木である。」
 「これを盤の上に縦に一本置けば一を、二本並べて置けば二を、・・・」
 また、「筆算による代数学であって、・・・、支那の数学が思いもよらなかった高い域に」あって、「当時の西洋を除けば、こうした代数の演算が自在に行われたのは、ひとりわが国だけ」だった。

 和算の算木は布製の算盤と共に使用された。算盤のマス目に一桁の算木を並べた。算盤の横方向は位取りで、・・・、萬、千、百、十、一、分、釐、・・・、と、列名が付いている。
 縦には、商、実、法、廉、隅、三乗、四乗、・・・、のように行名が付いている。定形があった訳ではないようだ。

 計数の用は常にあったので、算木そのものは、たいへん古い時代から使用され、大陸からも持ち込まれていたものと推測する。しかし、代数の解法と言った用途では発達しなかった。
 中国からの数学書も江戸時代になって再発見されたもののようだ。算木や、その高度な使用方法は何度も伝来したが、江戸時代初期になるまで関心が向けられることがなかったようだ。
 和算は実用や学問ではない、技芸や趣味の領域にあるように見える。

算木と算盤

 算盤は「そろばん」と読むので、算木を置いて位を示す算盤(サンバン)は、算木と共に、まったく一般的なものではなかったものと思う。
 どこでも、いつでも、計数の用はあって、棒や片々を使っていたことには疑問がない。算の文字も竹と具えるからなる。
 紙を始めとした筆記具は高価で、筆算や計算過程は記録されてこなかった。用途によって、地域によって、たいへん高度な用法があったと推測できるが、それらは人伝に伝えられ、何度も失われては、再構成されてきたものと考えられる。
 そろばんを指す文字は「算盤」で伝わり、中国語の音が「そろばん」だったようだ。十露盤は十(そ)露盤(ろばん)のようだ。
 木片や陶片など、同じ形のものを沢山用意して、物を数えたり、数を記録したことは当然で、位取りに盤面が用意されたことも想像できる。
 そろばんは、その完成形で、技術的に同形のものを量産可能になるのが13世紀以降だと言うことだと考えられる。同形の片々が配置によって位取りされることは大変古くから広い地域で行われていた。そろばんは、同形のものが普及することで、使い方まで一般化する効果があったと考えられる。
 そろばんは、算木と算盤の組み合わせの持つ機能をほとんど持っている。違いは、そろばんは、主に結果しか残らないことにある。
 和算が算木を使い続けた理由は、結果以外が残る点にあると思う。しかし、必要なことが表現される訳でもないので、筆算の方法のサブセットなのだろうと推測する。筆記環境の整備や印刷の普及によって、式の記述や筆算の技術が普及したものと思う。

新編算學啓蒙

 1229年の「算學啓蒙」は、鎌倉時代に日本や朝鮮に伝わっていたと考えられているが大陸では失われてしまったようだ。朝鮮で、1450年ごろに復刻されたものが、文禄・慶長の役の際に仏典と共に東福寺の蔵するところとなったようだ。長い間知られることがなかったが、紀州藩士久田玄哲が発見し。1658年に「新編算學啓蒙」が出版された。
 これが後代に伝わった「算學啓蒙」の系譜のようだ。

 元禄3年(1690)に出版された「新編算學啓蒙」をデジタルコレクションで見ることができる。この書の第6冊に、
 今直田八畝五分五厘有り。只云う、長平和して九十二歩を得るなり。長平各幾何ぞと問う。
 答えて曰く、平三十八歩、超五十四歩
 と、記述がある。この書は、漢文で問、答、「術」書かれている。他に、漢字カナ混じりで解説が付けられている。ただし、漢文の部分にも算木用数字が記されていて、〇も記されていることから「算學啓蒙」の文章ではないものと思う。
 本文中の算木用数字も、図示された算盤(さんばん)でも、数字は横に連結して書かれ、罫線で位を示すことはないようだ。

 答えが記されているので「八畝五分五厘」を解釈できる。38歩と54歩の長方形の面積は2052平方歩で、240平方歩で割って8.55畝を得る。
 分も厘も単位ではなく、8.55畝と解釈され、面積が2052の長方形の短辺と長辺の和が92のとき、短辺と長辺の長さは、それぞれ幾らかと言う問題だと分かる。
 8畝16歩5合のように記されていないことは興味深い。

  術に曰く、天元に一を立て平と為す。(0,1)以て云える数を減じて余りを長と為す。平を用いて乗起(じょうき)して積と為す。(92,-1)畝を列ねて左に寄せる。歩に通じて左に寄せ与え相消して開方式を得る。(-2052,92,-1)平は方に之を開き平を得る。以て歩を和し減じて即ち長なり。問いに合す。

 文中の算木用数字は、縦式と横式を交互に使うことで、水平方向に連結して記すことが出来ている。この横の数字列は1つ値を表す。
 縦方向の並びは、算盤(さんばん)の段(行)に相当する。算盤(さんばん)の段は、上から解、0次、1次(x)、2次(x2)の係数を表す。
 例えば、
  x3 - 12x2 + 41x -30 = 0 
 順序を定めれば、係数列だけで表せる。R言語で方程式を解くには polyroot(-30,41,-12,1) とする。

  1. > u <- polyroot(c(-30,41,-12,1))
  2. > u # 解には虚部がある。
  3. [1] 1+0i 5-0i 6+0i
  4. > x <- Re(u) # 実部のみに
  5. > x
  6. [1] 1 5 6
  7. > x^3 - 12*x^2 + 41*x -30
  8. [1]  0.000000e+00 -2.842171e-14  0.000000e+00

 これは、この書の記法と同じで、自然なことのようだ。
 最初の(0,1)は、単にxを表し、文章から 平=x と言う式に解釈できる。
 (92,-1)は、92-x を表す。「左に寄す」は式は、左辺=右辺 や 左辺―右辺=0 と言う認識があってのことのようだ。つまり、
  x = 92 - X
 と、解釈できる。
 (-2052,92,-1)は、-x2 + 92x - 2052 を表す。文章は、平・長 = 積 だが、左に寄せると x(92-x) - 2052 = 0 と言う開方式になると言っているものと思う。

 「新編算學啓蒙」の、この解法は、「式」を伝えるもののようだ。開平式は良く調べられていて下記のようなアルゴリズムのようだ。(C#)
 このアルゴリズムは、2乗根、3乗根を含む3次までの計算に使用されているようだ。

  1. static void Main(string[] args)
  2. {
  3.     int  = 0; int  = 0; int  = 0; int  = 0;
  4.     var 開平 = (Action<int>)((A) =>
  5.     {
  6.          =  +  * A;
  7.          =  +  * A;
  8.          =  +  * A;
  9.          =  +  * A;
  10.          =  +  * A;
  11.          =  +  * A;
  12.     });
  13.      = -2052;
  14.      = 92;
  15.      = -1; 
  16.      = -0;
  17.     Debug.WriteLine(実 + " " +  + " " +  + " " + 隅);
  18.     開平(30);
  19.     Debug.WriteLine(実 + " " +  + " " +  + " " + 隅);
  20.     開平(8);
  21.     Debug.WriteLine(実 + " " +  + " " +  + " " + 隅);
  22. }

 算木と算盤(さんばん)を使った計算では、解の各桁の値は別に求めることが必要だ。例題の場合だと、解の十の桁が3となることを、まず、知らなければならない。
 実行結果は、以下のようになる。

  1. -2052 92 -1 0
  2. -192 32 -1 0
  3. 0 16 -1 0

 「新編算學啓蒙」にも、計算過程が算木、算盤(さんばん)の図として乗っている。最初は、上から、(空、-2052、92、-1)が算盤に置かれる。
 算盤の段(行)には名前が付いていて、順に、商、実、方(法)、廉、隅と呼ばれる。商は答えが入る場所で、最初は空である。
 しかし、それ以降は、プログラムの実行結果と異なる値で書かれている。プログラムの実行結果からは、「方」が92,32,16 と推移することが分かる。
 下図が「新編算學啓蒙」の図で、「方」の変化を92,62,62,24と表している。
 この図には、漢字カナ混じり文で、説明が付いているので、過程を見て見る。

 図1.先ず廉を起て百の下に到り方も位を進めて商三十を立。
 図2.商の三十を以て廉の負一百乗じて一三如三百を方の正九百二十二加ゆるに異減じて六百二十となる。又商三十を以て法の六百二十に乗じて三六一千八百二三如六十を実にて除き余り百九十二あり。(方が920-300=620、廉が2052-1800-60=192)
 図3.又商三十を以て廉の負百に乗じて一三如三百を方の六百二十に異減じて正三百二十となる。一退きて三十二となる。廉の百を二退きて一として次の商八を立る。(図の廉は62で、32ではないようだ)
 図4.商の八を以て廉の負の一に乗じて一八如八を方の正三十二に異減じて正二十四となる。商の八を以て方の二十四に乗じて二八百六十四八三十二を以て実を除き尽して商に平三十八歩をうるなり。

 位を表す漢字なしに、漢数字が2つ続いているのは九九を唱えている。「三六一千八百二三如六十」は、三六、千八百、二三、六十である。二三如六の「如」は、九九が中国由来であることの証とされているようだ。

天元術

 「算學啓蒙」に代表される13世紀に発達した代数を「天元術」と呼ぶようだ。天元術は、1変数の実数係数の方程式の数値解を得るもののようだ。
 紀州藩士久田玄哲が東福寺で発見し。1658年に「新編算學啓蒙」が出版される。
 この天元術が正しく伝わったのが1671年、沢口一之の「古今算法記」だと言うことらしい。
 和算の真価は、天元術を多変数の方程式に拡張したことにあるようだ。

 「新編算學啓蒙」のデジタルライブラリを見ると、斜線で負数を表したり、算木用文字の合成したもの、〇の使用など
 「古今算法記」には、そろばんの図が多数あって、計算道具は既にそろばんが主だったようだ。

天元術の開平

 開平は、面積から長方形の辺の長さを求めることらしい。225625の平方根を求める過程を見てみる。
  225625 - x2  = 0
 と、考える。
 解は475で、以下のように考える。
  x = 475 = 400 + 70 + 5
 解法は、以下のように a3 、a、a1 を順次定めるものである。
  a3 = 400, a2 = 70, a1 = 5

 まず、225,625 は、1000の2乗未満で、100の2乗より大きいことから、100,200,・・・を試行する。
 225,625 は、400の2乗の160,000と、500の2乗の250,000 の間にあることが分かる。
 a3 = 400 と、A = a2 + a1 から、
  225625 - (400+A)2  
  = 225625 - 160000 - 800A - A
  = 65625 - 800A - A2  = 0
 と、表せる。
 次に、A について 10,20,・・・ を試行して、
  800 x 70 + 4900 = 60900
  800 x 80 + 6400 = 70400
 から、a2 = 70 とする。
 すると、
  65625 - 800(70+a1) - (70+a1) 2
  = 65625 - 56000 -  4900 - 940a1 - a12
  = 4725 - 940a1 - a12  = 0
 と、表せる。
 a1 について、1,2,・・・と試行して、
  940 x 5 + 25 = 4725
  940 x 6 + 36 = 5676
 から、a1 = 5 とする。

 この計算方法は、上位桁から順次定めるが、その決定は、天元術とは無関係で、積と和を別に計算して試行することになる。
 上位から1桁決定したら、その影響を元の数から引き去って、残りを使って、順次次の桁を計算して行く。
 最初に引き去るのは、最上位桁の決定値の2乗で、例では400の2乗の160,000を引いている。
 2回目は、決定値(70)の2乗に加えて、前回の決定値の2倍と今回の決定値の積(800 x 70)を引いている。

 文章で説明していることをR言語のプログラムにすれば以下のようになる。

  1. # r が10の何乗の位の値か
  2. ORDER <-function(r)
  3. {
  4.     n <-0
  5.         s <-10
  6.         while (r >= s) { n <-n + 1; s <-s * 10 }
  7.     n
  8. }
  9. # r を超えない10のm乗オーダーの値
  10. AP <-function(r, m, h)
  11. {
  12.     d <-10 ^ m
  13.         s <-d
  14.         while (r >= s*(s + h)) { s <-s + d }
  15.     s - d
  16. }
  17. #平方根(整数)
  18. SQRT <-function(R)
  19. {
  20.     X <-0
  21.         H0 <-0
  22.         H <-0
  23.         n <-ORDER(R)
  24.         m <-floor(n / 2)
  25.         while (m >= 0)
  26.         {
  27.             S <-AP(R, m, H)
  28.                 #R <-R - H*S - S*S
  29.                 R <-R - S*(S + H)
  30.                 H <-H + S + S
  31.                 X <-X + S
  32.                 m <-m - 1
  33.         }
  34.     X
  35. }
  1. > TEST <-function(n)
  2. + {
  3. +   print(c(SQRT(n), floor(sqrt(n))))
  4. + }
  5. >
  6. > TEST(10)
  7. [1] 3 3
  8. > TEST(100)
  9. [1] 10 10
  10. > TEST(1000)
  11. [1] 31 31
  12. > TEST(10000)
  13. [1] 100 100
  14. > TEST(100000)
  15. [1] 316 316
  16. > TEST(1000000)
  17. [1] 1000 1000
  18. > TEST(1522756)
  19. [1] 1234 1234
  20. > TEST(18671041)
  21. [1] 4321 4321

 解が10の何乗のオーダーなのか知るためにORDER()を使う。AP()は、解の各桁の値を試行する。この2つの関数は計算方法が書かれていない部分で、計算者が別途求めるものらしい。SQRT()が文章にある計算で、平方根の整数部分を計算する。
 このプログラムからは算木の利用の効果は感じられない。

 算木の操作は良く調べられているようだ。225,625の平方根は400 + 70 + 5と計算するが、この値自体は算盤操作とは関係なく導かれるので、既知として説明する。
 プログラムはC#で書いた。

  1. static void Main(string[] args)
  2. {
  3.     int  = 0; int  = 0; int  = 0; int  = 0;
  4.     var 開平 = (Action<int>)((A) =>
  5.     {
  6.          =  +  * A;
  7.          =  +  * A;
  8.          =  +  * A;
  9.          =  +  * A;
  10.          =  +  * A;
  11.          =  +  * A;
  12.     });
  13.      = 1522756;
  14.      = -1;
  15.     開平(1000);
  16.     Debug.WriteLine(実 + " " +  + " " +  + " " + 隅);
  17.     開平(200);
  18.     Debug.WriteLine(実 + " " +  + " " +  + " " + 隅);
  19.     開平(30);
  20.     Debug.WriteLine(実 + " " +  + " " +  + " " + 隅);
  21.     開平(4);
  22.     Debug.WriteLine(実 + " " +  + " " +  + " " + 隅);
  23. }

 算盤は、商以外に、実、法、廉、隅の4行が使われる。商に設定する値を決めると、実、法、廉、隅が変更される。
 実、法、廉、隅に対する操作は、開平()の操作で、常に同じ操作を行う。
 実行結果は、以下の通りで、R言語のスクリプトと同じ進行をする。

  1. 522756 -2000 -1 0
  2. 82756 -2400 -1 0
  3. 9856 -2460 -1 0
  4. 0 -2468 -1 0

 平方根や立方根を求める時は、法はゼロである。おなじ、操作で面積から長方形の辺が計算されるが、その場合は法に長辺、短辺の差を入れる。
 立方根を求める場合は、廉はゼロで、隅に-1を設定する。

  1. static void Main(string[] args)
  2. {
  3.     int  = 0; int  = 0; int  = 0; int  = 0;
  4.     var 開平 = (Action<int>)((A) =>
  5.     {
  6.          =  +  * A;
  7.          =  +  * A;
  8.          =  +  * A;
  9.          =  +  * A;
  10.          =  +  * A;
  11.          =  +  * A;
  12.     });
  13.      = 3375;
  14.      = -1;
  15.     開平(10);
  16.     Debug.WriteLine(実 + " " +  + " " +  + " " + 隅);
  17.     開平(5);
  18.     Debug.WriteLine(実 + " " +  + " " +  + " " + 隅);
  19. }

 立方根を求める場合は、以下のように算木、算盤が操作される。

  1. 2375 -300 -30 -1
  2. 0 -675 -45 -1

古今算法記

 天元術と呼ばれる代数を、正しく理解して書かれた最初の和算書と考えられているようだ。この書には多くのそろばんの図が入れられていて、そろばんの使い方を示した書としても重要なもののようだ。開平法についても、まずそろばんによる計算が示されている。
 しかし、「九九より」と言う説明が加わっているが、算木用数字による開平法の説明が大きく変わっているようには見えない。
 より代数らしい常縦開平の最初の問題を見て見る。これは、面積が644の長方形の辺の長さの差が5だと言うもの。
 長方形の短い辺をa、長い辺をbとすると、
  a x b = 644
  b - a = 5
 で、a = 23, b = 28 が解となる。 

 積644を実に置く。
 また、差5を法に置く。
 一算を借りて廉に置く。
 さて、位を見る時、十の位なり。
 法廉各々一位にて商に20と立る。次図(2/5)

 さて、商20と廉と見合い九九(1 x 2)により、2を法に加えて法25となる。
 また、この法と商と見合い九九(2 x 2)により実を引く時、400引、
 2 x 5 の100引、と実を引く。次図(3/5)

 また、商と廉と見合い九九(1 x 2)により、2を法に加えて45となる。
 さて、法廉各々一位下がる。次図(4/5)

 さて、商に、また3を立てる。
 その3と廉と見合い九九(1 x 3)により、3を法に加えて法48となる。
 この法と、また立つ商3と見合い九九により実を引く時、3 x 4の120引、3 x 8の24引、と実を引き払い商23と知る。
 これに短き横なり。これに差の5を加えて縦28と知る。

 理解できないだけでなく、記述と図も合っていないように思う。
 分かる範囲では、
 1)a は、2桁で20台であるとことが前提となる。a は商に求める。
 2)実は644、法は5が初期値となる。
 3)法には商が加えられ25となっていると見做す。
 4)a の2桁目を計算する元になる実の値は、644 - (400+100)=144 に更新される。
 5)400と100の出所は、商と法で、九九の2x2、2x5と説明されている。商と、法の各桁の積らしい。
 6)法が45となり、144を割って商を、a の次の桁とする。
 7)法が45となるのは商と廉の見合いと説明されているが、廉の状態は定かでない。

 「新編算學啓蒙」の開平と同様に、解の最上位桁から順に決めて行く。しかし、開平は同じ値の積なので見当が着くが、異なる2数の積は簡単ではない。

 天元術の算木の利用には大きなメリットがあるようには見えない。

和算

 動物も数を認識している。計数や計算は人の歴史と共にあるもので、日本でもいろいろな方法で数を数え、計算をしていた。しかし、それらは記録されることがなかった。
 中国から数学や暦法の文献がもたらされても、状況は変わらない。結果が文書に反映されていても、計算がどのように行われたかが記されることはなかった。
 関孝和、賀茂真淵は、17世紀後半に活躍した。要は、「国学」が盛んになって以降は文献が多く残る時代になっていくが、それ以前の話しは、「国学」によって評価された結果を受け入れている。漢字の読みなどが典型で、今よりは資料が豊富だったろうと言う以外には根拠がないことも多い。
 数学に関しても同様なのだと思う。人から人に伝えられる算法などを文書にしようなどとは考えられなかった。分野の違うところで役立つとも考えられなかった。
 この時代は、振り返って、記録することに目が向けられたのだと思う。

 関孝和は和算家の中で突出して有名だが、多くの分野で高度な計算を行う人々がいて、道具や記法も工夫が重ねられてきていたはずだと考える。
 数値解ではなく、数式が示されるようになると、分野を問わず算法を数式化して記録することができ、合成や分解ができた。自然観まで変わる出来事だったのだと推測する。
 関孝和の業績が簡単に理解できるはずもないので、算木の話しとしては記法を調べて終わりにする。

點竄術

 點竄術は、「高等科国語一」の「和算の天才」にあるように、江戸時代から日本人が代数の演算を自在に扱っていた証のようだ。
 しかし、「新編算學啓蒙」のように、和算は発見発明と言うよりは、発掘的な知識の収集の側面が強いように思える。
 関孝和の業績には「発微算法」(1674)に表された「點竄術」が上げられている。「竄」は「穴」と「鼠」の会意で「もぐる」、「かくれる」らしい。明治期には代数を點竄と言った時期があるらしい。點竄術の名は「発微算法」にはなく、後に呼ばれた名のようだ。
 點竄は代数を指しているようだ。一方、傍書法の名は文字通りのこと以外は説明が見つからない。

 「発微算法」は関孝和の唯一の出版物らしい。また写真を見ることが出来たのは「発微算法演段諺觧」(1685)で「発微算法」ではない。最初の巻は問と解法が漢文で書かれている。図はあるが算木用数字は使用されていない。おそらく、この部分が「発微算法」で、次の「亨巻」が、その解説のようだ、算木用数字から派生した算木用の数表記が使用されている。この記号に横には漢字が書かれていて「傍書」と言うことのようだ。

 「発微算法演段諺觧亨巻」の写真を見ることが出来る。算木様の記号が付けられた最初の「第一演段」は、4つの円の図が描かれている。大円、中円、小円と記されていて、小円は2つある。4つの円は相互に接している。
 この問は「発微算法演段諺觧元巻」の最初の「平円解空問」で、「元巻」にある漢文のみの解法が本来の「発微算法」の解法なのだと推測する。
 求めるのは大円と小円の径で、条件は外余寸120歩、中円と小円の径の差が5寸だと言うものだ。
 外余寸は、大円の面積から、中円と小円の面積を引いた残りだと考える。

 歩は長さにも面積にも使われている。面積の1歩は6尺四方のようだ。また、10寸が1尺のようだ。求めるのは長さで、寸が良い。面積の1歩は60寸四方なので、3600平方寸が1歩のようだ。したがって、120歩 = 432000平方寸 と考えられるが、いずれの値も登場しないようだ。この書には数値解も記されていない。
 現代の解説では120平方寸と解釈して説明されているようだ。歩は1の位の意味にも使われていて必ずしも単位ではないかもしれない。もし、120歩 = 120平方寸と見なしているのなら、その習慣だけで代数的な扱いが普通に行われていたことの証だと思う。

 図の大円と中円の中心を通る直線は、2つの小円の接点も通る。この接点と大円、中円の中心、1つの小円の中心で出来る直角三角形に着目する。
 「発微算法演段諺觧亨巻」の図では、直角三角形の辺に子、丑、寅、卯と名前が付けられている。解法から寅は、直角三角形の辺ではなく、大円と中円の中心を結んだ短い部分のみを指している。大きい方の直角三角形の辺としては、寅+丑が辺の長さとなる。

 「発微算法演段諺觧亨巻」の解法は数値解を示しておらず、「外余寸120歩、中円と小円の径の差が5寸」も使用していない。
 2つの直角三角形の辺の長さから、3つの径の関係を述べている。
 最初の図で、2つの直角三角形の辺の長さに着目して、
  子 = 大径/2 ― 小径/2
  卯 = 中径/2 + 小径/2
 なので、
  丑2 = 子2 - (小径/2)2 = (大径/2 ― 小径/2)2 - (小径/2)2 = (大径/2)2 - 2(大径/2)(小径/2)

  (寅 + 丑)2 = 卯2 - (小径/2)2 = (中径/2 + 小径/2)2 - (小径/2)2 = (中径/2)2 + 2(中径/2)(小径/2)
 と、計算できる。
 また、
  寅 = 大径/2 - 中径/2
 である。

 大円、中円、小円の直径を、それぞれ、大径、中径、小径と記している。また、傍書では単に大、中、小と書かれている。その2乗は、大巾、中巾、小巾のようだ。「小巾巾」は小円の径の4乗を示す。
 また、図を見て考える時には、直径より半径の方が考え易いが、「発微算法演段諺觧亨巻」では、
  2子 = 大径 ― 小径
  2卯 = 中径 + 小径
 と、考える。
  丑2 = (大径/2)2 - 2(大径/2)(小径/2)
 は、
  4丑2 = (2子)2 - 小径2 = (大径 ― 小径)2 - 小径2 = 大径2 - 2・大径・小径
 と、考えるようだ。

 算木様の数字の部分は、横並びは1つの値を示す。文字で区切られた場合は加算と見なす。
 縦に積まれた数値は、上から
  a + bx + cx2 = 0
 の、それぞれ a、b、c に当たる。

術に曰く、天元の一を立て大径と為す

大円の径をxとする

内小径を減じ余りを2ケ子と為す

2子 = -1小径 + x

之を自ら得る

小径 -2・小径・x + x2

内小径を減じて余りの冪を
四段の丑の冪と為す
(これを)角位に寄る

前の式から 小径2 を引いて、
-2・小径・x + x2
4丑2 = -2・小径・x + x2

大径を列ね内中径を減じて二ケ寅と為す

2寅 = -中径 + x

之に自り四段の寅の冪と為す
(これを)亢位に寄る

前式の両辺を2乗して、
4寅2 = 中径2 -2・中径・x + x2

中径を列ね小径を加え入れ二ケ卯と為す
2卯 = 小径 + 中径
之を自ら得る
前式の両辺を2乗して、
4卯2 = 小径 +2・小径・中径 + 中径
内小径を減じ余りの冪を四段の丑寅の和の冪す
4(寅 + 丑)2 = 2・小径・中径 + 中径2

内角位と亢位とを併せて減じ余り
丑に因り八ケ寅と為る
丑・8寅
= 2・小径・中径 +(2小径 + 2中径)x -2x2

遍く二を以て之を約したて丑に四ケ寅と因る為り
丑・4寅 = 小径・中径 +(小径 + 中径)x -x2
之を自乗し丑の冪に16段の寅の冪を因る為り
2・16寅2
 = 小径2中径2 
 + (2・小径2中径 + 2・小径・中径2)x
 + (小径2 + 中径2)x2
 + (-2小径 -2中径)x3
 + x4

角位を列ねて亢位を以て相乗じて
亦丑の冪に16段の寅の冪を因る為り

角位  4丑2 = -2・小径・x + x2
亢位  4寅2 = 中径2
 -2・中径・x + x2
1622
 = -2・小径・中径2・x
 + (4小径・中径 + 中径2)x2
 + (-2小径 -2中径)x3
 + x4

左に寄りたると相消し式を得る

2・16寅2 - 1622
 = 小径2中径2 
 + (2・小径2中径 + 4・小径・中径2)x
 + (小径2 - 4小径・中径)x2 
 = 0
 

遍く小径を省きて得る

 小径中径2 
 + (2・小径中径 + 4・中径2)x
 + (小径 - 4・中径)x
 = 0 

 最後の算木様式の横に、文字の向きを90度傾けて、「大径巾を乗じて実に加う」と記されている。
 ここから先は理解できないが、x2 を 大径2 に置き換えて、
  小径・中径2 +(小径 - 4・中径)・大径2 + (2・小径・中径 + 4・中径2)x = 0
 となり、算盤(さんばん)に当てはめれば、
  実 = 小径・中径2 +(小径 - 4・中径)・大径
  方 = 2・小径・中径 + 4・中径2
 と、解釈されるようだ。

 

 次ページが本題の最後で、左図の下に、本文の残りが少し書かれている。㋑㋺㋩㋥㋭は、四角で囲んだ「本術」以下の部分で使用されている。
 図は、算盤(さんばん)の「実」と「方」のようだ。
 上の段の「実」は、
  -4・中径・大径2 + 小径・大径2 + 小径・中径2
 下の段の「方」は、
  2・小径・中径 + 4・中径2
 を、表している。

 本文の残りは、「実は方に因る大径なり。故に実を自乗して左に寄り、方巾に大径巾を乗じて左を与え相消す」とある。
 私には分からないが、
  実2 = 方2・大径2
 と、言うことらしい。
  (-4・中径・大径2 + 小径・大径2 + 小径・中径2)2 = (2・小径・中径 + 4・中径2)2・大径2
 
これが、解説の本文の最終的な式になる。

 これは、
  (㋭ + ㋥ + ㋩)2 = (㋺ + ㋑)2・大径2

 四角で囲んだ「本術」に続く部分では、小径を約さずに小円径のように書いている。また、「余」を「餘」と書いている。内容も読み方も分からない。「丁位」は、算木用数字で「6位」なのかも知れない。
 「㋩小円径を列ね中円径の冪を以て相乗じて丁位に寄る数を得る。㋭中円径を列ね之を四て得る。内㋥小円径を減じて餘、大円径の冪を以て相乗じて得る。内丁位を減じて餘、之を自乗して左に寄る。」

 最後の1行では、再び大径巾と書かれ円が再び約されている。
 「是実の自乗なり。即ち方の冪に因る大径巾なり」

 後述の「平円解空問」で、実際に納得いく形で、実数解を得て見た。
 「実」、「方」の説明が出てきて理解できなかった箇所は、「xの項との等式に変形し、両辺を2乗して」に当たることが分かった。
 「実」、「方」の説明が登場する前の、最終の式は、算木様の表記で、以下の式を指していた。
   小径・中径
   + (2・小径・中径 + 4・中径2)x 
   + (小径 - 4・中径)・x
   = 0
 これを、「実」、「方」に分ける訳だが、これはxの項(方)と、他の項を等号で結んだ式に変形することらしい。
   小径・中径2 + (小径 - 4・中径)・x2  = (2・小径・中径 + 4・中径2)x 
 この両辺を2乗して、最終的な式となる。
   (小径・中径2 + (小径 - 4・中径)・x2)2 = (2・小径・中径 + 4・中径2)2x2 
 外余寸120歩の条件は、面積で、大径2 の式になる。この式をx2 に代入することが出来る。

「実」と「方」は、算盤(さんばん)上の位置(罫線の2行目、3行目)を示す。算盤(さんばん)の段(行)はレジスタで、演算の種類によって役割が決まっているものと思う。
 ここでは、数値(係数)の表現と同じく、xの0乗、1乗の係数となる式のようだ。
 また、「実を左に寄せて」や「左に与え」とあるので、式には左辺があり、もう一つの式を引き去る。これを「相消す」と言うようだ。
  a+b=0 , a-c=0 が a+c=0 なることや、a+b = a-c が a+c=0 なることを、「左に寄せて相消す」と言うらしい。
 すでに代数式を知っていたように思える。

代数式

 17世紀の代数式はどのようなもので、どのように伝わっていたか知りたいが、手掛かりがない。
 ニュートンの「プリンキピア」(1687)の時代には、現代に近い形で数式が書かれていただろうと推測するのみで、この時代の図版は見られない。
 数学史では近代をデカルト(1596-1650)以降と見るようだ。余り時間差がないことから、式の右辺左辺や、ゼロにする式は現代的な記法とは別の起源なのかも知れない。
 和算の書も、a2 は正方形の面積で、ab は長方形の面積である。西欧でも a2 = 2 x 3 は理解されなかったと言うようだ。デカルトの、1:a=a:a2 と言う認識は記号操作で計算を行う道を開いた。

平円解空問

 この「発微算法演段諺觧」の平円解空問は、どんな問題なのか考えて見る。
 中円と2つの中円の3つの円が全て外接することは、径に関わらず成り立つ。
 しかし、この3円が内接する大円が描けるかどうかは分からない。
 したがって、「外余寸120歩、中円と小円の径の差が5寸」の条件は、外接、内接の関係が成り立つために必須なもののようだ。

 
 外余寸や中円と小円の径の差の値は無視して、題意のような内接外接の関係になるような作図法を考えて見る。
 まず、任意の径の中円と大円を描く。大円に中円は内接している。大円の中心O0と、中円の中心O1と、接点Pは一直線上にある。
 小円も大円に内接するので、その接点Qと大円の中心O0を結んだ線上に、小円の中心O2がある。
 小円は2つあって外接するので、その接点Aは直線O0-P上にある。小円の中心O2と、直線O0-Pの距離は、小円の半径でなければならない。

 大円の半径 O0-P = a、中円の半径 O1-P = b、として、小円の半径cを求める。
 線分O0-O1の長さは、a-b である。
 線分O1-O2の長さは、b+c である。
 線分O0-O2の長さは、a-c である。
 2つの直角三角形A-O2-O1とA-O2-O0から、2つの線分A-O0とA-O1の長さが計算できる。2つの線分の長さの差は、線分O0-O1の長さである。
 したがって、
  a-b = √[(b+c)2 - c2] - √[(a-c)2 - c2
      = √[b2 + 2bc] - √[a2 - 2ac] 
 と、表せる。

 ここまで、考えて、実際に作図してみる。a=10, b=7 の場合を描いてみる。

 上の図は、仮に c = 2.7 として、 中円、大円、Y軸からの距離が c の位置を示した。中円から等距離な位置は、中円と中心を同じくする半径b+cの緑色の円となる。大円も(0,b-a)を中心とした半径a-cの円となる。2つの小円が接するためには、大円と中円の中心を通る直線(Y軸)から距離Cである必要がある。
 緑で示した線の3つの交点D、E、Fが重なるcの値が求める値になる。

 後述する式でcを計算すると、c = 2.90657439827919 と算出される。この値を使って描けば下図のようになる。

 緑で描いた、大円、中円、Y軸からの3つの等距離線の式は、
  x2 + (y+(a-b))2 = (a-c)2 
  x2 + y2 = (b+c)2
  x = c
 と、表せる。
 x = c を、最初の2式に適用して、
  (y+(a-b))2 = (a-c)2 - c2 = a2 - 2ac --- (1)
  y2 = (b+c)2 - c2 = b2 + 2bc ----------- (2)
 と、なる。(1)を展開すると、
  y2 + 2(a-b)y + (a-b)2 = a2 - 2ac
  2(a-b)y = -b2 + 2ab - 2ac - y2 
 y2 を(2)で置き換えて、
  2(a-b)y = -b2 + 2ab - 2ac - (b2 + 2bc) 
          = -2b2 + 2ab - 2ac - 2bc
 両辺を2で割って、両辺を2乗する。y2 を(2)で置き換えて、
 (a-b)2(b2 + 2bc) = (-b2 + ab - ac - bc)2 ------- (3)
 と、なり、これが大円、中円、小円の半径の関係を表している。

 この式に、a=10, b=7 を代入すると、
 -289c2 + 840c = 0
 と、なる。
 c(840-289c)=0, したがって、840-289c=0 から、c=840/289=2.906574・・・
 と、分かる。

 (3)式で「平円解空問」を解いてみる。
   2b = 2c + 5
   π(a2 - b2 - c2) = 120
 なので、
  b = c + 5/2
  a2 = 2c2 + 5c + 120/π + 25/4
     = 2c2 + 5c + 44.44719
 (3)から、bを消去して、a で整理すると、
  (3c + 10)ca2 - (6c2 + 25c + 25)ca - c4 - 5c3 - (25/4)c2 = 0
 両辺をcで割って、、
  (3c + 10)a2 - (6c2 + 25c + 25)a - c3 - 5c2 - (25/4)c = 0
  (6c2 + 25c + 25)a = (3c + 10)a2 - c3 - 5c2 - (25/4)c 
 両辺を2乗すると、
  (6c2 + 25c + 25)2a2 = ((3c + 10)a2 - c3 - 5c2 - (25/4)c)2
 a2 を置き換えて、
  (6c2 + 25c + 25)2(2c2 + 5c + 44.44719)
     = ((3c + 10)(2c2 + 5c + 44.44719) - c3 - 5c2 - (25/4)c)2
 これを展開して整理すると。
  47c6 + 480c5 + 2279.18314c4 + 5388.9438c3 
        - 9416.087415c2 - 98740.465683766c - 169775.77613961 = 0
 これを解いて、
   c = 3.127789884805679
 を、得る。

 確認は、以下のスクリプトによる。

  1. > c<-3.127789884805679
  2. > # a, bを計算
  3. > b <-c + 2.5
  4. > a<-sqrt(2 * c ^ 2 + 5 * c + 44.44719)
  5. > # 方程式をゼロにするか
  6. > 47.0*c ^ 6 + 480.0*c ^ 5 + 2279.18314*c ^ 4 + 5388.943800000001*c ^ 3 - 9416.087415064889*c ^ 2 -
  7. +98740.465683766*c - 169775.77613961
  8. [1] 0.009821101
  9. > # 外余寸120か
  10. > (a ^ 2 - b ^ 2 - c ^ 2)*pi
  11. [1] 120
  12. > # 大円径、中円径、小円径
  13. > c(a * 2, b * 2, c * 2)
  14. [1] 17.84963 11.25558  6.25558

 「発微算法演段諺觧」では、最終的に以下の式を導いている。
  (-4・中径・大径2 + 小径・大径2 + 小径・中径2)2 = (2・小径・中径 + 4・中径2)2・大径2
 この式は、大径について、大径2 のみなので、(3)より計算が簡単になる。
  中径 = 小径 + 5、と、大径2 - 中径2 - 小径2 = 120/(π/4)  から、
  大径2 = (小径 + 5)2 + 小径2 + 120/(π/4)
       = 2小径2 + 10小径 + 177.7887
 なので、大径、中径を消去できる。小円の直径をCとして、
  -47C6 - 960C5 - 9116.7322C4 - 43111.548C3
      + 150657.2216292C2 + 3159692.5217228C + 10865641.739 = 0
 C = 6.255578249692917 と計算される。

 (3)式も「発微算法演段諺觧」と同じようにaで整理して見る。
  c(4b-c)a2 - 2bc(c + 2b)a - b2c2 = 0
 cで割って、実 = 方a の形にする。
  (4b-c)a2 - b2c = 2b(c + 2b)a 
 両辺を2乗して、
  ((4b-c)a2 - b2c)2 = 4b2(c + 2b)2a2  ---- (4)
 この式に、b = c + 5/2 と、a2 = 2c2 + 5c + 44.44719 を代入すれば同じになる。
 「平円解空問」には、(3)より(4)の方が都合が良いと言うことのようだ。

 式の変換が不得手なのでmaximaを使った。方程式は「実数解のみ求める」を選んで計算した。
 R言語で計算するにはpolyroot()を使うようだ。この引数は10の0乗の桁から係数を並べるので、式と逆になる。

  1. > polyroot(rev(c(-47,
  2.     +-480,
  3.     +-2279.18314,
  4.     +-5388.9438,
  5.     +9416.087415,
  6.     +98740.46568376599,
  7.     +169775.77613961)))
  8.     [1]  3.127790 + 0.000000i - 3.095599 + 0.000000i - 3.866939 - 1.271526i
  9.     [4] - 1.255539 - 4.575881i - 1.255539 + 4.575881i - 3.866939 + 1.271526i

 

 


mikeo_410@hotmail.com