matlab根據(jù)數(shù)據(jù)擬合函數(shù) matlab怎么對(duì)數(shù)據(jù)進(jìn)行擬合
- 夕逆IT
- 數(shù)據(jù)庫(kù)
- 2023-08-13
- 389
各位老鐵們好,相信很多人對(duì)matlab根據(jù)數(shù)據(jù)擬合函數(shù)都不是特別的了解,因此呢,今天就來為大家分享下關(guān)于matlab根據(jù)數(shù)據(jù)擬合函數(shù)以及matlab怎么對(duì)數(shù)據(jù)進(jìn)行擬合的...
各位老鐵們好,相信很多人對(duì)matlab根據(jù)數(shù)據(jù)擬合函數(shù)都不是特別的了解,因此呢,今天就來為大家分享下關(guān)于matlab根據(jù)數(shù)據(jù)擬合函數(shù)以及matlab怎么對(duì)數(shù)據(jù)進(jìn)行擬合的問題知識(shí),還望可以幫助大家,解決大家的一些困惑,下面一起來看看吧!
不知道函數(shù)形式時(shí)如何用Matlab對(duì)數(shù)據(jù)擬合
1、根據(jù)x,y值,用plot()函數(shù)畫出圖形,
x=[...]
y=[...]
plot(x,y,'r-')
2、根據(jù)圖形的趨勢(shì),確定擬合函數(shù)方程(一般可與已知的圖形作對(duì)比),如
y=a1*x^3+a2*x^2+a3*x+a4
3、用inline()函數(shù)定義擬合函數(shù)
func=inline('a(1)*x^3+a(2)*x^2+a(3)*x+a(4)','a','x')
4、用nlinfit()函數(shù)或lsqcurvefit()函數(shù),求擬合系數(shù)a,
a=nlinfit(x,y,func,x0)
matlab怎么實(shí)現(xiàn)擬合外推
擬合外推就是將一個(gè)數(shù)據(jù)集上建立的模型應(yīng)用到另一個(gè)數(shù)據(jù)集上,可以先用matlab回歸函數(shù)建立前一數(shù)據(jù)集的線性關(guān)系模型,然后將此模型應(yīng)用到后一數(shù)據(jù)集上進(jìn)行預(yù)測(cè),便可實(shí)現(xiàn)擬合外推
matlab如何擬合數(shù)據(jù)得出函數(shù)
在MATLAB中,可以使用“擬合工具箱”來實(shí)現(xiàn)數(shù)據(jù)的擬合,通過給定一組數(shù)據(jù)點(diǎn),自動(dòng)計(jì)算出最佳擬合曲線或者多項(xiàng)式函數(shù)等。下面以擬合一組二維散點(diǎn)數(shù)據(jù)為例,介紹如何使用MATLAB進(jìn)行數(shù)據(jù)擬合:
假設(shè)我們有一組二維散點(diǎn)數(shù)據(jù)(x,y),需要對(duì)其進(jìn)行擬合。首先,將數(shù)據(jù)點(diǎn)存儲(chǔ)在兩個(gè)向量中,例如:
matlab
復(fù)制代碼
x=[123456];
y=[1.11.93.24.14.96.1];
接著,在MATLAB命令窗口輸入命令“cftool”,打開“擬合工具箱”。
在“擬合工具箱”中,可以選擇不同的擬合類型,例如多項(xiàng)式擬合、指數(shù)擬合、對(duì)數(shù)擬合等。這里以多項(xiàng)式擬合為例,選取“一元多項(xiàng)式擬合”。
在“一元多項(xiàng)式擬合”界面中,可以設(shè)定需要擬合的多項(xiàng)式的階數(shù)(即多項(xiàng)式次數(shù)),也可以手動(dòng)調(diào)節(jié)多項(xiàng)式系數(shù)(默認(rèn)多項(xiàng)式系數(shù)為0)。此處設(shè)置階數(shù)為2。
接下來,點(diǎn)擊“擬合”按鈕,可以得到擬合結(jié)果。擬合結(jié)果在“結(jié)果”窗口中顯示,包括多項(xiàng)式系數(shù)、R方值、擬合曲線等信息。此處得到的二次多項(xiàng)式擬合方程為:y=0.02634x^2+0.6369x+0.2047。
最后,可以在MATLAB命令窗口中使用這個(gè)擬合函數(shù)進(jìn)行預(yù)測(cè),例如:
matlab
復(fù)制代碼
x_test=7:0.1:10;
y_test=0.02634*x_test.^2+0.6369*x_test+0.2047;
plot(x,y,'o',x_test,y_test)
上述代碼畫出了原始散點(diǎn)數(shù)據(jù)和擬合曲線的圖像,可以通過調(diào)整擬合階數(shù)或者選擇不同的擬合類型來優(yōu)化擬合效果。
怎樣使用matlab做曲線擬合
方法一、用數(shù)據(jù)擬合工具箱CurveFittingTool
打開CFTOOL工具箱。在matlab的commandwindow中輸入cftool,即可進(jìn)入數(shù)據(jù)擬合工具箱。
輸入兩組向量x,y。
首先在Matlab的命令行輸入兩個(gè)向量,一個(gè)向量是你要的x坐標(biāo)的各個(gè)數(shù)據(jù),另外一個(gè)是你要的y坐標(biāo)的各個(gè)數(shù)據(jù)。輸入以后假定叫x向量與y向量,可以在workspace里面看見這兩個(gè)向量,要確保這兩個(gè)向量的元素?cái)?shù)一致,如果不一致的話是不能在工具箱里面進(jìn)行擬合的。
例如在命令行里輸入下列數(shù)據(jù):
x=[196,186,137,136,122,122,71,71,70,33];
y=[0.012605;0.013115;0.016866;0.014741;0.022353;0.019278;0.041803;0.038026;0.038128;0.088196];
數(shù)據(jù)的選取。打開曲線擬合共工具界面,點(diǎn)擊最左邊的Xdata和Ydata,選擇剛才輸入的數(shù)據(jù),這時(shí)界面中會(huì)出現(xiàn)這組數(shù)據(jù)的散點(diǎn)圖。
選擇擬合方法,點(diǎn)擊Fit
左側(cè)results為擬合結(jié)果,下方表格為誤差等統(tǒng)計(jì)數(shù)據(jù)。
方法二、用神經(jīng)網(wǎng)絡(luò)工具箱
1、打開神經(jīng)網(wǎng)絡(luò)工具箱,在commandwindow內(nèi)輸入nftool,進(jìn)入Neuralfittingtool
2、導(dǎo)入數(shù)據(jù),點(diǎn)擊next,導(dǎo)入Inputs為x,Targets為y。
3、選擇網(wǎng)絡(luò)參數(shù),點(diǎn)擊next,選擇訓(xùn)練集和測(cè)試集數(shù)量,點(diǎn)next,選隱藏層節(jié)點(diǎn)個(gè)數(shù)。
4、訓(xùn)練數(shù)據(jù),點(diǎn)next,選train。
5、繪制擬合曲線,訓(xùn)練完成后電機(jī)plotfit
訓(xùn)練結(jié)果參數(shù)在訓(xùn)練完后自動(dòng)彈出
神經(jīng)網(wǎng)絡(luò)工具箱可以用command寫,請(qǐng)搜索關(guān)鍵字matlab神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)。
方法三、用polyfit函數(shù)寫
polyfit函數(shù)是matlab中用于進(jìn)行曲線擬合的一個(gè)函數(shù)。其數(shù)學(xué)基礎(chǔ)是最小二乘法曲線擬合原理。曲線擬合:已知離散點(diǎn)上的數(shù)據(jù)集,即已知在點(diǎn)集上的函數(shù)值,構(gòu)造一個(gè)解析函數(shù)(其圖形為一曲線)使在原離散點(diǎn)上盡可能接近給定的值。
調(diào)用方法:a=polyfit(xdata,ydata,n),
其中n表示多項(xiàng)式的最高階數(shù),xdata,ydata為將要擬合的數(shù)據(jù),它是用數(shù)組的方式輸入。輸出參數(shù)a為擬合多項(xiàng)式y(tǒng)=a1x^n+...+anx+a,共n+1個(gè)系數(shù)。
%例程A=polyfit(x,y,2);z=polyval(A,x);plot(x,y,'r*',x,z,'b')
方法四、自行寫算法做擬合
請(qǐng)參考數(shù)值分析教科書,擬合、插值方法較多,算法并不復(fù)雜,靈活套用循環(huán)即可
如何用matlab數(shù)據(jù)擬合函數(shù)
在matlab中根據(jù)擬合圖得到函數(shù)步驟如下:
1、常用的模型有多項(xiàng)式模型、冪函數(shù)模型、指數(shù)函數(shù)模型等。
2、設(shè)出函數(shù),用命令“plot”繪出圖像作為對(duì)比。
3、準(zhǔn)備好散點(diǎn)數(shù)據(jù),用命令“plot”繪出散點(diǎn)作為對(duì)比。
4、調(diào)用函數(shù)“fit”,參數(shù)包括散點(diǎn)數(shù)據(jù)和曲線擬合模型。
5、按回車鍵即可完成曲線擬合,p1、p2、p3為多項(xiàng)式前面的系數(shù)。
matlab二元函數(shù)擬合
設(shè)擬合的2元2次方程為
f(x,y)=b1*x2+b2*x*y+b3*y2+b4*x+b5*y+b6
用Matlab的regress()函數(shù)擬合,也可以用自定義函數(shù)擬合。regress()函數(shù)命令格式為
[B,BINT,R,RINT,STATS]=REGRESS(Y,X)
B——參數(shù)估計(jì)值,擬合函數(shù)系數(shù)
BINT——B的置信區(qū)間
R——?dú)埐钕蛄?,測(cè)試值與擬合值的差值
RINT——R的置信區(qū)間
STATS——檢驗(yàn)統(tǒng)計(jì)量,置信度、F統(tǒng)計(jì)量,p值
Y——因變量觀察值
X——自變量觀察值
根據(jù)提供的數(shù)據(jù),通過擬合得
B1=0
B2=-1734024.851
B3=-31661318.71
B4=3785724.073
B5=9670754.012
B6=-512586.098
好了,關(guān)于matlab根據(jù)數(shù)據(jù)擬合函數(shù)和matlab怎么對(duì)數(shù)據(jù)進(jìn)行擬合的問題到這里結(jié)束啦,希望可以解決您的問題哈!
本文鏈接:http://xinin56.com/su/814.html