暇人大学放浪記

モラトリアムを持て余した暇人が日々起こった出来事に対する所感を徒然に書いていきます。

お題目

概算~いろい~ろ

はじめに

 どうも、皆さんいかがお過ごしでしょうか?特段変化のない生活を送らせていただいています。 さて、突然ですが皆さんはどういう性格をお持ちでしょうか?几帳面であったり、大雑把だったり、おちょこちょいだったり、お利口だったり…etc。ちなみに私は大雑把でおっちょこちょいです。よく周りに「抜けている」と言われてしまう始末です。こんな私ですが、なぜだか知りませんが理系にいます。理系って…意外と対極のイメージを持たれる方多いんじゃないかと思います。きっちりしていて、理詰めなど。もちろんですがゆるふわの私はそういうところで躓いてしまうことがよくあります。思想としては、「適当にうまくはできないものか?」という考えなもですから(笑)。

 適当はだめだと言われます。まぁ、大概の場合悪く出ます。しかし、時には有効な手段でもあると思います。考えないでどんぶり勘定というのもある種技術だという見方があるということを主張していきたいというそういう魂胆です。例えばどんぶり勘定で一番最初に皆さんが小学校で習ったであろうものは『概算』です。市場規模をざっくり想像する技術でも『フェルミ推定』という名前で広く(一部で?)流布されていたりします。理系的な言葉で言えばそれは『近似』です。

 今回はそういうわけでざっくりと『近似』するやり方を自分なり考えてみました。暇な時にぼーっと考えた僕なりの分数の近似方法と平方数の近似方法です。よければ読み進めてみてください。しかし、皆さんのお役に立つかは分かりません。なんて言っても『適当』に考えた僕なりの『近似』ですから(笑)。

分数の近似

 ある日、『\frac{8}{11}っていくつや?』という問題にぶち当たりました。僕は大体適当なので、『分母分子に1を足しても大して変わらなさそうやろ。だから\frac{8}{11}\simeq\frac{9}{12}=\frac{3}{4}=0.75あたりやろ。』って思いました。

 実際計算すると\frac{8}{11}=0.727272\cdots\simeq0.73でした。『まぁ、あれだけ適当に計算した割にはぼちぼち合ってんな。』という感覚でした。

 しかし、ここでふと思いました。『どういうときにこんな変な近似が成り立つねん。』っと。なので、少しばかりこのへんてこりんな『近似』の挙動について考えてみました。

近似の検討

 分数f(a,b)=\frac{a}{a+b}の近似を考えるためにこんな関数を考えてみます。誤差をf_1(a,b,x)=\left|\frac{a+x}{(a+b)+x}-f\right|,f_2(a,b,x)=\left|\frac{a-x}{(a+b)+x}-f\right|(-10<a,b<10)です。

これでxを変化させたときのグラフの変化を考えます。今回は、f_1,f_2x\leq0 (上段)の場合とx\geq0 (下段)に分けて解析しました。

誤差の特異点の挙動

 Fig.1にxを変化させたときの誤差f_1,f_2の挙動を示してみます。

f:id:kazubon35_2438168:20170922003035g
Fig. 1 x (1 \leq x \leq 100)としたときの誤差の挙動。(上段:x\geq0 ,下段:x:\leq0)

 上の解析からxを変化させた場合、ほとんどは誤差なく近似がよくできていることが分かりました。としたいところなのですが、目盛りを見てみると一部の誤差が発散していてよくわかりません。これは\frac{a+x}{a+b+x}の分母がa+b+x\simeq0となっている時か、\frac{a}{a+b}の分母がa+b\simeq0となっている時にその項の効果が大きくなってしまい、f_1,f_2が発散してしまうからだと考えられます。

 xを変化させたとき、特異点の位置が変わっているのは、a+b+x\simeq0となるa,bxによって変化するからです。

 しかし今考えたいのは誤差です。なので特異点を除いて考えていこうと思います。0\leq f_1,f_2 \leq1なので、1以上の値はすべて、f_1,f_2 =1として解析しなおしました。

特異点を除いて誤差を考えてみる

 特異点を除いてみました。Fig.2にxを大きくしていったときの誤差f_1,f_2の挙動を示してみます。

f:id:kazubon35_2438168:20170922002732g
Fig. 2 特異点を除いてx (1 \leq x \leq 100)としたときの誤差の挙動。(上段:x\geq0 ,下段:x:\leq0)

  xを大きくすると徐々に誤差の大きな部分が大きくなっていることが分かります。これを見ると、『分母が十分大きい中で、xをいくらか加減すること』は近似としてうまくいきそうだということが分かります。 どれくらいのxなら許されるのかというと、計算方法にもよりますが多分x=\pm5くらいが限界なのではないかと思えてきます。いやー、案外難しいですね。

平方数の近似

 よく\sqrt5の近似を考える問題を見かけます。しかし、大人になって記憶もぼけてくると\sqrt5=2.2360679 \cdotsなどすぐに出てきません。『開平』*1などという方法など\sqrt5がいくらかを忘れた人が思い出せるわけありません。

 では、むかしはどうしていたか?『はさみうち』していくらくらいか『評価』していましたね。(覚えていないだと…。)例えば、2.2^{2}=4.84<5<2.3^{2}=5.29だから、\sqrt5=2.2\cdotsだという要領です。2.23^{2}=4.9729<5<2.24^{2}=5.0176というようにこれを繰り返していけば近似はできます。しかしながら、とてもだるい。そこで今回は『連分数』を用いた近似法を考えてみました。

元ネタ

 元ネタはこんな問題です。

【問題】 次の連分数極限*2の値はいくつか? \cfrac{1}{1+\cfrac{1}{1+\cfrac{1}{1+\ddots}}}

実はとある界隈では有名問題であったりします。以下に解答を示しておきます。

【解答】

x=\cfrac{1}{1+\cfrac{1}{1+\cfrac{1}{1+\ddots}}}とおく。

極限だから x=\frac{1}{1+x}が成り立つ。

よってxは、x^{2}+x-1=0の解である。

解はx=\frac{1\pm\sqrt5}{2}である。

x>0より、x=\frac{1+\sqrt5}{2} *3が求めるべき答えである。

連分数を用いた近似法

 逆にたどってみることを考えたいと思います。つまり、\sqrt5=2\times x-1と見るのです。

x=\cfrac{1}{1+\cfrac{1}{1+\cfrac{1}{1+\ddots}}}なのですから、これを代入してあげると、\sqrt5=2\times \cfrac{1}{1+\cfrac{1}{1+\cfrac{1}{1+\ddots}}}-1となります。

三段目あたりで打ち切って『近似』してやると、\sqrt5=2\times \cfrac{1}{1+\cfrac{1}{1+\cfrac{1}{1}}}-1=2\times\frac{3}{2}-1=2

となります。収束性が悪くて若干微妙な近似になってしまいましたね(笑)。

実際にパソコンで100回の誤差を計算して収束性を見てみました。結果はFig. 3のようになります。大体20回行かないところでよく近似できているようです。(最初の誤差のブレがすごい。)

f:id:kazubon35_2438168:20170921042439j
Fig. 3 \frac{-1+\sqrt5}{2} -(近似値)の誤差の評価

一般化

 とりあえず、うまい連分数の極限を用いれば好きな平方数を表現できる。ということをもう少し考えてみたいと思います。例えば\sqrt p (p>1)を表現する連分数を考えてみたいと思います。

 その為に『元ネタ』をグッと睨みます。すると例えば僕ですと、『-1\pm\sqrt pを解にする二次方程式x^{2}+ax+b=0をとりあえず考えてみよう!』と思うわけです。

 解と係数の関係からa=2,b=1-pとなるわけです。

 よって、x^{2}+2x+1-p=0より、変形して、x=\frac{p-1}{2+x}を得ます。

 繰り返しxを代入していき、x=\cfrac{p-1}{2+\cfrac{p-1}{2+\cfrac{p-1}{2+\ddots}}}の極限連分数を得ます。

 x>0なので、これの解はもちろんx=-1+\sqrt pです。これを用いると、

 \sqrt p=\cfrac{p-1}{2+\cfrac{p-1}{2+\cfrac{p-1}{2+\ddots}}}+1を得ます。

 適当なところで打ち切れば\sqrt pの『近似』が出来上がります。例えば、

 \sqrt p=\cfrac{p-1}{2+\cfrac{p-1}{2+\cfrac{p-1}{2}}}+1となります。

 こちらも100回くらい計算したときにどのように収束するか\sqrt5 (p=5)で誤差をFig. 4のように計算しました。Fig. 3と大体同じような挙動を示していました。

f:id:kazubon35_2438168:20170921042433j
Fig. 4 \sqrt5 -(近似値)の誤差の評価

 今回はp>1についてのみ考えましたが、暇な方はp<1について考えてみるといいかもしれません*4

おわりに

 今回は怠惰が怠惰なりにうまく怠惰をするために怠惰の正攻法を模索した結果となりました。すべて読んだ方はお気づきかもしれませんが、『そんなこれうまくいってないんじゃないの?』や『でも実際やっぱりだるいじゃん。前のでよくね?』ってのもあると思います。それについては、『そうだよ、でもせっかく考えたんだし、とりあえず広めてみたかったんだよ!!』って返答しておきます。皆さんもふとした時にこういう風にうまくどんぶり勘定するすべを考えてみるのも楽しいかもしれませんね*5

駐訳と詳細

*1:興味のある方はこのサイトなど見てください。開平法のやり方と原理 | 高校数学の美しい物語

*2:細かい方のために。『収束するならば』という条件が隠れて仮定されています。

*3:ちなみにこれ、僕の記憶が正しければ『黄金比』です。

*4:考えてみると割とダルそうでした。僕だったら、p<1の時は、\frac{1}{\sqrt{p}}で近似求めて逆数とって誤魔化すかなぁ…(笑)。

*5:そんなだるいことやるわけない。