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