最小二乘法相關知識,我把他分解成了四篇文章,第一篇是推導過 程 ,第二篇是 系數求解 ,第三篇是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()
上述代碼運行結果如下圖:
其中,藍色的矩形點是已知的坐標點,而紅色的則是對已知坐標點擬合而成二次曲線。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
180文章
7604瀏覽量
136692 -
最小二乘法
+關注
關注
0文章
22瀏覽量
8446
發布評論請先 登錄
相關推薦
講講遞推最小二乘法是什么
,正好沉浸下來,好好填填坑吧。1、遞推最小二乘法最小二乘法最早由高斯在形體運動軌道報告研究工作中提出,此后稱為參數辨識理論的基石,被廣泛應用于系統辨識和參數估計之中,不得不感嘆數學家們的偉大,工程技術
發表于 08-27 07:15
淺析遞推最小二乘法
,正好沉浸下來,好好填填坑吧。1、遞推最小二乘法最小二乘法最早由高斯在形體運動軌道報告研究工作中提出,此后稱為參數辨識理論的基石,被廣泛應用于系統辨識和參數估計之中,不得不感嘆數學家們的偉大,工程技術
發表于 08-27 06:20
遞歸最小二乘法
一、遞歸最小二乘法遞推最小二乘法:當矩陣維數增加時,矩陣求逆運算計算量過大,而且不適合在線辨識。為了減少計算量,并且可以實時地辨識出動態系統的特性,可以將最小二乘法轉換成參數遞推的估計。取前N組數據
發表于 08-27 07:03
最小二乘法的原理是什么
在嵌入式的測量中可能存在某些無法被直接測量的變量,但可能可以通過幾個不同的數據指標運算處理得到,這里介紹最小而成發,最小二乘法適用于描述Y = AX + B的數據,即尋找到最合適的一條通過X描述Y
發表于 01-11 07:05
評論