今回はヒマなので
なーんか面白いことないかーとか
思っていましたら
東の方に
有名な大学が有るらしいんですよ。
東京大学って知ってます?
自分は行ったことないんで
よく知らないんですけど
有名大学みたいなので
数学の問題を解いてみることにしました。
解説動画はこちら
2003年の東大の入試問題より
円周率が 3.05 より大きいことを証明せよ。
さて
どう解きましょうかねー
とりあえず
円周の長さ > 内接X角形の外周
になるはずなので
この内接する多角形の外周を求めて
それが3.05よりも大きければ
総じて
円周率> 3.05
となるのではないかと思います。
まずは円を描いてみましょう。
Pythonのライブラリを用いて
円を描いてみます。
描画用のライブラリとして
matplotlibを読み込んでおきます。
円を描くにはx,y座標が必要ですが
その点を求めるのにnumpyを使います。
numpy.linspaceで等間隔の配列が作成できます。
あとはx,y座標の点を求めるのに
numpy.sin , numpy.cos を使います。
sin , cos に渡せるのはradianでないといけないので
一旦numpy.radiansで変換します。
これで円を描くことができます。
次にこの円に内接する多角形を描いてみましょう。
今回は12角形を描くこととします。
わかりやすくするために
三角形の辺の長さが3:4:5になるという法則を用いて
座標を決めていきます。
一番長い5の辺は円に接する先端ですね。
あとはx,yの座標は3か4になります。
一番上をx=0,y=5として座標点をプロットしてあげます。
はいこれで円に接する12角形が描けました。
あとはこの辺の長さを求めて
あげれば良いということになります。
辺の長さを求めるにはどうすれば良いでしょうか?
これはnumpyを使って
ユークリッド距離を求めることで
辺の長さを計算することができます。
numpy.linalg.norm(座標a - 座標b)
これで2点のユークリッド距離を求めることができます。
12角形のうち
全部を求める必要はなく
右上部分の4点を用いて
3辺の長さを計算してみましょう。
x,y座標はそれぞれ
0,5
3,4
4,3
5,0
となるので
そのうち2点を使って計算します。
30.9550755308
さてこれで多角形の辺の長さが計算できました。
問題文は3.05より大きいことを証明せよなので
比率を合わせます。
この円は半径5の円なので直径は10です。
なので10倍します。
30.5
10倍した30.5よりも
12角形の外周は30.95のため大きくなり
必然的にそれよりも円周は大きいので
円周率>3.05
になるはずです。
さて
描画などについては
Pythonのライブラリを用いると簡単に
描くことができ
また座標間の距離なども
簡単に計算することができます。
数学の問題では
このnumpyとmatplotlibライブラリを使って
いろいろ問題に応用することができます。
数学的な可視化や
その計算については
numpyやmatplotlibライブラリを
用いることが多いです。
単純な計算については
通常のPythonプログラムだけでも
行うことができます。
問題を読み間違わなければ
このくらいの計算は
プログラミングで簡単に行うことができるので
プログラミングを覚えていない方
これから覚えたい方は
ぜひPythonを覚えてみてください。
Pythonについては無料の動画講座を用意しています。
乙py式5時間で学ぶプログラミング基礎(python編)
興味のある方はぜひこちらをご参照くださいませ。
それでは。
なーんか面白いことないかーとか
思っていましたら
東の方に
有名な大学が有るらしいんですよ。
東京大学って知ってます?
自分は行ったことないんで
よく知らないんですけど
有名大学みたいなので
数学の問題を解いてみることにしました。
解説動画はこちら
2003年の東大の入試問題より
円周率が 3.05 より大きいことを証明せよ。
さて
どう解きましょうかねー
とりあえず
円周の長さ > 内接X角形の外周
になるはずなので
この内接する多角形の外周を求めて
それが3.05よりも大きければ
総じて
円周率> 3.05
となるのではないかと思います。
まずは円を描いてみましょう。
Pythonのライブラリを用いて
円を描いてみます。
# ライブラリの読み込み import numpy as np import matplotlib.pyplot as plt % matplotlib inline
描画用のライブラリとして
matplotlibを読み込んでおきます。
# 半径5の円を描く plt.figure(figsize=(2,2),dpi=300) r = 5 x = [np.sin(np.radians(_x))*r for _x in np.linspace(-180,180,361)] y = [np.cos(np.radians(_y))*r for _y in np.linspace(-180,180,361)] plt.plot(x,y) plt.xticks([i for i in range(-r,r+1)]) plt.yticks([i for i in range(-r,r+1)]) plt.axes().set_aspect('equal','datalim') plt.show()
円を描くにはx,y座標が必要ですが
その点を求めるのにnumpyを使います。
numpy.linspaceで等間隔の配列が作成できます。
あとはx,y座標の点を求めるのに
numpy.sin , numpy.cos を使います。
sin , cos に渡せるのはradianでないといけないので
一旦numpy.radiansで変換します。
これで円を描くことができます。
次にこの円に内接する多角形を描いてみましょう。
今回は12角形を描くこととします。
わかりやすくするために
三角形の辺の長さが3:4:5になるという法則を用いて
座標を決めていきます。
一番長い5の辺は円に接する先端ですね。
あとはx,yの座標は3か4になります。
一番上をx=0,y=5として座標点をプロットしてあげます。
# 内接する12角形を描画 plt.figure(figsize=(2,2),dpi=300) r = 5 x = [np.sin(np.radians(_x))*r for _x in np.linspace(-180,180,361)] y = [np.cos(np.radians(_y))*r for _y in np.linspace(-180,180,361)] plt.plot(x,y) x2 = [0,3,4,5,4,3,0,-3,-4,-5,-4,-3,0] y2 = [5,4,3,0,-3,-4,-5,-4,-3,0,3,4,5] plt.plot(x2,y2) plt.xticks([i for i in range(-r,r+1)]) plt.yticks([i for i in range(-r,r+1)]) plt.axes().set_aspect('equal','datalim') plt.show()
はいこれで円に接する12角形が描けました。
あとはこの辺の長さを求めて
あげれば良いということになります。
辺の長さを求めるにはどうすれば良いでしょうか?
これはnumpyを使って
ユークリッド距離を求めることで
辺の長さを計算することができます。
numpy.linalg.norm(座標a - 座標b)
これで2点のユークリッド距離を求めることができます。
12角形のうち
全部を求める必要はなく
右上部分の4点を用いて
3辺の長さを計算してみましょう。
x,y座標はそれぞれ
0,5
3,4
4,3
5,0
となるので
そのうち2点を使って計算します。
l = np.array([[0,5],[3,4],[4,3],[5,0]]) c1 = np.linalg.norm(l[0]-l[1]) c2 = np.linalg.norm(l[1]-l[2]) c3 = np.linalg.norm(l[2]-l[3]) ans1 = 4 *(c1+c2+c3) print(ans1)
30.9550755308
さてこれで多角形の辺の長さが計算できました。
問題文は3.05より大きいことを証明せよなので
比率を合わせます。
この円は半径5の円なので直径は10です。
なので10倍します。
30.5
10倍した30.5よりも
12角形の外周は30.95のため大きくなり
必然的にそれよりも円周は大きいので
円周率>3.05
になるはずです。
さて
描画などについては
Pythonのライブラリを用いると簡単に
描くことができ
また座標間の距離なども
簡単に計算することができます。
数学の問題では
このnumpyとmatplotlibライブラリを使って
いろいろ問題に応用することができます。
数学的な可視化や
その計算については
numpyやmatplotlibライブラリを
用いることが多いです。
単純な計算については
通常のPythonプログラムだけでも
行うことができます。
問題を読み間違わなければ
このくらいの計算は
プログラミングで簡単に行うことができるので
プログラミングを覚えていない方
これから覚えたい方は
ぜひPythonを覚えてみてください。
Pythonについては無料の動画講座を用意しています。
乙py式5時間で学ぶプログラミング基礎(python編)
興味のある方はぜひこちらをご参照くださいませ。
それでは。