嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > Python实现最小二乘法

Python实现最小二乘法

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


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


相关代码如下:

# -*- coding: utf-8 -*-import numpy as np#import randomimport matplotlib.pyplot as pltfrom 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') #squareplot2 = plt.plot(x, yvals, 'r')plt.xlabel('x')plt.ylabel('y')plt.show()

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



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


往期推荐