0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在單片機(jī)上做插值算法?

Q4MP_gh_c472c21 ? 來源:21ic論壇 ? 作者:一路向北lm ? 2021-01-26 10:14 ? 次閱讀

第一步:學(xué)你所學(xué),不懂也得懂,最枯燥的數(shù)學(xué)公式來了

在數(shù)值分析中,拉格朗日插值法是以法國十八世紀(jì)數(shù)學(xué)家約瑟夫·拉格朗日命名的一種多項(xiàng)式插值方法。許多實(shí)際問題中都用函數(shù)來表示某種內(nèi)在聯(lián)系或規(guī)律,而不少函數(shù)都只能通過實(shí)驗(yàn)和觀測來了解。 如對實(shí)踐中的某個(gè)物理量進(jìn)行觀測,在若干個(gè)不同的地方得到相應(yīng)的觀測值,拉格朗日插值法可以找到一個(gè)多項(xiàng)式,其恰好在各個(gè)觀測的點(diǎn)取到觀測到的值。這樣的多項(xiàng)式稱為拉格朗日(插值)多項(xiàng)式。 數(shù)學(xué)上來說,拉格朗日插值法可以給出一個(gè)恰好穿過二維平面上若干個(gè)已知點(diǎn)的多項(xiàng)式函數(shù)。拉格朗日插值法最早被英國數(shù)學(xué)家愛德華·華林于1779年發(fā)現(xiàn),不久后(1783年)由萊昂哈德·歐拉再次發(fā)現(xiàn)。1795年,拉格朗日在其著作《師范學(xué)校數(shù)學(xué)基礎(chǔ)教程》中發(fā)表了這個(gè)插值方法,從此他的名字就和這個(gè)方法聯(lián)系在一起。

b6863858-5f63-11eb-8b86-12bb97331649.png



第二步:構(gòu)造拉格朗日插值算法函數(shù),并使用C/C++ 語言實(shí)現(xiàn)

b6d1732c-5f63-11eb-8b86-12bb97331649.png

//預(yù)先定義插值節(jié)點(diǎn)的個(gè)數(shù)為1000個(gè),根據(jù)控制臺輸入的個(gè)數(shù)num從而確定插值節(jié)點(diǎn)的個(gè)數(shù)const int N=1000;// 拉格朗日插值算法float lglr(float x[], float y[],int n,float t){float yResult=0.0;//LValue[N]存放的是每次求解的插值基函數(shù)的通項(xiàng)float LValue[N];//循環(huán)變量k,mint k,m;//插值基函數(shù)中的上下累乘temp1,temp2float temp1,temp2;for(k=0;k

b7335614-5f63-11eb-8b86-12bb97331649.png


2.同樣是給寫入的算法送入正弦曲線3個(gè)點(diǎn),來預(yù)測此區(qū)間的其它點(diǎn),發(fā)現(xiàn)預(yù)測出的正弦曲線不太理想,相關(guān)度很差。

b7882ec8-5f63-11eb-8b86-12bb97331649.png

3.增加給寫入的算法送入正弦曲線的點(diǎn)數(shù)到10個(gè)點(diǎn),來預(yù)測此區(qū)間的其它點(diǎn),發(fā)現(xiàn)預(yù)測出的正弦曲線已達(dá)到要求,相關(guān)度很好。

b7d45302-5f63-11eb-8b86-12bb97331649.png


4.下面是使用matlab在繪制的圖像,分別是線性3點(diǎn)、正弦3、5、10的和原始值對比的圖像。

b84918b8-5f63-11eb-8b86-12bb97331649.png



第四步:移植到單片機(jī)使用串口輸出測試插值效果,效果還可以哦!

b89679aa-5f63-11eb-8b86-12bb97331649.png



第四步:進(jìn)階完善,有點(diǎn)不甘心,使用Qt 搭了一個(gè)界面,做了一下可視化。 你別說效果還可以,Qt界面代碼 放到了gitee有興趣的來一起完善 https://gitee.com/lumengcode/my-qt/tree/master/MathTool/MathTool



插值題外話:

關(guān)于插值算法:可以繼續(xù)完善牛頓插值、三次樣條插值等,都很好玩!

原文標(biāo)題:教你在單片機(jī)上做插值算法

文章出處:【微信公眾號:嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6043

    文章

    44617

    瀏覽量

    638114
  • 插值算法
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    2053

原文標(biāo)題:教你在單片機(jī)上做插值算法

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    請問DAC39J84內(nèi)部方式是0嗎?

    請問DAC39J84內(nèi)部方式是0嗎? 請問2x 4x 8x 16x 過程分別是怎樣
    發(fā)表于 01-03 06:41

    Teledyne Lecroy示波器算法

    示波器是通過內(nèi)部硬件ADC對模擬信號采樣來獲取離散的數(shù)據(jù)點(diǎn),然而這些離散的數(shù)據(jù)點(diǎn)有時(shí)難以完整呈現(xiàn)出原始模擬信號的全貌。軟件算法的意義就在于,它能夠依據(jù)特定的數(shù)學(xué)算法,在已采集的數(shù)據(jù)
    的頭像 發(fā)表于 12-24 16:11 ?395次閱讀

    請問TPA3112D1的datasheet上的control system要連在單片機(jī)上嗎?

    請問TPA3112D1的datasheet上的control system 要連在單片機(jī)上嗎?AVCC是連在單片機(jī)上的某個(gè)引腳嗎?PVCC是連接電源嗎?附件是datasheet上給的參考電路圖。
    發(fā)表于 10-31 08:32

    TAS5711用GDE生成的EQ cfg配置文件怎么加載到單片機(jī)上?

    TAS5711 的用GDE 生成的EQcfg配置文件怎么加載到單片機(jī)上
    發(fā)表于 10-25 13:48

    基于51單片機(jī)的智能防火GSM上報(bào)仿真

    設(shè)定的報(bào)警時(shí),蜂鳴器響,相應(yīng)的指示燈亮;當(dāng)測得的溫度和煙霧同時(shí)超過報(bào)警時(shí),電機(jī)轉(zhuǎn)動(dòng),表示滅火; (4)報(bào)警時(shí),利用GSM模塊(仿真中無GSM模塊,用串口模擬)將測得的溫度與煙霧
    的頭像 發(fā)表于 10-21 11:48 ?278次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的智能防火GSM上報(bào)仿真

    單片機(jī)燒錄程序的線比單片機(jī)上的少還能燒錄嗎

    單片機(jī)燒錄原理 單片機(jī)燒錄是指將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)的存儲器中,使其能夠按照程序的指令運(yùn)行。這個(gè)過程通常需要使用燒錄器或者編程器等設(shè)備,通過一定的接口與單片機(jī)進(jìn)行
    的頭像 發(fā)表于 09-02 09:54 ?603次閱讀

    單片機(jī)上位機(jī)

    想學(xué)習(xí)手機(jī)控制單片機(jī)界面的設(shè)計(jì)方法,但是不知道用學(xué)哪個(gè)語言比較方便,有好的書籍推薦下
    發(fā)表于 08-23 07:51

    一個(gè)暑假如何學(xué)習(xí)單片機(jī)

    一個(gè)暑假是學(xué)習(xí)和掌握單片機(jī)基礎(chǔ)知識的良好時(shí)機(jī)。以下是一個(gè)關(guān)于如何在暑假期間學(xué)習(xí)單片機(jī)的建議計(jì)劃
    的頭像 發(fā)表于 07-03 09:19 ?578次閱讀
    一個(gè)暑假如何學(xué)習(xí)<b class='flag-5'>單片機(jī)</b>

    單片機(jī)上位機(jī)軟件用什么開發(fā)

    在開發(fā)單片機(jī)上位機(jī)軟件時(shí),選擇合適的開發(fā)工具和編程語言至關(guān)重要。本文將詳細(xì)介紹單片機(jī)上位機(jī)軟件開發(fā)的各個(gè)方面,包括開發(fā)環(huán)境、編程語言、界面設(shè)計(jì)、通信協(xié)議、調(diào)試與測試等。 1. 開發(fā)環(huán)境選擇 開發(fā)單片機(jī)上
    的頭像 發(fā)表于 06-07 09:17 ?1596次閱讀

    何在stvd中添加被人的庫使其編譯通過,正常調(diào)用?

    現(xiàn)有庫文件為“sm8”格式,請問一下,如何在stvd中添加被人的庫使其編譯通過,正常調(diào)用???? 庫文件是使用COSMIC_C V4.28編譯,想使用在STM8S105K6t6c單片機(jī)上。
    發(fā)表于 05-17 07:05

    何在labview FPGA端實(shí)現(xiàn)二維的功能?

    例如,現(xiàn)在有X,C,W三個(gè),每一組(X.C)對應(yīng)一個(gè)W,我擁有幾組(X,C)和W的對應(yīng)關(guān)系(即具體數(shù)值),我要根據(jù)未知的一組(X,C)來通過值得到W。其中X和C沒有對應(yīng)關(guān)系,請
    發(fā)表于 05-15 14:59

    請問stm8單片機(jī)上電后PC的變化是怎樣的?

    請問一下stm8單片機(jī)上電后,PC的變化是怎樣的?
    發(fā)表于 05-15 08:04

    關(guān)于單片機(jī)多路AD檢測之間的干擾問題求解

    )對電路中的兩個(gè)點(diǎn)電壓的AD檢測(采樣?)這兩個(gè)點(diǎn)電壓相差很大(不超過單片機(jī)測量的額定)。這個(gè)單片機(jī)采集的兩個(gè)結(jié)果會(huì)不會(huì)有干擾影響?
    發(fā)表于 05-10 08:27

    51單片機(jī)流水燈制作

    ?流水燈是學(xué)習(xí)51單片機(jī)的一個(gè)基本項(xiàng)目,是我們對單片機(jī)IO口輸出認(rèn)識的基本項(xiàng)目。當(dāng)然學(xué)會(huì)了花樣流水燈也很好玩。 下面就分享一種51單片機(jī)流水燈制作的方法。 一、流水燈原理圖 二、相關(guān)知識 1
    的頭像 發(fā)表于 02-26 10:06 ?1697次閱讀
    51<b class='flag-5'>單片機(jī)</b>流水燈制作

    單片機(jī)上用malloc()是個(gè)坑,有隱患?

    單片機(jī)研發(fā)前幾年,一直沒用過動(dòng)態(tài)內(nèi)存分配的功能,但是如果想成為軟件架構(gòu)設(shè)計(jì)師,這是繞不過的一道坎。
    的頭像 發(fā)表于 02-22 15:53 ?2496次閱讀
    <b class='flag-5'>單片機(jī)上</b>用malloc()是個(gè)坑,有隱患?