1
大学数学基礎解説
文献あり

黄金比の連分数展開と区間縮小法の原理

275
0

Introduction

以前、 「区間縮小法の原理で『2乗して2になる正の実数(√2)』の存在を確認する」 という記事を書きました。

記事の内容としては

 高校の教科書などで紹介されている「2は無理数」の証明について、「そもそも2乗して2になる正の実数の存在が証明されていない」といった指摘を見かけます。

今回は「区間縮小法の原理」を使いながら、2乗して2になる正の実数の存在を確認していきます。

といったものです。中間値の定理ですぐに確認できてしまいますが、勉強をかねて区間縮小法の原理を使ってみました。区間を縮小させる方法としては、二分法(中点を次々に取り続けていく)を使っています。

この記事に対し、Twitterで「連分数展開を使った区間の縮小の仕方を採用することもできる」といった旨のコメントを見かけました。

そして、それを実際に行ったものを教えていただきました( 2は実数 )。

今回は、 このページ を参考にしつつ、2ではなく、黄金比をテーマにして同じことを試してみたいと思います。

連分数展開のアイデア

天下り的ではありますが、

α2α1=0

を満たすようなαが何かしら存在すると仮定します。

0201=1なので、α0です。

このとき

α2=α+1

なので、両辺をα(0)で割ると

α=1+1α

となります。

実験

数列{an}を以下の漸化式で定めます。

a1=1
an+1=1+1an

このときのanの値およびan2an1の値を具体的に計算してみます。

※私は「浮動小数点とかなんもわからん」という人間なのですが、とりあえず「BigFloat」と書いてプログラミングしてみました。計算結果について「大体このくらいの値になるんだな」と大らかな目で見ていただければと思います(言語は Julia を使いました)。

an

n=1: 1.0

n=2: 2.0

n=3: 1.5

n=4: 1.666666666666666666666666666666666666666666666666666666666666666666666666666678

n=5: 1.599999999999999999999999999999999999999999999999999999999999999999999999999986

n=6: 1.625

n=7: 1.615384615384615384615384615384615384615384615384615384615384615384615384615386

n=8: 1.619047619047619047619047619047619047619047619047619047619047619047619047619048

n=9: 1.617647058823529411764705882352941176470588235294117647058823529411764705882352

n=10: 1.618181818181818181818181818181818181818181818181818181818181818181818181818172

an2an1

n=1: -1.0

n=2: 1.0

n=3: -0.25

n=4: 0.1111111111111111111111111111111111111111111111111111111111111111111111111111303

n=5: -0.04000000000000000000000000000000000000000000000000000000000000000000000000002211

n=6: 0.015625

n=7: -0.005917159763313609467455621301775147928994082840236686390532544378698224852074174

n=8: 0.00226757369614512471655328798185941043083900226757369614512471655328798185942739

n=9: -0.0008650519031141868512110726643598615916955017301038062283737024221453287197161908

n=10: 0.0003305785123966942148760330578512396694214876033057851239669421487603305784917384

見えてくること

  • an1.618くらいの値に近付いていきそう
  • an2an10に近付いていきそう
  • an2an1は偶数番号で0以上、奇数番号で0以下のようだ

x軸:n/y軸:(a_n)^2-a_n-1 x軸:n/y軸:(a_n)^2-a_n-1
Plots.jl でグラフ描画

目標と方針

目標

ここまでの実験を踏まえて、以下の命題を証明していきます。

u2u1=0を満たす1以上の実数uが存在する。

その際、以下(区間縮小法の原理)を使っていきます。

(実数の)閉区間の入れ子の列

[a1,b1][a2,b2][an,bn]

において

limn(bnan)=0

が成立するならば、この区間列は(実数内に)ただ1つの共通要素をもつ。

(参考:藤田博司「『集合と位相』をなぜ学ぶのか」p.67)

方針

先と同様、数列{an}

a1=1
an+1=1+1an

と定めます。

さらに、{an}を奇数番号と偶数番号に分けて、新たな数列{bn},{cn}を以下のように定めます。

bn=a2n1
cn=a2n

そして、limn(cnbn)=0となることを示し、閉区間の入れ子の列

[b1,c1][b2,c2][bn,cn]

のただ1つの共通要素uu2u1=0を満たすことを確認していきます。

補題たち

数列{an}を以下で定める。

a1=1
an+1=1+1an

a,b1以上の実数とする。このとき

aba2a1b2b1

(b2b1)(a2a1)=(ba)(b+a1)

となる。

を示す)
abならばba0である。また、a,b1以上の実数であることからb+a1>0なので、a2a1b2b1が成り立つ。

を示す)
a2a1b2b1ならば(ba)(b+a1)0となる。

a,b1以上の実数なので、b+a1>0である。

(ba)(b+a1)0であることから、ba0となるので、abが成り立つ。

an1

数学的帰納法で示す。

n=1のとき、a1=1より成り立つ。

n=kのときak1であると仮定する。

1ak>0なので

ak+1=1+1ak1となり、n=k+1のときも成り立つ。

よって、任意の正の整数nに対して、an1が成り立つ。

nが奇数ならばan2an10
nが偶数ならばan2an10

an+12an+11=(1+1an)2(1+1an)1=1+2an+(1an)2(1+1an)1=1+1an+(1an)2=an2+an+1an2=(an2an1)an2

となるので

an2an10ならばan+12an+110
an2an10ならばan+12an+110

であることがわかる。

n=1のとき、a12a11=10なので

nが奇数ならばan2an10
nが偶数ならばan2an10

が成り立つ。

数列{bn},{cn}を以下で定める。

bn=a2n1
cn=a2n

補題3,4より

bn1, cn1
bn2bn10
cn2cn10

bnbn+1cn+1cn

cn=1+1bn=bn+1bn

bn+1=1+1cn=1+bnbn+1=2bn+1bn+1

cn+1=1+1bn+1=1+bn+12bn+1=3bn+22bn+1

bnbn+1について)
bn+1bn=2bn+1bn+1bn=2bn+1bn(bn+1)bn+1=2bn+1bn2bnbn+1=(bn2bn1)bn+1

bn2bn10なのでbn+1bn0である。

よってbn+1bnとなる。

bn+1cn+1について)
cn+1bn+1=3bn+22bn+12bn+1bn+1=(3bn+2)(bn+1)(2bn+1)2(2bn+1)(bn+1)=3bn2+5bn+24bn24bn1(2bn+1)(bn+1)=bn2+bn+1(2bn+1)(bn+1)=(bn2bn1)(2bn+1)(bn+1)

bn2bn10なのでcn+1bn+10である。

よってcn+1bn+1となる。

cncn+1について)
cncn+1=bn+1bn3bn+22bn+1=(bn+1)(2bn+1)bn(3bn+2)bn(2bn+1)=2bn2+3bn+13bn22bn(2bn+1)=bn2+3bn1bn(2bn+1)=(bn2bn1)+2(bn1)bn(2bn+1)

bn2bn10であり、bn1なのでcncn+10である。

よってcncn+1となる。

cn+1bn+113(cnbn)

(2bn+1)(bn+1)3bn=2bn2+3bn+13bn=2bn2+10

よって(2bn+1)(bn+1)3bnとなるので

1(2bn+1)(bn+1)13bn

が成り立つ。

両辺に(bn2bn1) (0)をかけると

(bn2bn1)(2bn+1)(bn+1)(bn2bn1)3bn (1)

となる。

cnbn=bn+1bnbn=bn+1bn2bn=(bn2bn1)bn (2)

であることと、補題5の証明から

cn+1bn+1=(bn2bn1)(2bn+1)(bn+1) (3)

なので、(2)(3)を(1)に代入すると

cn+1bn+113(cnbn)

が成り立つことがわかる。

命題1の証明

<命題1>

u2u1=0を満たす1以上の実数uが存在する。

補題6より

cnbn(13)n1(c1b1)

となるので、b1=1,c1=2より

cnbn(13)n1

である。

よって

limn(cnbn)=0

となるので、区間縮小法の原理より、閉区間の入れ子の列

[b1,c1][b2,c2][bn,cn]

は、(実数内)にただ1つの共通要素uを持つことがわかる。

任意の正の整数nに対して

(1)bnucn

なので、補題2から

bn2bn1u2u1cn2cn1 (1)

であることがわかる。

ここで、数列{dn},{en}を以下で定める。

dn=bn2bn1
en=cn2cn1

補題5より

(1)bnbn+1cn+1cn

であることと、補題2から

dndn+1en+1en

が成り立つ。

また

endn=cn2cn1(bn2bn1)=(cnbn)(cn+bn1)

となる。

cnbn(13)n1

であることと

bncnc1(=2)

であることから

endn(13)n1(c1+c11)

となるので

endn(13)n2

が成り立つ。

よって

limn(endn)=0

となるので、区間縮小法の原理より、閉区間の入れ子の列

[d1,e1][d2,e2][dn,en]

は、(実数内)にただ1つの共通要素vを持つことがわかる。

(1)より、任意の正の整数nに対して

dnu2u1en

となることがわかるので、u2u1は閉区間の入れ子の列

[d1,e1][d2,e2][dn,en]

の共通要素である。

したがって、v=u2u1である。

また、補題4より、任意の正の整数nに対して

dn0en

となることがわかるので、0は閉区間の入れ子の列

[d1,e1][d2,e2][dn,en]

の共通要素である。

したがって、u2u1=0である。

補足

命題1の証明で

limn(13)n=0

を使っていますが、これは数列{13n}{1n}の部分列であることから、証明できます({1n}0に収束することはアルキメデスの性質を使って示します)。

くわしくは 「1/2^nは0に収束する」を証明する(1/nの部分列であることを使いながら) を参照してみてください。

感想など

黄金比や2だけでなく、もっと一般的に考えてみたくなりました。

今まで連分数にあまり触れたことがなかったんですが、面白いですね!

また、こういった類の話は「黄金比ありき」「2ありき」で考えてしまいがちですが、天下り的なことをしつつも、「そもそも存在するのか?を示すんだ」というところを強く意識するのがポイントなのかな…と思います。この辺りが難しくもあり、面白いところだと感じます。

参考文献

投稿日:20221214
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

みぽ
みぽ
161
31951
今日もねこがかわいい。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. Introduction
  2. 連分数展開のアイデア
  3. 実験
  4. 目標と方針
  5. 目標
  6. 方針
  7. 補題たち
  8. 命題1の証明
  9. 補足
  10. 感想など
  11. 参考文献