見出し画像

数学ガール感想_テイラー展開の描画

結城浩先生の「数学ガール」読んで、sinxのテイラー展開を実際に描画したくなった。そんなわけでpythonに描かせてみた。


f(x)=x まあ当然こうなるよな

係数a1まで

f(x) =x -(x^3)/(3!)
おお、こんなに近づくのか!

係数a2まで

f(x) =x -(x^3)/(3!) + (x^5)/(5!)
 -π/2~π/2はほとんど、sin(x)じゃないか!

係数a3まで

f(x) =x -(x^3)/(3!) + (x^5)/(5!) -(x^7)/(7!)
 -π~πの範囲でほぼsin(x)

係数a4まで


感想

テトラちゃんが「sin(x)は一つの形に過ぎない、いろんな形をとれる」って言ったがそれを納得させられる結果だったな。

すごい!面白い!
なるほど、数学にプログラムが必要な理由が体感として理解できたぜ。

ミルカさんが主人公に「君はグラフを描かないのが弱点」と言われていたが、私も同じ弱点を抱えていたな。


pythonのコード

pythonのコードは以下の通りです。興味のある方は試してみて下さい。

import numpy as np
import matplotlib.pyplot as plt
import math

c=1
#最大値と最小値にかける係数を設定。この値は適当

min = -c*np.pi
#最大値を-cπに設定

max = c*np.pi
#最小値をcπに設定

x= np.linspace(min,max,2000)
#np.linspace…連続する値を順に入れた配列を生成する関数。1st…最小値、2nd…最大値、3rd…分割数

f_sin = np.sin(x)
#関数sin(x)

a3= -1/math.factorial(3)
a5= 1/math.factorial(5)
a7= -1/math.factorial(7)
#factorialは引数の階乗を出す関数
#a3、a5…はxの累乗の係数

f_Taylor_Expansion = x+a3* (x**3)+ a5*(x**5)+a7* (x**7)
#sin(x)のテイラー展開(x^7まで)
#累乗するときは^でなく**を使おう!


plt.plot(x,f_sin,color="r",label="sin(x)")
#plot関数…第一引数をx、第二引数をyとしてxy空間に散布図グラフを作る関数。
#color=""…グラフの色指定,label=""…グラフのラベル名、このあとにplt.legend()が必要

plt.plot(x,f_Taylor_Expansion,color="black",label="Taylor_Expansion")

plt.legend()
#グラフに凡例を作る関数…なお、凡例は各グラフで定義する必要がある。

plt.show()
#グラフと凡例を描画する関数

参考文献

結城浩『数学ガール』 [ 数学ガールシリーズ 1)] SBクリエイティブ,2007
https://www.amazon.co.jp/dp/4797341378/ref=cm_sw_r_tw_dp_4D4HMJN5D94JGHQTK5ZS

この記事が気に入ったらサポートをしてみませんか?