SG平滑演算法(又稱多項式平滑演算法)
今天是平安夜,閒來無事,那就來寫一下SG平滑演算法吧!
SG平滑演算法是由Savizkg和Golag提出來的。基於最小二乘原理的多項式平滑演算法,也稱卷積平滑。為啥叫多項式平滑呢?且看下去。
下面使用五點平滑演算法來說明平滑過程
原理很簡單如圖:
把光譜一段區間的等波長間隔的5個點記為X集合,多項式平滑就是利用在波長點為Xm-2,Xm-1,Xm,Xm+1,Xm+2的資料的多項式擬合值來取代Xm,,然後依次移動,直到把光譜遍歷完。
首先推五點二次平滑公式,m=2,k= 3
由上式可得
再由公式計算B矩陣得
所以5個平滑公式如圖
其他什麼7點3次,9點3次,同理可以推導求解。下次補上C++程式碼,+——+溜了 歡迎留言交流。。
相關推薦
SG平滑演算法(又稱多項式平滑演算法)
今天是平安夜,閒來無事,那就來寫一下SG平滑演算法吧! SG平滑演算法是由Savizkg和Golag提出來的。基於最小二乘原理的多項式平滑演算法,也稱卷積平滑。為啥叫多項式平滑呢?且看下去。 下面使用五點平滑演算法來說明平滑過程 原理很簡單如圖: 把光譜一段區間的等
演算法之路(四)----漢諾塔(又稱河內之塔)
漢諾塔是很簡單也很經典的演算法之一。 漢諾塔是根據一個傳說形成的數學問題: 有三根杆子A,B,C 。A杆上有N個(N>1)穿孔圓盤,盤的尺寸由下到上依次變小。要求按下列規則將所有圓盤移至C杆: * 1 每次只能移動一個圓盤; * 2 大盤不能疊在小盤上面。 提示:可將圓
查找算法 - 折半查找(又稱二分查找)
source arch 缺點 頻繁 span return 順序 代碼實現 困難 簡介 折半查找(Binary Search),又稱為二分查找。前提是線性表中的記錄必須是 關鍵碼有序,線性表必須采用 順序存儲。 基本思想 在有序表中,取中間記錄作為比較對象,若給定值與中間記
《演算法競賽入門經典》一破損的鍵盤(又名:悲劇文字)(Broken Keyboard)
問題描述: 你有一個破損的鍵盤。鍵盤上所有的鍵都可以正常工作,但有時候Home鍵或者End鍵會自動按下。你並不知道鍵盤存在這一問題,而是專心打稿子,甚至連顯示器都沒開啟。當你開啟顯示器後,展現在你面前的是一段悲劇文字。你的任務是在開啟
圖形使用者介面(Graphical User Interface,簡稱 GUI,又稱圖形使用者介面)
圖形使用者介面(Graphical User Interface,簡稱 GUI,又稱圖形使用者介面)是指採用圖形方式顯示的計算機操作使用者介面。與早期計算機使用的命令列介面相比,圖形介面對於使用者來說在視覺上更易於接受。 如Windows是以圖形介面方式操作的,因為你可以
設計模式-外觀模式(又稱門面模式)
外觀模式 定義 為子系統中的一組介面提供一個一致的介面,此模式定義了一個高層介面,此介面使得子系統更加容易使用。 類圖 結構 子系統類(subsystem):實現子系統的功能,處理facade物件指派的任務。 package com.headfirst.fac
中國剩餘定理(又稱 孫子定理)
部落格圖片都飛了,所以看的時候請多多擔待。 中國剩餘定理是數論中的一個關於一元線性同餘方程組的定理,說明了一元線性同餘方程組有解的準則以及求解方法。也稱為孫子定理。 本文大部分使用的內容來自維基百科。 中國剩餘定理說明: 題意:給出你n個ai和mi,最後讓求出
對一個字元按bit位逆序(又稱反轉)
題目要求如題所示:將一個字元按bit位逆序,例如一個位元組是0x11,將其逆序後就變成0x88。下面是四種解法,其中最後一種效率最高,是從《Hacker's Delight》這本書中學來的。第一種:看似創新,其實最笨的做法。使用bit型別,程式碼不夠簡潔,執行效率較低,並且擴
加密演算法(MD5、RSA、AES)
加密技術通常分為兩大類:"對稱式"和"非對稱式"。 對稱性加密演算法:對稱式加密就是加密和解密使用同一個金鑰。資訊接收雙方都需事先知道密匙和加解密演算法且其密匙是相同的,之後便是對資料進行加解密了。對稱加密演算法用來對敏感資料等資訊進行加密。 非對稱演算法:非對稱式加密就是加密和解密所使用的
《資料結構與演算法》之排序演算法(氣泡排序、選擇排序)
排序(Sorting) 是計算機程式設計中的一種重要操作,它的功能是將一個數據元素(或記錄)的任意序列,重新排列成一個關鍵字有序的序列。 排序演算法分類: 一、非線性時間比較類排序 1、交換排序(氣泡排序、快速排序) 2、插入排序(簡單插入排序、布林排序) 3、選擇排序(簡單選擇
有關串的模式匹配問題中的kmp演算法(俗稱 看毛片演算法)
========前言====== 最近準備考研,於是重新拾起資料結構這本書(嚴老師的) 對於之前的看毛片演算法想用自己的方式重新總結一下 ========沒有這方面基礎的先看 這個網址 (該網址為百度百科 本人只分享跟連結 若有其他影響本人概不負責)
Python中的k—近鄰演算法(處理常見的分類問題)
最近買了一本機器學習的書,書名叫《機器學習實戰》,剛學了第一個演算法,k—近鄰演算法,所以寫篇部落格分享一下。 那麼開始,我們假設平面座標系上面有四個座標點,座標分別是 [1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1] 然後這四個點有兩個
字串匹配的三個演算法(KMP+字典樹+AC自動機)
字串匹配的意思是給一個字串集合,和另一個字串集合,看這兩個集合交集是多少。 (1)若是都只有一個字串,那麼就看其中一個是否包含另外一個(一對一,KMP) https://blog.csdn.net/fkyyly/article/details/48007965 (2)若是父串集合(比較長
Boosting演算法(GBDT,XGBoost,LightGBM)
1. 引言 提升(Boosting)是一種機器學習技術,可以用於迴歸和分類問題,它每一步產生一個弱預測模型(如決策樹),並加權累加到總模型中加權累加到總模型中;如果每一步的弱預測模型生成都是依據損失函式的梯度方向,則稱之為梯度提升(Gradient Boosting)。 梯度提升演算法首
OpenCV邊緣檢測三種演算法(canny、sobel、laplacian)
Canny演算法 #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> using namespace std; using namespace cv; //邊緣檢測 int mai
迪傑斯特拉演算法(可列印最短路徑)(資料結構題集C語言版7.11)
轉自 https://blog.csdn.net/cxllyg/article/details/7604812 #include <iostream> #include <iomanip> #include <string> usi
W3Cschool中級指令碼演算法(15.最小公倍數演算法挑戰)
最小公倍數演算法挑戰 問題: 找到所提供引數的最小公倍數,這兩個引數可以均勻分配,以及這些引數之間範圍內的所有最小公倍數。 範圍是兩個數字構成的陣列,兩個數字不一定按數字順序排序。 例如對 1 和 3 —— 找出能被 1 和 3 和它們之間所有數字整除的最小公倍數。
manacher演算法(最長迴文串)
這是建立部落格記錄的第一個程式碼。 題目解釋: 子串:小於等於原字串長度由原字串中任意個連續字元組成的子序列 迴文:關於中間字元對稱的文法,即“aba”(單核)、“cabbac”(雙核)等 最長迴文子串:1.尋找回文子串;2.該子串是迴文子串中
W3Cschool高階指令碼演算法(1.判斷電話號碼演算法挑戰)
判斷電話號碼演算法挑戰 問題: 如果傳入字串是一個有效的美國電話號碼,則返回 true. 要求: telephoneCheck("555-555-5555") 應該返回一個布林值. telephoneCheck("1 555-555-5555") 應該返回 true
W3Cschool高階指令碼演算法(3.收銀系統演算法挑戰)
收銀系統演算法挑戰 問題: 設計一個收銀程式 checkCashRegister() ,其把購買價格(price)作為第一個引數 , 付款金額 (cash)作為第二個引數, 和收銀機中零錢 (cid) 作為第三個引數. cid 是一個二維陣列,存著當前可用的找零. 當