プログラム(Python)
2次近似曲線
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# -*- coding: utf-8 import numpy as np import matplotlib.pyplot as plt # yの値 y = np.array([1,1,5,10,5,1,1,5,10,10,10]) # xの値を生成 x = np.linspace(1, len(y), len(y)) # フィッティング a1,a2,b = np.polyfit(x,y,2) # フィッティング曲線 fh = a1 * x**2 + a2 * x + b # フィッティング前 plt.plot(x, y, label="f") # フィッティング後 plt.plot(x, fh, label="fh") # グラフの各種設定 plt.xlabel("X") plt.ylabel("Y") plt.legend() plt.grid() plt.show() |
3次近似曲線
以下の部分だけ3次曲線用に変更
1 2 3 4 5 |
# フィッティング a1,a2,a3,b = np.polyfit(x,y,3) # フィッティング曲線 fh = a1 * x**3 + a2 * x**2 + a3 * x + b |
4次近似曲線
以下の部分だけ4次曲線用に変更
1 2 3 4 5 |
# フィッティング a1,a2,a3,a4,b = np.polyfit(x,y,4) # フィッティング曲線 fh = a1 * x**4 + a2 * x**3 + a3 * x**2 + a4 * x + b |
実行結果
近似曲線の次数を増やすとより元データに近い近似曲線になる
2次近似曲線
3次近似曲線
4次近似曲線
ちなみに7次近似曲線はこんな感じでした。