概要
解析学の級数の理解のために、正弦関数のマクローリン展開の数値例を使おうと考えた。
計算
正弦関数(sin関数)の高階微分とテイラー展開(マクローリン展開)| 関数の微分 | 微分積分 | 数学 | ワイズ を参考に以下のようにコードにした。
import math import numpy as np def calc_sin_Maclaurin(x, n): ans = [] for k in range(n): term = (-1)**k * x**(2*k+1) / math.factorial(2*k+1) ans.append(term) return sum(ans), ans np.sin(np.sqrt(2)), calc_sin_Maclaurin(np.sqrt(2), 10)[0]
確認のためにプロットしてみる。
import matplotlib.pyplot as plt import numpy as np vfunc = np.vectorize(lambda x: calc_sin_Maclaurin(x, 10)[0]) fig, ax = plt.subplots(1, 1) x = np.linspace(0, 10, 1000) ax.plot(x, vfunc(x), label="Maclaurin(x, 10)") ax.plot(x, np.sin(x), label="sin(x)") ax.set_ylim(-2, 2) plt.legend() fig.savefig(outfile) outfile
これで以下の級数を利用しよう。
calc_sin_Maclaurin(np.sqrt(2), 5)[1]
1.4142135623730951 | -0.4714045207910318 | 0.04714045207910319 | -0.0022447834323382474 | 6.23550953427291e-05 |