最小二乘法 python

版权声明:此文章版权归呆呆所有,转发请注明出处! 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公式,见谅~~~

原理就是wiki了

最小二乘法

猜你喜欢

转载自blog.csdn.net/zhangyu4863/article/details/81844989