導入依賴包
import numpy as np
from scipy.optimize import leastsq
from matplotlib import pyplot as plt
待求解函數
k = (2, 5, -3)
# 目標函數
def func(k, x):
k1, k2, k3 = k
return k1*x**2 + k2*x + k3
# 誤差函數
def error(k, x, y):
return func(k, x) - y
數據準備
x = np.linspace(0, 100, 200)
y = func(k, x)
# 係數的初始值
initial = (0, 0, 0)
求解結果
fit, cost = leastsq(error, initial, (x, y))
# fit array([ 2., 5., -3.])
# cost 2