Python实现最小二乘法是什么

描述

最小二乘法相关知识,我把他分解成了四篇文章,第一篇是推导过 ,第二篇是 系数求解 ,第三篇是C语言实现二乘法(二次曲线)。有兴趣可以看文章底部,往期推荐。

这篇文章是第四篇,主要是用Python验证C语言实现二乘法的正确性,因为网络上的文章错综复杂,复制粘贴有风险,需要保证功能的正确性。

相关代码如下:

# -*- coding: utf-8 -*-
import numpy as np
#import random
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

#自定义函数
def func(x, a, b, c):
    return a + b*x + c*pow(x, 2)

#定义x、y散点坐标
x = np.array([0,2,4,6,8,10])
y = np.array([0,9,24,42,76,118])
#非线性最小二乘法拟合
popt, pcov = curve_fit(func, x, y)
#获取popt里面是拟合系数
a = popt[0] 
b = popt[1]
c = popt[2]
yvals = func(x, a, b, c) #拟合y值
print('a:', a)
print('b:', b)
print('c:', c)
#绘图
plot1 = plt.plot(x, y, 's') #square
plot2 = plt.plot(x, yvals, 'r')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

上述代码运行结果如下图:

最小二乘法

其中,蓝色的矩形点是已知的坐标点,而红色的则是对已知坐标点拟合而成二次曲线。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分