ちょぴん先生の数学部屋

数学の楽しさを、現役メーカーエンジニアが伝授するぞ!

円周率を精度良く計算するのは大変!! ~大阪大学の2013年挑戦枠の過去問から~

皆さん、こんにちは。

 

以前、円周率が歴史的にどう計算されてきたかを紹介しました。

この記事の中で、円周率の計算にまつわるこんな大学入試の過去問をチラ見せしました。

 

今回の記事では、この問題の答案をお見せすることで、如何に円周率の計算が大変かを味わっていただければと思います。

 

1. 問題の概要

 

問題文を再掲します。

f:id:stchopin:20210924184143p:plain

 

この問題は、2013年の大阪大学の「理学部挑戦枠」というカテゴリーで出題されました。

理学部数学科に入学する受験生を対象にした、「この問題が解ければ、(他の科目の点数関係なしに)こっちの成績だけで合否判定できる」という特別問題ですね。一芸にたけた受験生を取ろうという、推薦入試(京大で言う特色入試)に近い感じですね。

 

そんな特別問題なだけあって、問題の内容も中々にスペシャルなものとなっております。

 

この問題でやりたいことは、積分を使って、円周率を小数点以下3桁まで確定させよう」ということ。

 

東大の伝説の問題「円周率が3.05より大きいことを証明せよ」に比べても、段違いに精度が高いですね。

 

でですよ、問題文の(2)を見てください。

 

1.7320508<√3<1.7320509

 

書かれている√3の近似値があまりに細かいじゃないですか(なんと有効数字8桁)!!

 

この桁数の数字が書かれているということは、この桁数の四則演算が出てくると予想できますし、これくらいの精度の数を使わないと円周率の小数点以下3桁すらロクに決まらないということが想像できます。そして、大学入試本番では当然ながら電卓使用不可全部を手計算でやらないといけないわけです。

 

・・・背筋が凍ってきますよね(震え声)。

 

では、当時の挑戦枠受験生がどんな恐怖を味わわされたか、見ていきましょう。

 

 

2. (1)を解く

 

(1)は積分極限値を計算する問題ですね。この小問はせめて解いておきたいです。

 

anについて、まず分子を分けてみます。

f:id:stchopin:20210925093807p:plain

すると、後半の積分はともかく、前半の積分は計算できそうですね。

この形は、x=tanθと置換するとうまくいくタイプです。

 

そうすると、積分区間を変えるのに、tanθ=2-√3となる角度θが何かが分からないといけませんね。これはあまりメジャーではない知る人ぞ知る値です。

 

実は、この角度は15°=π/12となります。実際に、2倍角の公式を使ってtan2θを計算すると、確かに1/√3=tan30°になってることが確認できます。

 

このように自力でも計算できますが、問題文自体が「π/12に収束することを示せ」なので、問題文自体がヒントになっていたわけです笑。

 

ということで、前半の積分結果はπ/12となります。

f:id:stchopin:20210925094632p:plain

 

同じように、bnについても以下のように計算できます。

f:id:stchopin:20210925094715p:plain

 

ここで、断っていませんでしたが、後半の積分

f:id:stchopin:20210925094758p:plain

と文字でおいて表現しています。

 

さて、an, bnがπ/12に収束するらしいので、このcnが0に収束することが言えればOKということになります。

 

cnは直接計算出来なさそうなので、はさみうちの定理を使います。

 

まず、積分の中身が常に0より大きいのでcn>0は明らかでしょう。

 

その上で、cnを「0に収束するような式で上から押さえる」ことができれば、はさみうちの定理からcn→0が言えることになります。

 

それを念頭に積分の中身を覗いてみます。分子は等比数列の格好になっていて、xの範囲が0<x<2-√3なので、無限大に飛ばすと0に収束しそうです。これを生かしたいですね。

 

となると、分母が邪魔ですね。そこまで考えれば、

分子だけxを最大値の2-√3で置き換えて積分の外に出してしまえばいいのでは?」

というアイデアに行きつきます。

 

それを使うと、

f:id:stchopin:20210925095638p:plain

となって、目標としていた「0に収束するような式で上から押さえる」が達成でき、はさみうちの定理が適用できます。

f:id:stchopin:20210925095801p:plain

これで、cnが0に収束することが分かったので、

f:id:stchopin:20210925095817p:plain

が示せました!これで(1)は終了です。

 

3. (2)を解く

 

3-1. 方針決め

 

いよいよ、本題の(2)に入っていきます。(1)がヒントになっていることは容易に想像がつくので、(1)をどう使うかを考えてみましょう。

 

もう一度、an, bnの計算結果を再掲しましょう。

f:id:stchopin:20210925094632p:plain

f:id:stchopin:20210925094715p:plain

この式を見ると、「anはπ/12よりもちょっと小さい値」「bnはπ/12よりもちょっと大きい値」であることが分かります。

 

だからざっくりと

an<π/12<bnが言えるわけです。とはいえ、これだけだと積分計算が実行できなくて先に進みません。

 

では、anとかbnとかは、nが大きくなるにつれてどう変化するのでしょうか?

そのために、cnの変化の仕方を調べておきましょう。

 

数列の増減は、「前後の差を取るor比を取る」で調べるのが定石でした。今回は積分の形なので差を取るのがよさそうです。

 

ということで差を取ってみると、

f:id:stchopin:20210925100700p:plain

となります。xが1より小さいことに注意すると、差はマイナスになりました。ということは、cnは単調減少する数列だと分かります。

 

この事実を元にan, bnの式をみると、anは単調増加、bnは単調減少だと分かります。

 

つまり、ここから次の事実が分かります

・anは番号を大きくすると、下の方からπ/12に限りなく近づいていく

・bnは番号を大きくすると、上の方からπ/12に限りなく近づいていく

 

式で書くとこういう事です。

f:id:stchopin:20210925101033p:plain

ということで、この関係を使って3.141<π<3.142と言えるようなうまい番号を見つけてあげればよい、という方針が立ちます。

 

ということで、a1, a2, ・・・とb1, b2,・・・を順番に計算して、3.141<π<3.142となった瞬間に打ち止めする、という方針で進めましょう。

 

この問題が地獄と言われる所以は、このあたりからの計算にあります。。

 

3-2. 実際の計算

 

以下、簡単のためにα=2-√3 とおきます。

 

まず、n=1の場合、a1<π/12について検討します。

積分の中身は綺麗に割り切れて多項式になるので、積分それ自体は簡単に外れます。

f:id:stchopin:20210925101841p:plain

f:id:stchopin:20210925101901p:plain

3次式程度であれば、α=2-√3を直接代入して計算することも出来ますが、今後のために工夫をしましょう。

 

解の一つがαとなるような2次方程式は、

f:id:stchopin:20210925102053p:plain

となります。(αを直接2乗して確かめてもいいですし、解の一つが2-√3ならもう一つの解は2+√3だということで解と係数の関係を使って求めてもよいです。)

 

この式を使うと、αの次数を下げていくことができるので、ルートの入った面倒な計算を節約することができます。

 

実際a1の例では、

f:id:stchopin:20210925102415p:plain

というαの1次式にまで簡単にできます。あとは、α=2-√3を代入してπを計算すると、

f:id:stchopin:20210925102602p:plain

と評価できました。ついにここで√3の有効数字8桁の近似値が牙をむき始めます。この計算だけでも結構面倒です。

 

しかし、π>3.138・・・しか求まらず、π>3.141まで特定できていません。残念!!

a1では評価がガバガバで甘かったわけです。なので、もっと厳しく評価しないといけません。

 

ということで、泣く泣く次のn=2の検討に行きます。

 

a2の方も、a1のときと同じく、積分の中身は約分されて多項式となり、積分は簡単に外れます。

f:id:stchopin:20210925103142p:plain

今度はαの7次式になってしまいました。これは流石に直接α=2-√3を代入して計算するのは無謀ですね。なので、先ほどの次数下げの式⑩を繰り返し使って次数を下げていきます。

 

前半の2項はa1そのものなので、後半の2項について計算を進めます。

その計算過程を列挙すると下のようになります。

f:id:stchopin:20210925103550p:plain

f:id:stchopin:20210925103613p:plain

f:id:stchopin:20210925103646p:plain

 

見て頂けると分かると思うのですが、計算が進むにつれて、各係数がメチャクチャ大きくなっていき計算が面倒になっていきます。そして、最終局面では3桁の掛け算なんてのが当たり前に登場するようになり、終結果はとんでもなく汚い数になりました。

 

そして、πの評価がどうなるかと言うと、

f:id:stchopin:20210925104007p:plain

となり(5桁×8桁の計算、5桁÷3桁の計算と気の遠くなるような計算が行われております)、π>3.14154>3.141となって、今度は見事にπ>3.141が言えました!!本当に良かった。

 

もしa2もダメで、a3も計算しなきゃいけなかったら、絶望しますよね・・・a3の方がa2以上に計算が大変になるのは火を見るより明らかですので。

 

これで、π>3.141は無事解けましたので、今度はπ<3.142を解きに行きます。ということで、π/12<b1について検討します。

 

b1も、a1,a2と同じように積分の中身は約分で多項式に出来、計算できます。

f:id:stchopin:20210925104712p:plain

前半の2項はa1で、3項目がαの5次式です。同様に次数下げを繰り返していくと、

f:id:stchopin:20210925104835p:plain

f:id:stchopin:20210925104850p:plain

f:id:stchopin:20210925104910p:plain

となり、a2程ではないにせよ、面倒な計算を経て汚い計算結果になります。

 

そして、πを計算すると、

f:id:stchopin:20210925105030p:plain

となって、今度はπ<3.1417<3.142となって一発でπ<3.142が示せました!!運がよかったです。(ここでも3桁×8桁の掛け算なんていう化け物が平気で登場してますね)

 

以上から、3.141<π<3.142 となり、円周率の小数点以下3桁まで確定できました。これで(2)も終了です。

 

<答案全景>

f:id:stchopin:20210925105452p:plain

f:id:stchopin:20210925105511p:plain

f:id:stchopin:20210925105529p:plain

 

4.まとめ ~この問題が挑戦枠で出題された意味~

 

いかがでしたか?桁数の大きい分数の計算、5桁×8桁の計算、5桁÷3桁を小数点以下どこまでも~といった、とんでもない計算地獄でしたね・・・

 

私は電卓でパパっと計算するというズルをしたのですが、当時の受験生はこれらのトンデモ計算を全て手計算することを強いられたわけです。

 

仮に、最後の評価の部分でズルをして√3=1.73(有効数字3桁)辺りで妥協して計算をすると、

a2の場合は、π>-6.16・・

b1の場合は、π<4.072

という明後日の方向な結果が出てしまいます。

 

もう少しだけ粘って、√3=1.73205(有効数字6桁)辺りで妥協したとしても、

a2の場合は、π>3.13792

b1の場合は、π<3.14212

という惜しい結果となって目当ての3.141<π<3.142まで届きません。

 

なので√3の近似値をちょろまかすというズルすらできないのです。

 

当然のごとく、ここまでシビアな評価だと、途中計算での一切の計算ミスが許されません。

 

さらに言えば、私はanはn=2で打ち止めにできる、bnはn=1で打ち止めにできる、っていうネタバレを最初から知ったうえで解きましたが、受験生からしてみれば「どこで打ち止めにできるのか」が皆目見当もつかないわけです。

 

上でも書きましたが「もしa2でもダメだったらどうしよう!?a3やるの!?ギャー!!」という終わりの見えない恐怖・発狂を心に抱えたまま精密な手計算をしないといけないのです。

 

その上で、「(1)を使ったπの評価方法を思いつく」という発想力がそもそも必要なのでした。

 

本当に「挑戦枠」に相応しい、とんでもない問題だったと思います。

 

 

さて、ここまで総括をしたうえで、この問題がどうして理学部数学科の「挑戦枠」として出題されたのか?その意味について考えていきます。

 

今でこそ、電卓やコンピュータを使えば巨大な数の計算も一瞬でできてしまいます。しかし、そんな文明の力が存在しない時代では、もっぱら計算の手段は手計算(もしくはそろばん)だったわけです。

 

そんな時代であっても、以前紹介したように、

 

円周率を

 アルキメデス →正96角形を使って、3.14まで確定。

関孝和 →正131072角形を使って、小数点以下11桁まで正確に計算。

ルドルフ →正2^62角形を使って、小数点以下35桁まで正確に計算。

 

数学者たちは困難な計算の果てにここまでの業績を成し遂げたわけです。

 

このように、数学者には発想力だけではなく「計算を最後までやり遂げる忍耐力、先が見えなくてもその程度では折れない強靭なメンタル」が必要な訳です。

 

「本学の数学科には、このような今後数学をやり続けていける忍耐力を持った学生に来てほしい

 

きっとそんな思いで、大阪大学はこの問題を数学者の卵たちに挑戦状として叩きつけ、過去の偉人たちの足跡を疑似体験させたかったんではないでしょうか。私はそう思います。