connecting...
Google translation for articles :
8 NEMBER donated to you!!

【数学】何に近づいていくでショウ!(前編)

nem37.20xem (8) 235 12 1

 


↑YUTOさんのイベントへの参加記事です。



日本政府から、突然こんな発表が出されたらどう思いますか。


今、みなさんが銀行に預けている預金の半分を、明日、徴収します。
             さらにその半分を、明後日、徴収します。
             さらにその半分を、3日後に徴収します。
             さらにその半分を、・・・


こんなことを言われたら、急いで預金を全額降ろして、家の金庫にぶちこむことでしょう。
もしくは、ぜんぶ仮想通貨に変えちゃうことでしょう。

 

そりゃそうです。だって、このまま預金を降ろさなかったら、どんどんどんどん徴収されて行って、
預金額が0円に近づいていってしまいます!

 


いくら最初に預金があっても、例えば 1000000円 あったとしても、半分、半分、半分、としていくと


1000000 → 500000 → 250000 → 125000 → 62500→ ...  


と、どんどんに近づいていってしまいますね。

 

1000000 → 500000 → 250000 → 125000 → 62500→ ... 

のように、数字が次から次へと変化していくとき、`最終的に近づいていく数字'のことを、
数学では極限値(きょくげんち)と呼びます。

数字の `変化の規則' はシンプルでも、思いもよらぬ数字に近づいていくことがあります。

今回は、このことについて考えて、ちょっと遊んでみましょう。




 

冒頭のお話を、ちょっと おさらい しましょう。


1000000 = 1000000




1000000 ÷ 2 = 500000



1000000 ÷ 2 ÷ 2 = 250000




1000000 ÷ 2 ÷ 2 ÷ 2 = 125000

というように、最初の数字1000000を、半分、半分、半分としていきました。

これをさらに繰り返すと、


1000000 ÷ 2 ÷ 2 ÷ 2 ÷ 2 = 62500


となり、更に「2」で割る回数を増やすと、


1000000 ÷ 2 ÷ 2 ÷ 2 ÷ 2 ÷ 2 ÷ 2 ÷ 2 ÷ 2 ÷ 2 ÷ 2 = 976.5625

となります。


2 で 20回割ると、



 2 で 30回割ると、


となります。こんな感じで、右辺は限りなくに近づいていくことがわかります:






↑今回はこういったことを考えてみますよ!


※なお、記号についてですが、「≒」というのは、「だいたい等しい」という意味です。
コンピュータは小数の計算が苦手なので、多少誤差が出たり、完璧に正確な値が
求められなかったりします。そういった箇所には、「≒」を使っております。

※「≒」ではなく、「=」と書いてある箇所も多々ありますが、もしかしたらちょっと誤差が
あるかも。。大きなズレはないはずですが、完璧に正確な値でない可能性もありますので、ご了承を^^;



問題1

今度は、次のような `数字の変化' を考えてみましょう。変化していくうちに、
どんな数字に近づいていくか、予想してみてください:


1


1 + 1/2




1 + 1/2 + 1/4




1 + 1/2 + 1/4 + 1/8




1の半分は 1/2, その半分は 1/4, さらにその半分は 1/8.


「1」という数字を半分半分半分... として出てくる数字を、どんどん足し算していきます。


「そんなの計算が大変そう!」て思っちゃいますけど、ご安心を。そういうときのためのプログラミングです!
難しい計算はコンピュータに任せて、僕たちは計算結果に注目するだけでいいのです。


1/8 の半分は 1/16 なので、次は

 

1 + 1/2 + 1/4 + 1/8 + 1/16


ですね。これらをコンピュータを使って計算してみると、

 

1 = 1

1 + 1/2 = 1.5


1 + 1/2 + 1/4 = 1.75


1 + 1/2 + 1/4 + 1/8 = 1.875


1 + 1/2 + 1/4 + 1/8 + 1/16 = 1.9375


となります。右辺の数字が、1→1.5→1.75→1.875→1.9375と、次々に変化していますね。
どんな数字に近づいていっているでしょうか。


これをひたすら続けていくと、




となります。右辺を見ると、「2」という数字に近づいていくのがわかりますね。

さらに数字の変化を見続けても、「2」という数字にもっともっと近づいていきますが、2 を
超えることはありません。ということで、この問題の正解は、「2に近づく」です! 


この事実のことを、以下のような数式で表しますよ:





↓この問題の計算を行うためのPythonのコードを載せてみました↓ (コードは大丈夫です、という方は問題2へ!)

 

問題1のコード (Python) sum=0                                                       #←  `sum' という変数に数値 0 をいれる
for i in range(0,11):             #← i に、0 から 10 までの整数を順番にいれていく
  sum+=1/2**(i)                                         #← `sum' という変数に 1/(2^i) を加える、という命令
print(float(sum))              #← `sum' の値を出力する、という命令


1 + 1/2 + 1/2^2 + 1/2^3 + ... + 1/2^10 を計算するプログラムです。
これを実行すると、1.9990234375 と出力されます。

2^i は、Python だと、2**(i) で表すんですね。

二行目で『i in range(0,11)』 となっていますが、こう書くとは i が 0 から 10 までの整数を動くことになります。
11 じゃなくて、1 小さい 10 まで。11101 に変えて、『i in range(0,101)』とすれば、

1 + 1/2 + 1/2^2 + 1/2^3 + ... + 1/2^100

を計算するプログラムになりますよ。

赤字はコードの意味ですが、プログラミング初心者の私が解釈したものなので、
「ニュアンスが違う!」て可能性がありますので、参考までに。。。

10/20 追記:YUTOさんの記事で、本記事のコードが正常に動くかが検証されています。
コードを使いたい方は、こちらも合わせてご覧ください!
インデントが抜けている部分があったので、追加しました。
また、そのままコピペすると全角スペースが入り込んでしまいますのでご注意を(以下同様です)。


問題2

では、続いてはどうでしょうか。


4




4 - 4/3




4 - 4/3 + 4/5




4 - 4/3 + 4/5 - 4/7




4 - 4/3 + 4/5 - 4/7 + 4/9

 


これ、何をやってるかと言いますとね、

という形の式を、引いたり足したり引いたり足したり、しているんです。

奇数といったら 1,3,5,7,9,... ですね。なので、『4/奇数』というのは、 4/1 (= 4), 4/3, 4/5, 4/7, 4/9,...
といった分数のことを言っています。

これらを順番に、引いて足して引いて足して、を繰り返すんです。カンタンなルールでしょ。

なので 4 - 4/3 + 4/5 - 4/7 + 4/9 の次は、 4 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 です。
これらも計算してあげると、


4 = 4


4 - 4/3 = 2.66666...


4 - 4/3 + 4/5 = 3.46666...


4 - 4/3 + 4/5 - 4/7 = 2.89523...


4 - 4/3 + 4/5 - 4/7 + 4/9 = 3.33968...


4 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 = 2.97604...


となります。

確かに右辺の数字は変化していきますが、「どんな数字に近づいているか」は見えづらいですね。
もっと計算を続けてみましょう。もちろん計算はコンピュータに任せます!

右辺の数字に注目です。

4 - 4/3 + 4/5 - 4/7 + からスタートして、4/101 まで計算してみます:

 

 


計算する分数の個数は増えても、やってることは、「4/奇数」という形の数字を、引いて足して引いて足して、
とひたすら繰り返しているだけ。

もうちょっと続けてみましょう。4/2001 まで計算を続けてみます。




ここまでくると、何か見覚えのある数字に見えてきませんか。3.1425916...


さらに計算を続けて、4/20001 まで引いたり足したりを繰り返すと、




もひとつおまけに 4/99999まで計算してあげると、






3.1415... 


そう、4/(奇数) という数字を「引いたり足したり引いたり足したり」を繰り返すと、
円周率 3.1415926535... に限りなく近づいていくのです : 


左辺と右辺を見比べていただきたい。左辺は 4/奇数 という形の分数を、
ひたすら引いたり足したり引いたり足したりを繰り返しているだけ。円の話なんて全くしてませんよね。


なのに、限りなく近づいていく数字は、円周率 π。不思議ですね。


極限値を計算すると、こんなふうに、思いもよらぬ数字が現れることがあるんです。




問題2のコード(Python) from fractions import Fraction           #← `Fraction' という関数を使うための命令
sum=0                      #←  `sum' という変数に数値 0 をいれる
for i in range(1,1001):                     #← i に、1 から 1000 までの整数を順番にいれていく
  sum+=(-1)**(i+1)*4*Fraction(1,2*i-1)                  #← `sum' という変数に (-1)^{i+1} 4/(2i-1) を加える、という命令
print(float(sum))                 #← `sum' の値を出力する、という命令


4*Fraction(1,2*i-1)  は、4×1/(2i-1) という式を表していて、問題2でキモとなった [4/奇数] を表しております。
(-1)**(i+1) が、(-1)^(i+1), つまり i が1,2,3,4,5,... と変化するにしたがって、+1, -1, +1, -1, +1, ...と
変化するようになっていて、「引いたり足したり引いたり足したり...」を繰り返すのに対応しております。 







もうちょっとこの遊びを続けてみましょう。


「なんという数字に近づいていくか」を考えると、新しい数字が誕生することがあります。
その一例が、高校三年生で習うネイピア数と呼ばれるものです。順を追って、理解してみましょう。



問題3

まず、次のような数字の変化を考えてみましょう:


1 + 1

1 + 1/2


1 + 1/3


1 + 1/4


1 + 1/5



これは変化の規則が見えやすいですね。1 という数字に、1, 1/2, 1/3, 1/4, 1/5,... という分数を足していくのです。

これを小数になおすと、


1 + 1 = 2

1 + 1/2 = 1.5

1 + 1/3 = 1.3333...

1 + 1/4 = 1.25

1 + 1/5 = 1.2

となって、さらに変化しつづけると、


1 + 1/10 = 1.1

1 + 1/100 = 1.01

1 + 1/1000 = 1.001

1 + 1/10000 = 1.0001

...

1 + 1/1000000000 = 1.000000001

となります。右辺は、次第に 1 に近づいていっていることがわかりますね。この問題はとてもシンプル。



問題4

次に、以下のような数字の変化を考えます。


2 = 2


2^2 = 4


2^3 = 8


2^4 = 16


2^5 = 32


2^6 = 64


2^3 というのは、「23回掛け算せよ」という意味の記号なので、2^3 = 2×2×2 = 8 です。
(このとき、3 のことを指数(しすう)と呼んだりしますよ。)

さて、右辺はどんな数字に近づいていくでしょうか。

この場合、右辺の数字は2倍、2倍、2倍と、どんどん大きくなっていくので、

`近づいていく数字' というのは存在せず
限りなく大きくなっていくというのが正解です。


極限値が存在しないこともあるわけですね。

以上の問題3、4を踏まえて、次の問題を考えてみましょう。



問題5

次の変化を考えてみます。


(1 + 1/2)^2


(1 + 1/3)^3


(1 + 1/4)^4


(1 + 1/5)^5



問題3問題4を組み合わせたような問題です。実際、括弧( ) の中身は問題3の変化そのもので、
それに加えて 2乗、3乗、4乗、... と括弧の外の指数が1ずつ増えていきます。

この変化を続けると、いったいどのような数字に近づいていくのか。

数字を2乗、3乗、4乗、・・・としていくので、問題4のように、どんどん大きくなっていくのでしょうか。
はたまた、括弧の中身がどんどん1に近づいていくので、2乗、3乗、4乗となるのもお構いなしに、
1に近づいていくのでしょうか。


実際に計算してみますと、


(1 + 1/2)^2 = 1.5 ^2 = 1.5 × 1.5 = 2.25

(1 + 1/3)^3 = 2.37037037....

(1 + 1/4)^4 = 2.44140625

(1 + 1/5)^5 = 2.48832

(1 + 1/6)^6 = 2.52162637....


となります。さらにこれを続けると、


(1 + 1/100)^100 ≒ 2.7048138


(1 + 1/1000)^1000 ≒ 2.7169239


となります。1000まで続けても、右辺は1に近づきませんし、巨大な数字にもなりませんね。
いったい何が起こっているのか。



1という数字は、何回掛け算しても、1です: 

1 × 1 =1. 1×1×1×1×1=1. 1×1×1×1×1×1×1=1.

でも、1よりちょっとでも大きい数字を掛け算すると、掛け算した回数に応じて、計算結果はどんどん
大きくなっていきます。

例えば (1 + 1/100) = 1.01 は 1 にとても近い数字ですが、1よりちょっと大きい

なので、それを100乗してしまうと、つまり 1.01 を百回掛け算してしまうと、
さすがに 1 よりも大きい数字になってしまうわけです。




(1 + 1/1000) = 1.001 は、更に 1 に近い数字ですが、1よりちょっとだけ大きい
それを 1000乗してしまうと、つまり 1.001 を千回掛け算してしまうと、さすがに

1 よりも大きい数字になってしまうわけです。


逆に、指数は 1,10,100, 1000 と大きくなっていきますが、括弧の中身がどんどん 1 に近づいていってしまうので、
巨大な数字にもなれない。括弧の中身が「2」みたいな固定された数字だったら、問題4のように、どんどん
大きな数字になるんですけどね。


括弧の中身が1に近づいていこうとするのを、括弧の外の指数が「そうはさせるか!」と邪魔をし、
逆に、括弧の外の指数が数字全体を大きくしようとするのを、括弧の中身が1に近づくことで邪魔をする。

今回の数字の変化では、こんな`綱引き' のようなことが起こっているのです。


(1に近づこうとする括弧の中身) VS (それを妨げるように大きくなる指数) の絶妙な攻防の末、どんな
数字に近づいていくのか。その答えは、

2.7182818284.... 

と、小数点以下が無限に続く数字でした。新しい数字の誕生です。

この数字のことをネイピア数といいます。無限に続く数字を書くのは大変なので、これを e という記号で表します。

実際、この数字の変化を続けてみると、

(1 + 1/10000)^10000 ≒ 2.71814593 

(1 + 1/100000)^100000 ≒ 2.71826823

(1 + 1/1000000)^1000000 ≒ 2.71828047

と、2.718 付近で、変化が滞っているのが見えると思います。
右辺はどれも1より大きい数字だし、巨大な数字になっていくわけでもない。

`数字の綱引き'が作り出したネイピア数は、微分積分学に物理学、更には統計学でも大活躍すること
になります。が、今回はそんなネイピア数の「数字」としての性質をご紹介します。

2.7182818284.... 

という並びを、頭の片隅に置いといてくださいね!


問題6

次のような数字の変化を考えてみましょう。

1

1 + 1/1!

1 + 1/1!+ 1/2!

1 + 1/1!+ 1/2! + 1/3!

1 + 1/1!+ 1/2! + 1/3! + 1/4!

ここで、『!』という記号が使われていますね。例えば、3! と書いたら、これは 3 × 2 × 1 = 6
という意味で、3 の階乗(かいじょう)という読み方をします。

4 ! と書いたら、これは  4×3 × 2 × 1 = 24 という意味です。4 の階乗(かいじょう)という読み方をします。
つまり、何か1以上の整数 n があったとき、 n ! というのは、1 から n までの整数 1,2,3,4,...,n を
全部掛け算しなさい、という意味です:

n!= n × ・・・×4×3×2× 1

なので、上の式は、


1 + 1/1! = 1 + 1/1

1 + 1/1!+ 1/2! = 1 + 1/1 + 1/2

1 + 1/1!+ 1/2! + 1/3! = 1 + 1/1 + 1/2 + 1/6

1 + 1/1!+ 1/2! + 1/3! + 1/4! = 1 + 1/1 + 1/2 + 1/6 + 1/24

というような意味になります。こんなふうに、「1/n!」 という形の式をひたすら足し算していきます。

すると、どんな数字に近づいていくのか。実際に試してみましょう。

もちろん、コンピュータを使って!


1=1

1 + 1/1! = 1 + 1/1 = 2

1 + 1/1!+ 1/2! = 1 + 1/1 + 1/2 = 2.5

1 + 1/1!+ 1/2! + 1/3! = 1 + 1/1 + 1/2 + 1/6 = 2.666666.....

1 + 1/1!+ 1/2! + 1/3! + 1/4! = 1 + 1/1 + 1/2 + 1/6 + 1/24 = 2.708333...

これを 1/100! まで続けてみると、



となります。

2.718281828459... 

あれ、この数字、どこかで見ませんでしたか。

そう、この変化を続けると、問題5 で現れた ネイピア数 e に近づいていくのです。

 



ちなみに、数学の世界ですと、`0!' は `1' と定義されますので、




と書き直すことも可能です。`階乗の逆数'を 足していくと、ネイピア数に近づいていくんですね。


この数式は、さらなる進化を遂げます。次回はそのことについて考えます!



問題6のコード(Python)import math                                                        #← `math' というモジュールの中にある関数を使えるようにする
from fractions import Fraction           #← `Fraction' という関数を使うための命令
sum=0                      #←  `sum' という変数に数値 0 をいれる
for i in range(0,101):               #← i に、0 から 100 までの整数を順番にいれていく
  sum+=1/math.factorial(i)                                    #← `sum' という変数に 1/i! を加える、という命令
print(sum)                                                            #← `sum' の値を出力する、という命令


1行目の`モジュール' というのは、関数やクラスを集めたファイルのことで、「import math 」というのは、
`math' というファイルの中にある関数やクラスを使えるようする命令です。

6行目の factorial(i) が、i! (iの階乗)を表しています。この「factorial」という関数が、math 内にあるため、1行目
の命令を行います。





後編へつづく



あぺんでぃくす



以前、こちらの記事で、円周率の求め方をご紹介しました。
どうして円周率が 3.1415926535.... と 3 からスタートするのかを、図形を使って考えました。

今回登場した



という式を使って、円周率の正確な値を別の方法で求めていくことができます。

4/(奇数)を引いたり足したりを繰り返すと、

4 = 4
4 - 4/3 = 2.666...
4 - 4/3 + 4/5 = 3.466...
4 - 4/3 + 4/5 - 4/7 = 2.89...

となっていたので、これらの結果をプロットすると、以下のような感じになります:





つまり、

[4/(奇数) を引いたり足したりを偶数回] < 円周率 π < [4/(奇数) を引いたり足したりを奇数回]

て形になってるわけですね。

なもんで、[4/(奇数) を引いたり足したりを 50回] 繰り返したもの、つまり、

4 - 4/3 + 4/5 - ... - 4/99 = 3.121594....

は、円周率より小さく、

[4/(奇数) を引いたり足したりを 51回] 繰り返したもの、つまり、

4 - 4/3 + 4/5 - ... - 4/99 + 4/101 = 3.161198....

円周率より大きいということがわかります: 3.121594 < π < 3.161199

引いたり足したりを繰り返す回数が増えると、

[4/(奇数) を引いたり足したりを偶数回] < 円周率 π < [4/(奇数) を引いたり足したりを奇数回]

の不等式の範囲が狭まっていき、円周率の正確な値が徐々に徐々に求まっていきます。
それだけ計算に時間が掛かりますけどね!

こんな感じで円周率の値を自分で調べていくことができるんです。


Why don't you get crypt currency 'nem' by posting your blog article?

nemlog is blog posting service which has donation feature by crypt currency nem.
nemlog was launched to create environment which can be donated nem among NEMbers via blog articles.
Let's get nem by posting good blogs.

Nem prize event is being held frequently, Please join us on this opportunity!

nemlog registration from here
Register
Comments from NEMber
やってみよう
2019-10-22 23:35:59ID:155374

>>サバトラ::さん

ありがとうございます!
コードは自分も勉強中で、ちょっとさぼるとすぐに忘れちゃいますw 
「プログラミングでこんな計算ができる!」というのを
紹介するのが目的だったので、コードの詳しい内容はスルーしてしまっても大丈夫です!
ネイピア数 e は、円周率と並んで、とてもおもしろい性質を持つ数字なので、
知っていただけてうれしいです!(^^)

サバトラ
2019-10-22 21:42:06ID:155323

普通に数字の計算はわかりましたが、
コードや記号は、読んでる時は、
何となくわかるんだけど、
次の計算式に行くと、わからなくなっていきます。
多分、コードや記号を覚えないとダメかですね(≧∀≦)
記憶力いるー/(^o^)\

どこかで見たような数字だと思ったら、円周率!
子供の頃にお星たのは、普段使わなくても、
記憶に残ってるもんですね。(๑˃̵ᴗ˂̵)
円周率をこの様な数式で求めて行くのは、初めて
しりました。
今回問題が進むにつれて、こんらがって、
難しかったですが、知らなかった記号の意味とか
も知る事ができ、勉強になりました。٩( 'ω' )و

やってみよう
2019-10-21 15:50:19ID:155065

>>目指せ北海道::さん

不思議ですよね。
ひょんなところから突然姿を現すのが、
円周率やネイピア数の魅力の一つなのかもって思います!

>>ぺぺ α::さん

自分もそういう授業、よくあったりしますw
こちらこそ、よろしくお願いします!

目指せ北海道
2019-10-21 14:35:17ID:155054

数学はちゃんと勉強したわけじゃないけど、何度見ても不思議だー。

ぺぺ α
2019-10-21 13:14:05ID:155048

>>やってみよう::さん
高校での部活はとても覚えてるんだけど、数学の授業があったか?も記憶にないくらいなんですよ(・・;)
少しづつ詰め込みます^ ^
またよろしくお願いします!

やってみよう
2019-10-21 10:14:49ID:155007

>>ぺぺ α::さん

ありがとうございます。
読み返していただけてうれしいです。
今回の話は高校3年から大学の授業で習うような範囲なんですが、
考えていることはシンプルで、おもしろい結果が得られる話だなって思います!

ぺぺ α
2019-10-21 01:02:42ID:154940

理系苦手なんだけど、何回か読み返しました・・・
少しは頭に残ったと思います。繰り返し、少しでも頭の中に詰め込めたらと思います。
僕にも分かりやすい内容でした♫

BleRoom
2019-10-20 23:24:20ID:154895

>>やってみよう::さん

あっ!なるほど〜💡

やってみよう
2019-10-20 23:20:36ID:154892

>>BleRoom::さん

ありがとうございます。
以前コメント欄にて、ぶれさんに 「e」の話に興味を持っていただきました。
だいぶ遅くなってしまったんですが、今回やっと書くことができました。
e という数字は、サトシナカモトの論文の最後の方にも出てきたりするので、
知っておくと、良いことがあるかもしれません!

BleRoom
2019-10-20 22:53:25ID:154877

問134はなんとなく想像できても、問25は想像できなかった〜
数字の面白さ、不思議ですね!
こうやって普段使わない頭を使うのも良いですね✨

NEMber who posted this article

「やってみよう」は、プログラマであるタノウエと、数学を勉強しているカナクボが、共同で管理しているアカウントです。
勉強をして身に付けた NEM の知識や数学の話題を、随時投稿していく予定です。
33158
0

Why don't you read following articles?