最小二乘法相關(guān)知識,我把他分解成了四篇文章,第一篇是推導(dǎo)過 程 ,第二篇是 系數(shù)求解 ,第三篇是C語言實現(xiàn)二乘法(二次曲線)。有興趣可以看文章底部,往期推薦。
這篇文章是第四篇,主要是用Python驗證C語言實現(xiàn)二乘法的正確性,因為網(wǎng)絡(luò)上的文章錯綜復(fù)雜,復(fù)制粘貼有風(fēng)險,需要保證功能的正確性。
相關(guān)代碼如下:
# -*- coding: utf-8 -*-
import numpy as np
#import random
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
#自定義函數(shù)
def func(x, a, b, c):
return a + b*x + c*pow(x, 2)
#定義x、y散點坐標(biāo)
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里面是擬合系數(shù)
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()
上述代碼運行結(jié)果如下圖:
其中,藍(lán)色的矩形點是已知的坐標(biāo)點,而紅色的則是對已知坐標(biāo)點擬合而成二次曲線。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136841 -
最小二乘法
+關(guān)注
關(guān)注
0文章
22瀏覽量
8447
發(fā)布評論請先 登錄
相關(guān)推薦
FPGA怎么實現(xiàn)最小二乘法擬合直線呢?
特權(quán)老師你好用數(shù)字電路去實現(xiàn)最小二乘法的擬合直線‘缺少這方面的設(shè)計經(jīng)驗’有沒有相關(guān)的思路推薦‘或者相關(guān)資料介紹’謝謝!
發(fā)表于 05-18 20:04
講講遞推最小二乘法是什么
,正好沉浸下來,好好填填坑吧。1、遞推最小二乘法最小二乘法最早由高斯在形體運動軌道報告研究工作中提出,此后稱為參數(shù)辨識理論的基石,被廣泛應(yīng)用于系統(tǒng)辨識和參數(shù)估計之中,不得不感嘆數(shù)學(xué)家們的偉大,工程技術(shù)
發(fā)表于 08-27 07:15
淺析遞推最小二乘法
,正好沉浸下來,好好填填坑吧。1、遞推最小二乘法最小二乘法最早由高斯在形體運動軌道報告研究工作中提出,此后稱為參數(shù)辨識理論的基石,被廣泛應(yīng)用于系統(tǒng)辨識和參數(shù)估計之中,不得不感嘆數(shù)學(xué)家們的偉大,工程技術(shù)
發(fā)表于 08-27 06:20
遞歸最小二乘法
一、遞歸最小二乘法遞推最小二乘法:當(dāng)矩陣維數(shù)增加時,矩陣求逆運算計算量過大,而且不適合在線辨識。為了減少計算量,并且可以實時地辨識出動態(tài)系統(tǒng)的特性,可以將最小二乘法轉(zhuǎn)換成參數(shù)遞推的估計。取前N組數(shù)據(jù)
發(fā)表于 08-27 07:03
最小二乘法的原理是什么
在嵌入式的測量中可能存在某些無法被直接測量的變量,但可能可以通過幾個不同的數(shù)據(jù)指標(biāo)運算處理得到,這里介紹最小而成發(fā),最小二乘法適用于描述Y = AX + B的數(shù)據(jù),即尋找到最合適的一條通過X描述Y
發(fā)表于 01-11 07:05
基于最小二乘法的起重機機械臂關(guān)節(jié)控制系統(tǒng)
基于最小二乘法的起重機機械臂關(guān)節(jié)控制系統(tǒng)
發(fā)表于 06-19 16:29
?12次下載
評論