數據分析中的插值與擬合(3) —— 基於Matlab的實現

2021-03-02 模擬在線

本文將簡單介紹基於Matlab的實現,主要介紹兩個函數:需要指出的是,Matlab有多個自帶函數可以解決類似的問題;本文僅簡要介紹最常用的函數及其基本參數設置;其他函數以及更深入的內容可參見幫助。yq= interp1(x, y, xq, method, extrapolation)xq為需要預測的自變量序列,yq為相對應預測的變量序列;method為插值方法,主要包括鄰近、線性、三次、三次樣條等;
clearclc% 插值x = 0:pi/4:2*pi;y = sin(x);xq = 0:pi/10:2*pi;figureyq1 =interp1(x,y,xq);           % 線性yq2 =interp1(x,y,xq,'nearest');    % 鄰近yq3 =interp1(x,y,xq,'spline');     % 三次樣條subplot(3,1,1);plot(x,y,'ro',xq,yq1,'r-*','LineWidth',1);xlim([0 2*pi]);subplot(3,1,2);plot(x,y,'ro',xq,yq2,'r-*','LineWidth',1);xlim([0 2*pi]);subplot(3,1,3);plot(x,y,'ro',xq,yq3,'r-*','LineWidth',1);xlim([0 2*pi]);

[fitobject,gof, output] = fit(x, y, fitType, fitOptions)fitType為擬合函數的類型,主要包括線性、二次、樣條、自定義函數等;fitOptions為擬合的設置,內容較多,可參閱幫助;fitobject為擬合的結果,包括擬合的曲線(面),參數的置信區間等;gof為一些統計信息,主要為誤差信息,如RMSE等;
clearclc% 擬合figureN = 20;x =linspace(-2,2,N);x = x';r =0.25*randn(N,1);y = x.^4+r;             % 原方程subplot(1,3,1);f1 =fit(x,y,'poly1');          % 線性plot(f1,x,y,'o');legend(subplot(1,3,1),'off');subplot(1,3,2);f2 =fit(x,y,'poly2');          % 二次plot(f2,x,y,'o');legend(subplot(1,3,2),'off');subplot(1,3,3);guassEqn ='a*x^4+b*x^3+c*x^2+d*x+e';      % 自定義函數startP = [0.5 0.50.5 0.5 0.5];            % 初值[f3,gof,output] =fit(x,y,guassEqn,'Start',startP);  % 自定義函數擬合plot(f3,x,y,'o');legend(subplot(1,3,3),'off');

gof =sse: 1.2098rsquare: 0.9977dfe: 15adjrsquare: 0.9971rmse: 0.2840
output =numobs: 20numparam: 5residuals: [20x1 double]Jacobian: [20x5 double]exitflag: 1firstorderopt: 3.1844e-08iterations: 2funcCount: 18cgiterations: 0algorithm: 'trust-region-reflective'stepsize: 2.3681e-08         message: 'Success. Fitting convergedto a solution.'

本文介紹了插值與擬合在Matlab中基本使用方法,如有興趣的讀者可留言進一步討論相互學習。

作者:數聯科技工作室

聲明:首發數聯科技工作室公眾號(ID:DigitUnionTecHouse),部分圖片源自網絡,如有不當請聯繫我們,歡迎分享。

如果您正在學習CAE ,歡迎加入我們的學習型工程師社群,與我們抱團一起學習理論、軟體和行業應用。更多詳情請諮詢仿真小助手(在仿真秀公眾號對話框回復 小助手 備註 進群 即可

相關焦點

  • 數模筆記——數據的插值、擬合
    插值:用來填充圖像變換時像素之間的空隙。不需要函數表達式、一定通過所有數據點。 擬合:擬合問題的目標是尋求一個函數(曲線),使得該曲線在某種準則下與所有的數據點最為接近,即曲線擬合的最好(最小化損失函數)。必須有函數表達式、不一定通過所有數據點。
  • 數據擬合原理及MATLAB實現
    數據插值的特點是數據插值函數會嚴格過所有插值節點,而數據擬合只要求擬合函數合理地反映曲線趨勢,不要求必須過所有數據點。數據插值的用途是內部預測,即待預測點自變量在插值節點的自變量取值範圍之內。數據擬合則可以完成外部預測,比如已知前n天的數據,用來預測第n+1天的數據。
  • Matlab曲線擬合和插值
    1.函數擬合多項式函數擬合:a=polyfit(xdata,ydata,n)其中n表示多項式的最高階數,xdata,ydata為將要擬合的數據,它是用數組的方式輸入.輸出參數a為擬合多項式 y=a1xn+...+anx+a n+1的係數多項式在x處的值y可用下面程序計算.
  • MATLAB 蒙特卡洛方法編程並舉例分析
    函數matlab詳細介紹畫柱形圖matlab中矩陣的入門知識matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析Matlab的fmincon函數求解非線性規劃
  • 數學建模筆記——插值擬合模型(二)
    什麼是擬合 上篇文章中我們提到了插值,所謂插值,就是在已知有限個數據點而插值往往只使用多項式插值或者三角函數插值。一元線性擬合 之後我們來談一談擬合的原理,以一元線性擬合為例。cftool至多可以對三維數據進行擬合,默認狀態下,數據來自於工作區中的變量。
  • 強大的matlab數據科學擬合庫cftool——直接導入數據進行擬合
    對於使用過matlab做數據處理的人來說,擬合是將平面上一系列的點,用一條光滑的曲線連接起來。因為這條曲線有無數種可能,從而有各種擬合方法。擬合的曲線一般可以用函數表示,根據這個函數的不同有不同的擬合名字。
  • Matlab擬合詳解
    0.9*x.^2+10*x+20+rand(1,10).*5; % 產生測試數據plot(x,y,'o')  % 繪圖並標出原始數據點p=polyfit(x,y,2) p = 1×3      -0.7630    8.5343   25.9050
  • MATLAB曲線擬合及Fourier分析
    4.6  曲線擬合在上一節,已經介紹了數據插值,它要求原始數據是精確的,或具有較小的誤差。
  • Matlab基礎知識概述
    此舉結束了國際上數值計算、符號計算孰優孰劣的長期爭論,促成了兩種計算的互補發展新時代。(3)構造了Notebook ,MathWorks 公司瞄準應用範圍最廣的Word ,運用DDE 和OLE,實現了MATLAB與Word 的無縫連接,從而為專業科技工作者創造了融科學計算、圖形可視、文字處理於一體的高水準環境。
  • 曲線擬合/樣條插值的C++及MATLAB實現(三十四)
    -插值(Interpolation)插值是指:已知形狀點(Fit Point),求一條樣條曲線穿過所有的形狀點。插值是B樣條乃至CAGD應用中最常見的應用之一。本節,我將分享一種樣條曲線插值算法。我們的條件是,已知點集{ Fo, F...., Fx }共x+1個點,求樣條曲線通過上述所有點Fi。
  • MATLAB的ezplot函數繪製隱函數圖像
    matlab中矩陣的入門知識matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析Matlab的fmincon函數求解非線性規劃MATLAB線性規劃函數求解線性規劃
  • MATLAB二分法求方程的根(實例加程序)
    matlab中legend函數的用法matlab繪圖--線性規劃圖解法示意Matlab 進度條的製作Matlab對fig文件導出數據Matlab中plot函數全功能解析Matlab的fmincon函數求解非線性規劃MATLAB線性規劃函數求解線性規劃MATLAB求解混合整數線性規劃
  • matlab插值擬合(二)
    1 基於最小二乘法的多項式擬合函數:polyfitp = polyfit(x,y,n),待擬合的多項式為p(1)*x^n + p(2)*x^(n-1) +…+ p(n)*x + p(n+1),其中x是擬合數據的自變量,y是因變量,n是擬合多項式的階數,如當n為1時,即為一次線性擬合。
  • MATLAB數據擬合工具在數學建模中的簡單應用
    基於這點,描述物價水平的數學模型——經驗公式也應該具有周期性。我們不妨假設描述物價水平數學模型是一個周期函數,並且可以轉化為傅立葉級數。3.數學建模接下來看看,如何使用MATLAB的數據擬合工具解決該問題。
  • 基於標定和插值的壓裝系統誤差補償
    因此,本文在不改變原有半閉環方式的基礎上,提出了一種基於系統標定和插值的誤差補償方法。在工程實踐中,由於生產條件的複雜性,不可控因素的多樣性,採樣數據在局部的規律性較差,採用一般的插值方法在低次插值時準確度大大下降,而在高次插值時又會很大程度上增加算法的時間複雜度。因此,綜合考量工程實際對算法速度和精度的要求以及標定表格的數據特徵,選擇基於局部最小二乘的線性插值法。
  • 【科研心得】基於MATLAB的曲線擬合
    另外,Excel上繪製散點圖之後也可以快速進行曲線擬合併給出擬合優度R2,回歸係數或截距等參數,但是Excel在這裡並不能給出統計學檢驗,並且並不是很User-friendly,加之基於Excel的統計學分析則需要添加Data Analysis的插件才可以,另外SPSS其實也可以勝任各類統計學分析,但SPSS需要比較詳盡的設定才能run出比較合適的結果,並且它無法像MATLAB這樣可以做到一步步運算並讓用戶體會到計算思路
  • MATLAB基礎教程(xlsread和xlswrit函數+數據擬合+數值計算)
    ,首先是從Excel中讀取數據到MATLAB中去。xlswrite函數:        可以從MATLAB中寫入數據到Excel中去,下面給出要寫入數據:clearclcn=[1 2 3 4;5 6 7 8;9 10 11 12];xlswrite('fanjufei.xls',n,3,'B2:E4')
  • 【MATLAB】Chapter 5 數據分析
    T協方差定義為C(X) = E ((X − E(X)) (X − E(X)))T互協方差定義為C(X) = E ((X − E(X)) (𝑌 − 𝐸(𝑌)))在 MATLAB 中提供了 corr 函數可以用於相關分析,提供了 cov 函數用於協方差分析。
  • MATLAB萬能實用的非線性曲線擬合方法
    在科學計算和工程應用中,經常會遇到需要擬合一系列的離散數據,最近找了很多相關的文章方法,在這裡進行總結一下其中最完整、幾乎能解決所有離散參數非線性擬合的方法根據你的實際問題得到一系列的散點例如:根據上述的實際散點確定應該使用什麼樣的曲線,或者說是想要模擬的曲線
  • 基於FPGA實現的FFT插值正弦波頻率估計
    摘要:在分析雙線幅度法(Rife)、修正雙線幅度法(MRife)、傅立葉係數插值迭代3種算法的基礎上,結合FPGA的並行處理優勢,將迭代變為並行運算,由此得出了一種快速頻率估計算法。並將新算法進行FPGA設計,給出了算法流程圖。