(十)scipy 最小二乘法

導入依賴包

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章