导入依赖包
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