KNOPPIX とは

1

KNOPPIX とは Debian GNU/Linux パッケージを元にドイツの Knopper 氏が開発した Linux のディストリビューションの 1 つです．特徴として，OS や様々なソフトウェアを CD 1 枚に収めているため，ハードディスクにインストールしなくても（基本的には Windows が動く環境で CD-ROM ドライブがついている機械なら）どんなコンピュータからでも起動することができます．
この KNOPPIX で日本語を使えるようにするために，独立行政法人産業技術総合研究所が日本語版を開発し公開していますので，http://unit.aist.go.jp/itri/knoppix/から自由にダウンロードして利用することができます．現在の最新 version は 5.0.1
で，DVD 版も公開されていますから，DVD ドライブをお持ちの方はそちらも利用できます．
使い方は非常に簡単で

1. BIOS の設定で，CD からの起動順位をハードディスクから優先しておく．
2. KNOPPIX の CD（または DVD）を CD-ROM（または DVD）ドライブに入れて電源を入れる．
だけです．すると，自然に OS が起動し，KNOPPIX 環境が立ち上がります．

KNOPPIX/MATH とは

2KNOPPIX 日本語版をもとに福岡大学の濱田龍義先生を中心とするグループが数学用のフリーウェアを追加した環境を準備しています．それが KNOPPIX/MATHと呼ばれる環境です．
以下は，KNOPPIX/MATH に収録されている「AboutMath.txt」という文章からの引用です．

2.1

KNOPPIX/Math 使用上の注意

本 CD は独立行政法人産業技術総合研究所で開発された KNOPPIX 日本語版をベースに作成されました．計算機代数システムや可視化ツールなどの数学関連のアプリケーションを追加し，数学に関わるユーザのためのデスクトップ環境として開発を進めています．
本 CD は以下の内容を十分に理解し，同意した上で使用してください．

1. 本 CD は KNOPPIX/Math Project が開発いたしました．
1

2. 学内外を問わず，本 CD を用いての機器使用は，該当する機器（ネットワー
クを含む）の管理者の許可を得たうえで行ってください．
3. 本 CD を用いての機器使用は完全な自己責任の下に行われ，本 CD を用いての機器使用により自己及び他人のシステムならびに自己及び他人に損害あるいは危害が生じても，配布元及び開発者は一切の責任を負いません．
4. 本 CD を用いての機器使用時に，システムが立ち上がらない，あるいはシステムの動作に不具合が生じても配布元および開発者はそのサポートを保証しません．
5. 本 CD の再配布は収録されているそれぞれのソフトウエアのライセンスに従ってください．

2.2

KNOPPIX/Math の利用方法

Windows のスタートメニューから再起動を行なうことで，CD-ROM からシステムが起動します．もし，CD-ROM から起動しない場合には，CD-ROM が優先的に起動するように BIOS を再設定してください．標準状態では，ハードディスクにインストールされた Windows システムに変更を及ぼすことはありませんので，安心してお使いください．

2.3

KNOPPIX/Math の特徴

標準状態では設定ファイルや作業ファイルはメモリ上に展開されているため，電源を切断すると消去されます．保存が必要な場合には，ハードディスク，USB フ
ラッシュメモリ，フロッピーディスクなどの利用が可能です．また，DHCP によるネットワークの利用が可能ですので，Secure Shell 等を利用してファイルを転送することもできます．

2.4

KNOPPIX/Math 収録ソフトウェア• 組版環境pLATEX 2ε , AMS-TEX, AMS-LATEX, Prosper, jBibTEX, jLaTeX2HTML, ps2img,編集支援環境として Kile, GNU TeXmacs, YaTeX, WhizzyTeX, Active-DVI• 汎用計算機代数システム
Maxima (xmaxima, wxMaxima), Risa/Asir (OpenXM), LiE-installer2• 可視化ツール
Dynagraph, Geomview, Gnuplot, surf, Surface Evolver, XaoS
• 群論GAP• 微分作用素環
Kan/SM1(OpenXM),• 整数論
NZMATH, PARI/GP• 可換代数，代数幾何学
Singular, Macaulay2• 幾何学
KSEG, Hyplane, Teruaki, GANG Software• 結び目理論
KNOT, SnapPea, Knotscape-installer, KnotPlot-installer• 数値計算BLAS, Octave, Yorick• 統計処理環境
R-jp• プログラミング言語
C, C++, Fortran, Ruby, Perl, Python, Scheme• 拡張ライブラリ
EGGX/ProCALL, Polynomial (Ruby), Algebra (Ruby), Rational (Ruby)• 日本語ドキュメント
Maxima 入門ノート・Maxima マニュアル・Maxima の計算事例・LATEX2eによる論文作成の手引・KSEG ヘルプ・Risa/Asir ドリル・KSEG で遊ぶ平面幾何

3

円周率 π の歴史

3

円周率 π の歴史は古く，また，無理数であることから正確な値を求めようと多くの取り組みがなされてきました．現在でも多くの本に取り上げられていますので，興味のある方は是非調べてみて下さい．以下では，その歴史をざっと眺めていくことにします．

3.1

π の値の歴史

古代エジプトでは，有名な『リンドパピルス』の中に( )44; 3.16049382716049382716 . . .
3という値が書かれています．既に，「およそ 3」というレベルを超えているところが興味深いと思われます．
その後，Archimedes（紀元前 287 ? 〜 212）が正 96 角形を利用することにより，π の大きさについて

3.14084507042253521126 . . . ; 3101< π < 3 ; 3.14285714285714285714 . . .
717という評価を明確に与えていました．要するに，3.14 という近似値は紀元前に知られていたことになります．
中国では，同様の正多角形による近似で，南北朝時代の宋の祖沖之により22,7355π;; 3.14159292035398230088 . . .
113π;という値が求められています（5 世紀頃）．この有理数による近似 355がかなり良113
い近似を与えていることに注目してください．
解析学が発展してきた 17 世紀以降のヨーロッパでは，無限をきちんと意識し始めた結果として π を色々な極限値として捉えられようになりました．例えば

2 · 2 · 4 · 4 · 6 · 6···π=,(Wallis)2
1 · 3 · 3 · 5 · 5 · 7···π
1=,(Brouncker)
1241+322+2+5222+ 7..

.
1 1 1π= 1 − + − + ···4
3 5 74(Leibniz)といった等式が知られるようになりました．どの表示も右辺に現れる式の形が非常に綺麗かつ簡明で，π という数がもつ神秘を感じることができる筈です．
さらに，Machin の公式（1706 年）として，
π1
1= arctan − arctan(1)45239という等式が知られています．これと，arctan の Taylor 展開
11arctan x = x − x3 + x5 − . . . (|x| < 1)(2)
35を組み合わせることによって，1873 年 Shanks は π の値を小数点以下 707 桁まで計算しました．
（しかしながら，残念なことにこの値は 528 桁目から間違っていました．
）
1859 年 Riemann は s > 1 で収束する（Riemann ζ 関数と呼ばれる）

ζ(s) =∞∑1
n=1=1+ns1
11+ s + s + ···s234という関数を考えましたが，この関数の s = 2 での値はπ2となることは非常に6有名な事実です．
日本でも，和算家の関孝和や建部賢弘らによって，小数点以下 50 桁まで正確に計算されていました．これは当時の世界記録であり，和算に秘められていた能力の高さを表していると思います

3.2

π の数の性質の歴史

Euclid（紀元前 330? 〜 275?）の『原論』の中には，π が定数であることが述べられています．しかしながら，どんな数であるのか，例えば，有理数で表すことができる数なのかどうかさえ，1761 年 Lambert によって π が無理数であることが証明されるまで，ずっと 18 世紀までの 2000 年間知られていませんでした．
さらに，1882 年 Lindemann によって，超越数であることが示されました．即ち，整数係数の多項式の根として表すことができないことが示されたのです．
（例えば，√3322 は X − 2 = 0 という方程式の解ですし，1 + i は X − 2X + 2 = 0 の解になっています．また，超越数の他の例としては自然対数の底 e = 2.71828 . . . が有名です．
）
これらの事実の発見により，π をより厳密に近似することに明確な意味が得られ，20 世紀になって計算機が発達すると，近似される桁数は爆発的に増大し，現在では 1 兆桁を超えるところまで値がわかっています．
（とはいえ，1 兆桁もの値が必要になることは恐らくないでしょう）．
そこで，今日はこの π の近似値を求める実験を 2 通りの方法で行ってみましょう．

54π の近似実験

4.1

確率から π の値を近似してみる

確率を用いて π の値を調べてみましょう．ある確率が π を含む式で書けてさえいれば，その確率を求める実験を何回も繰り返せば，十分近い値を求めることができます．このように π を含む式で書ける確率は，いくらでも考えることができるのですが，ここでは自然数の組を利用したものを挙げます．
定理 1. 適当に自然数の組 (a, b) の組を取ると，a と b が互いに素であるような確率P は6P = 2πとなる．

Proof. 任意に自然数の組 (a, b) をとる．ある素数 p を固定したとき，a が p で割り切れる確率は p1 となる．b が p で割り切れる確率も p1 だから，a, b がともに pで割り切れる確率は p12 である．したがって，p が a, b を同時には割り切らない確率は 1 − p12 である．
これが任意の p について成り立つとき，即ち，どんな p に対しても a, b が同時には p で割り切れないとき a と b は互いに素となるから，主張の確率 P は)∏ (1P =1− 2
pp :素数と求めることができる．右辺は，Euler 積と呼ばれる関係式∞∑1

nsn=1=∏ (p :素数によって，Riemann ζ 関数を用いて

11− sp)−11と表せることが知られている．さらに，
ζ(2)前述のようにπ26が成り立つことも知られているので，定理の主張がいえる．
ζ(2) =

したがって，適当に自然数の組 (a, b) の組を取って，その組が互いに素であるかどうかを何回も調べてみれば良いのですが，これを人間がやるのはとても難しいことです．
実験 1. 計算機を使って，適当にとった自然数の組 (a, b) の組が互いに素である確率を求めてみましょう．

6

Maxima を使って以下のコマンドを実行していきましょう．
(%i1) MAX:10000000;(%i2) fpprec:300;(%i3) f(x):=block([t:0,a,b],(for i:1 step 1 thru x do
(a:random(MAX),b:random(MAX),if (gcd(a,b)=1) then t:t+1 else t:t)),return(bfloat(t/x)));(%i4) f(10000);
上の操作を理解するために，いくつかの Maxima のコマンドを説明しておきます．
まず，『MAX:10000000;』ですが，これは変数 MAX に 10000000 を代入する操作です．
「:」は = の意味で，「;」は式の終りの区切り文字です．同様に，『fpprec:300;』
で fpprec に 300 を代入しているのですが，これによって，小数点以下の精度を300 桁保つことができます．次の式に出てくる『random(MAX)』で，0 から MAX の範囲の整数をランダムに与えることができます．これにより，「a」と「b」に適当な自然数を代入しています．また，『if (gcd(a,b)=1) then t:t+1 else t:t』の部分で，「a」と「b」の値が互いに素かどうかを判定し，互いに素ならば t を 1 増やし，そうでなければそのままの値に保つようにしておきます．この操作を何回も繰り返したいのですが，そのために『for i:1 step 1 thru x do』を使います．これは，i を 1 からはじめて x 回 do 以下の操作を行うことを意味していまtす．ここまでで，x 回試行した内で選んだ組が互いに素である割合は で求めらxれることに注意して下さい．
『block([t:0,a,b],』と『return(bfloat(t/x)));』
ではさむことによって，t に 0 を代入した後上の操作を x 回試行した後の t/x の値を返すような 1 つの関数を f(x) として定義しているのです．但し，『bfloat』というのは実数値として求めるためのコマンドです．この結果，『6.0...B-1』の−1ように表示されますが，これを「6.0 . . . × 10 」と読んでください．これにより，『f(10000);』で 10000 回試行した後の値を求めることができるのです．
出てきた値を理論値と比べてみましょう．Maxima では π を「%pi」で表します．

(%i5) bfloat(6/(%pi)^2);
6を解いてみましょう．Maxima でπ2
は N 番目の出力結果を「%oN」（今の例では 4 番目の入力に対する出力ですから「%o4」）として利用することができます．
実感がわかない方は，実際に (求めた値) =(%i6) bfloat(sqrt(6/(%o4)));
研究実験 1.1. 試行回数を（自宅では MAX も）増やして何度か試し，平均を取ってみましょう．

7

4.2

もっと早く正確に近似してみる

現在の π の近似の世界最高記録は，東京大学の金田先生のグループの出した 1
兆 2411 億桁です．
実験 2. 世界最高記録を出すためのアルゴリズムを体感する実験をしましょう．
アルゴリズム 1 (Gauss-Legendre).
入力：なし
出力：円周率 π の近似値111. A ← 1, B ← √ , T ← , X ← 1 とおく．
422. Y ← A, A ←3.

√A+B, B ← BY , T ← T − X(Y − A)2 , X ← 2X とする．
2(A + B)2の値が求める桁数に達していれば出力して終了．そうでなければ，
4T
step 2 へ．

このアルゴリズムでは step 2 の操作を繰り返せば繰り返すほど，真の値に近づいていきます．また，このアルゴリズムを言い換えると次のような定理になります．

11定理 2. a0 = 1, b0 = √ , t0 = とおいて，さらに，数列 {an }, {bn }, {tn } を
42
an+1 =

an + bn,
2bn+1 =で定める．このとき，√an bn ,tn+1 = tn − 2n (an+1 − an )2(n = 0)

(an + bn )2=πn→∞4tnlimが成り立つ．
任意の n = 0 に対して√√1 √an + bn − 2 an bn= ( an − bn )2 > 0an+1 − bn+1 =22

より，an+1 > bn+1 であって（a0 > b0 も成り立っていることにも注意して下さい），1
an+1 − an = (bn − an ) < 02
√an>0bn+1 − bn =bn
だから，a0 > a1 > . . . > an > an+1 > . . . > bn+1 > bn > . . . b1 > b08

となって an , bn の極限値の存在がわかります（この事実は，Gauss の算術幾何平均として知られています）．同様に，

0 < . . . < tn+1 < tn < . . . < t1 < t0がわかるので，きちんと極限値が存在します．
実際に，Maxima で上の手順を実行して極限値を調べてみましょう．そのためには，上のアルゴリズムを忠実に実行さえすれば大丈夫です．

(%i1) A:1; B:1/sqrt(2); T:1/4; X:1;(%i2) fpprec:1000;(%i3) Y:A; A:(A+B)/2; B:sqrt(B*Y); T:T-X*(Y-A)^2; X:2*X;(%i4) bfloat((A+B)^2/(4*T));
さて，値はいくつになったでしょうか？
研究実験 2.1. さらに，Y:A; A:(A+B)/2; B:sqrt(B*Y); T:T-X*(Y-A)^2; X:2*X;
bfloat((A+B)^2/(4*T));の部分を何回も繰り返して，近似の精度がどう変化するか観察してみましょう．
（何桁一致しているか下の表を埋めてください．
）
回数12345精度

研究実験 2.2. 何回

Y:A; A:(A+B)/2; B:sqrt(B*Y); T:T-X*(Y-A)^2; X:2*X;という操作をしたときに精度が 500 桁を超えるのか調べましょう．また，10000 桁の精度を求めるためには何回操作が必要か予想してみましょう．さらに，fpprecの値を変えて，それを確認してみましょう．
研究実験 2.3. 前述の Machin の公式と arctan の Taylor 展開を利用して，π の近似値を求めてみましょう．さらに，Machin の公式ではなく高野喜久雄の公式（1982 年）

π1111= 12 arctan+ 32 arctan− 5 arctan+ 12 arctan
44957239110443を利用するとどうでしょうか？また，他の表示でも近似値を求めてみましょう．

9

π の小数点以下 1000 桁までのデータを載せておきます．
（10 桁ごとに空白があり，50 桁ごとに改行されています．
）
3.1415926535 8979323846 2643383279 5028841971 6939937510
5820974944 5923078164 0628620899 8628034825 3421170679
8214808651 3282306647 0938446095 5058223172 5359408128
4811174502 8410270193 8521105559 6446229489 5493038196
4428810975 6659334461 2847564823 3786783165 2712019091
4564856692 3460348610 4543266482 1339360726 02491412737245870066 0631558817 4881520920 9628292540 9171536436
7892590360 0113305305 4882046652 1384146951 9415116094
3305727036 5759591953 0921861173 8193261179 3105118548
0744623799 6274956735 1885752724 8912279381 8301194912
9833673362 4406566430 8602139494 6395224737 1907021798
6094370277 0539217176 2931767523 8467481846 7669405132
0005681271 4526356082 7785771342 7577896091 7363717872
1468440901 2249534301 4654958537 1050792279 6892589235
4201995611 2129021960 8640344181 5981362977 4771309960
5187072113 4999999837 2978049951 0597317328 1609631859
5024459455 3469083026 4252230825 3344685035 2619311881
7101000313 7838752886 5875332083 8142061717 7669147303
5982534904 2875546873 1159562863 8823537875 9375195778
1857780532 1712268066 1300192787 6611195909 2164201989

10