版权声明:此文章版权归呆呆所有,转发请注明出处! https://blog.csdn.net/zhangyu4863/article/details/81844989
首先别问我为什么要傻傻的自己写,毕竟scipy.optimize.leastsq直接调用就行。然后我看网上很多雷同的博客用的这个库直接调用的,然后就~~~
下面的图片中左边是库拟合的,右边是我自己拟合的
自行体会上图
# 这里用的方程是y=k*x+b
# 输入的是列表list,分别是x和y的值
# 输出的是k和b的值
def least_square(x, y):
if len(x) != len(y):
return False
aver_x = sum(x) / len(x)
aver_y = sum(y) / len(y)
# 分母和分子初始化
denominator = 0
molecule = 0
for i in range(0, len(x)):
denominator += (x[i] - aver_x) * (y[i] - aver_y)
molecule += pow((x[i] - aver_x), 2)
k = denominator / molecule
b = aver_y - k * aver_x
return k, b
求解过程:
自己比较懒,懒得用markdown公式,见谅~~~