科研必備:MATLAB常用數據擬合方法(贈安裝包)

2021-01-18 鴕鳥博士

Matlab是一個很強大的數據處理軟體,是人們進行數據分析的得力助手。一般我們做社會調研或科學研究時,會得到很多實驗數據。當需要研究兩個或多個變量之間的關係時,經常要用到曲線擬合。曲線擬合不僅能給出擬合後的關係式,還能用圖形直觀的展現出變量之間的關係。下面小編介紹一下自己常用的擬合方法並分享案例程序。

對於比較簡單的數據擬合,小編推薦直接用Excel,Origin或者Matlab的cftool工具箱,這個比較簡單,就不多介紹了,接下來主要分享對於複雜一些的的數據的擬合辦法。

1,已知函數的形式,要求函數係數,直接fittype走起.

示例:已知兩組數據x=[0 0.4 1.2 2 2.8 3.6 4.4 5.2 6 7.2 8 9.2 10.4 11.6 12.4 13.6 14.415]';

y=[10.85 0.29 -0.27 -0.53 -0.4 -0.12 0.17 0.28 0.15 -0.03 -0.15 -0.071 0.059 0.080.032 -0.015 -0.02]';和數據符合的公式:



我們可以通過以下程序來擬合出a,w 和t的值(首先在命令窗口輸入x,y):

symst

f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'});

cfun=fit(x,y,f)%顯示擬合函數,數據必須為列向量形式

xi=0:0.1:20;

yi=cfun(xi);

figure

plot(x,y,'r*',xi,yi,'b-');

title('擬合函數圖形');

得到的結果如下:

cfun =

     General model:

     cfun(t) =a*cos(k*t)*exp(w*t)

     Coefficients(with 95% confidence bounds):

       a =      0.9987 (0.9836, 1.014)

       k =       1.001 (0.9958, 1.006)

       w =     -0.2066 (-0.2131, -0.2002)

 


2,線性多元,常用regress.

示例:m=[234 237 239 280 290]

x=[3.133.15 3.18 3.19 3.23]

y=[87.589.6 94.5 99.5 104.6]

做m=ax+by+c的二元擬合.

我們可以通過以下程序來擬合出a,b 和c的值:

m=[234237 239 280 290]; 

x=[3.133.15 3.18 3.19 3.23]; 

y=[87.589.6 94.5 99.5 104.6]; 

t=[ones(size(x,2),1),x',y'];%這裡的size(x,2)代表求x向量的列數,注意一定要在前面加上一列全為1,t=[x1,x2,x3]若x1,x2,x3行數相等則表示著將這幾行橫著拼起來 

b=regress(m',t)%原來m是行向量,轉化為列向量

得到的結果如下:

b =

    2.8346

   -1.0960

0.0095

其中b(1),b(2),b(2)分別對應c,a,b的值。如果想得出直觀的圖形,可以在以上程序下接:

[x,y]=meshgrid([-10:0.1:10]); 

z=b(1)+x.*b(2)+y.*b(3); 

surf(x,y,z); 

得到如下圖:


3,如果非線性(最好還是一元),常用polyfit.

示例:x=[0   0.3000   0.6000  0.9000   1.2000   1.5000  1.8000   2.1000   2.4000   2.7000   3.0000]

y=[2.0000   2.3780  3.9440   7.3460  13.2320 22.2500  35.0480  52.2740  74.5760  102.6020  137.0000]

對其進行多項式擬合。

首先,如果知道其階數,例如3階,我們可以直接

y1=polyfit(x,y,3),回車

我們會看到下面結果:

y1 =

4.0000    3.0000   0.0000    2.0000

如果不知道階數,可以先求階數,具體實現代碼如下:

fori=1:5

    y2=polyfit(x,y,i);

    Y=polyval(y2,x);%計算擬合函數在x處的值。

    if sum((Y-y).^2)<0.1

     

        c=i 

        break;

    end

end

運行以上程序,結果如下:

c=3


掃碼關注「碩博路人生路」 發送"matlab"獲取matlab安裝包

既有技術(Ansys/Solidworks/CAD/ Comsol/ Viso/Matlab等等)的交流,又有經驗(論文寫作/SCI投稿/碩博求學經歷/創業/出國留學/求職招聘等等)的分享,還有人生的思考。期待加入碩博路的大家庭,讓我們共度人生路。



相關焦點

  • Matlab軟體包及安裝
    數據處理時,使用商業軟體,必須進行重複的步驟;而使用代碼編程,幾行就可以解決。因此,進行Matlab的學習是十分必要的,對於我們進一步的深造學習十分有幫助!那今天我就詳細講解一下,如何進行Matlab的安裝?
  • 應用matlab進行多項式擬合
    採用matlab軟體中的polyfit()函數進行多項式擬合,分別採用5階多項式和9階多項式進行擬合,並對擬合結果進行繪圖對比。程序如下:clc;clear all;x=[0.2 0.3 0.5 0.6 0.8 0.9 1.2 1.3 1.5 1.8];y=[1 2 3 5 6 7 6 5 4 1 ]; p5=polyfit(x,y,5); %5階多項式擬合y5=polyval(p5,x);p5=vpa(poly2sym(p5
  • MATLAB R2020a中文破解版 附安裝破解教程
    該軟體常用於機器人、數據分析、無線通信、深度學習、信號處理、計算機視覺等眾多領域之中,深厚上百萬科學家和工程師的信賴,提供了科學數據可視化、矩陣計算、數值分析、繪製函數、數據圖像、實時編輯器等實用的功能於一體,能夠幫助設計人員更快更好的完成設計上的工作,還支持C、C++、Python編寫的程序接口,並能在上述程式語言中設計和構建用戶界面。
  • 線性擬合與曲線擬合,直接在圖上添加擬合曲線、擬合方程、判別係數...
    1、什麼是線性擬合?線性擬合,顧名思義,針對兩組數據或多組數據,找出一條最佳擬合直線,常用於處理與自變量呈線性關係的因變量。線性擬合是數據處理的常用方法,擬合的目的是對呈現一定數值關係的因變量與自變量找出最佳擬合方程,一般用線性回歸來實現。
  • 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實現
    感謝關注matlab愛好者公眾號!如果公眾號文章對您有幫助,別忘了點擊分享和「在看」哦!
  • 科研作圖之光譜圖繪製(matlab版)
    之前給大家介紹過一期有關如何用origin繪製光譜圖(科研作圖之光譜圖繪製),有小夥伴在公眾號中回復希望能通過matlab作出這樣的光譜圖,本期就來介紹如何通過matlab實現光譜圖繪製。matlab繪製原理和origin繪製原理是一樣的,先繪製全範圍波長RGB圖,再在該圖上疊加實驗數據曲線。
  • 【科研方法13】電化學阻抗譜(EIS)相關知識及數據處理
    常用的電化學阻抗譜有兩種:一種叫做奈奎斯特圖(Nyquist plot), 一種叫做波特圖(Bode plot)。EIS分析常用的方法:等效電路曲線擬合法第一步:實驗測定EIS。如果擬合的很好,則說明這個等效電路有可能是該系統的等效電路。
  • 冪律分布擬合方法
    (maximum likelihood estimators)對連續或者非連續的數據進行參數估計(α)【對於離散數據】需要注意的是該方法並不會提示我們擬合結果是錯誤的,僅僅會返回對於數據的最佳擬合結果,並不會判斷冪律分布模型是否是對數據最佳的擬合模型,我們還需要後續的擬合檢驗。
  • ...與曲線擬合,直接在圖上添加擬合曲線、擬合方程、判別係數R2和P值
    1、什麼是線性擬合?線性擬合,顧名思義,針對兩組數據或多組數據,找出一條最佳擬合直線,常用於處理與自變量呈線性關係的因變量。線性擬合是數據處理的常用方法,擬合的目的是對呈現一定數值關係的因變量與自變量找出最佳擬合方程,一般用線性回歸來實現。2、什麼是曲線擬合?
  • 9種常用數據分析方法
    數據分析是從數據中提取有價值信息的過程,過程中需要對數據進行各種處理和歸類,只有掌握了正確的數據分類方法和數據處理模式,才能起到事半功倍的效果,以下是數據分析員必備的9種數據分析思維模式:回歸回歸是一種運用廣泛的統計分析方法,可以通過規定因變量和自變量來確定變量之間的因果關係,建立回歸模型,並根據實測數據來求解模型的各參數,然後評價回歸模型是否能夠很好的擬合實測數據,如果能夠很好的擬合,則可以根據自變量作進一步預測。3.
  • 原創案例:Matlab多元線性回歸分析-逐步回歸
    在多元線性回歸分析中,逐步回歸法是對多個變量進行分析的有效方法。逐步回歸的基本思想是逐個引入自變量,保留影響顯著的變量,剔除影響不顯著的變量,最終使得回歸方程擬合度趨於完美。有氧鍛鍊人中的耗氧能力y(ml/(min*kg))是衡量身體狀況的重要指標,可能與下列指標有關:年齡x1,體重x2(kg),1500m測試用時x3(min),靜止時心速x4(次/min),跑步後心速x5(次/min),對24名40至57歲志願者進行了測試,結果如下(由於數據較多,不便羅列),建立耗氧能力與諸因素的回歸模型。
  • MATLAB數據擬合工具在數學建模中的簡單應用
    1.問題描述下表是由中國國家統計局提供的《50個城市主要食品平均價格變動情況》整理得到的2016年1月到5月豆角價格數據表,請建立數學模型解決下來兩個問題:(1)豆角價格有什麼特點?(2)對6月份豆角價格變化情況進行預測。
  • matlab符號微積分及應用舉例
    上述的方法可以用來解決函數極限相關的問題,一般在研究相關問題時,可以做出函數的圖像,更直觀的反應出極限值。 例、求當x趨於0時,函數y=sin(x^2)exp(x)的值,並會出相應圖像觀察。 exp(x)表示e^x.
  • 【科研方法】XPS Peak軟體擬合,僅需7步!
    進行擬合,觀察擬合後總峰與原始峰的重合情況,如不好,可多次點Optimise All。點擊Data中的Export(spetrum),可將擬合好的數據存為.dat格式的ASCII文件(該文件可用記事本打開),然後再Origin中導入該ASCII文件,可得到一個包含多列的數據表,這裡需要注意的是每列的抬頭名稱出錯(如.dat文件中的Raw Intensity分開到兩列中作為兩列的抬頭,即Raw、Intensity),這時需要根據做出的圖與.xps原始譜圖比較,更改每列的名稱,即可得到正確的譜圖
  • [案例乾貨]光電效應實驗的實驗數據處理:MATLAB方法
    現今科研工作對於實驗數據處理的要求越來越高,測定的數據點也越來越多,採用計算機編程對於實驗數據擬合處理能為實驗後期工作錦上添花。在這裡我們採用MATLAB對光電效應的普朗克常數測定(線性問題)所得的實驗數據進行擬合。
  • 電氣人常用軟體大全,附軟體安裝包!
    電氣人必備什麼電氣軟體呢? 提供各種常用的電路元件符號,用戶可以直接調用,幫助用戶輕鬆繪製電路圖,並可以模擬操作,支持單步模擬,可以連接到E/S(PLC),已經完成,全中文操作界面,更適合國內用戶。
  • 論文常用數據分析方法分類總結-4
    論文常用數據分析方法分類總結-2論文常用數據分析方法分類總結-316.平均值和求和也是信息濃縮的常用方法,比如要將多個題項合併成一個變量,可通過求平均值概括成一個題項。當數據不滿足正態,存在極端值時,可用中位數代替平均值。18.
  • 「C」使用 Excel 和 Math.Net 進行曲線擬合和數據預測
    即使把其中看起來最好的一組數據拿出來使用多項式擬合,也可以看出最後幾個點沒有落在擬合曲線上(只擬合最後 14 個點):雖然我知道這是硬體問題,但是遇到事情不能坐以待斃,軟體方面也許可以做些什麼。既然我從上圖中得知出了最後幾個點之外,其它數據都在擬合曲線上,那我可以使用前面幾個點的擬合結果預測後面幾個點並替換掉出錯的數據,從而得到一組看起來正常的數據。2.