\

Pythonのscipy.optimize.curve_fit関数は、データに対して任意の関数をフィットさせるための強力なツールです。この記事では、その基本的な使い方を解説します。

フィッティングしたい関数の定義

まずはフィッティングしたい関数を定義します。例えば、以下のような1次式や2次式、3次式を定義することができます。

def func1(X, a, b):
    # 1次式近似
    Y = a + b * X
    return Y

def func2(X, a, b, c):
    # 2次式近似
    Y = a + b * X + c * X ** 2
    return Y

def func3(X, a, b, c, d):
    # 3次式近似
    Y = a + b * X + c * X ** 2 + d * X ** 3
    return Y

curve_fitの使用

次に、curve_fit関数を使ってデータに対してこれらの関数をフィットさせます。

from scipy.optimize import curve_fit

# 1次式近似
popt, pcov = curve_fit(func1, x_observed, y_observed)

# 2次式近似
popt, pcov = curve_fit(func2, x_observed, y_observed)

# 3次式近似
popt, pcov = curve_fit(func3, x_observed, y_observed)

ここで、poptは最適推定値を格納しており、pcovは共分散を格納しています。

フィッティング結果の可視化

最後に、得られたフィッティング結果を可視化します。

import matplotlib.pyplot as plt
import numpy as np

# フィッティング結果の可視化
plt.figure(figsize=(6, 4))
plt.scatter(x_observed, y_observed, label='observed')
plt.plot(x_observed, func1(x_observed, *popt), label='fit: a=%5.3f, b=%5.3f' % tuple(popt))
plt.legend()
plt.show()

以上がscipy.optimize.curve_fitの基本的な使い方です。これを使えば、Pythonで簡単にデータに対するカーブフィッティングを行うことができます。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です