matlab數據分析與插值函數和曲線擬合.ppt
《matlab數據分析與插值函數和曲線擬合.ppt》由會員分享,可在線閱讀,更多相關《matlab數據分析與插值函數和曲線擬合.ppt(35頁珍藏版)》請在裝配圖網上搜索。
2020/4/25,1,MATLAB數據分析,2020/4/25,2,數據統(tǒng)計處理數據插值曲線擬和,2020/4/25,3,1.1數據統(tǒng)計處理1.1.1最大值和最小值MATLAB提供的求數據序列的最大值和最小值的函數分別為max和min,兩個函數的調用格式和操作過程類似。1.求向量的最大值和最小值求一個向量X的最大值的函數有兩種調用格式,分別是:(1)y=max(X):返回向量X的最大值存入y,如果X中包含復數元素,則按模取最大值。,2020/4/25,4,(2)[y,I]=max(X):返回向量X的最大值存入y,最大值的序號存入I,如果X中包含復數元素,則按模取最大值。求向量X的最小值的函數是min(X),用法和max(X)完全相同。,例:求向量x的最大值。命令如下:x=[-43,72,9,15,23,47];y=max(x)%求向量x中的最大值[y,l]=max(x)%求向量x中的最大值及其該元素的位置,2020/4/25,5,2.求矩陣的最大值和最小值求矩陣A的最大值的函數有3種調用格式,分別是:(1)max(A):返回一個行向量,向量的第i個元素是矩陣A的第i列上的最大值。(2)[Y,U]=max(A):返回行向量Y和U,Y向量記錄A的每列的最大值,U向量記錄每列最大值的行號。,2020/4/25,6,(3)max(A,[],dim):dim取1或2。dim取1時,該函數和max(A)完全相同;dim取2時,該函數返回一個列向量,其第i個元素是A矩陣的第i行上的最大值。求最小值的函數是min,其用法和max完全相同。A=[816;357;462]max(A)[Y,U]=max(A),2020/4/25,7,3.兩個向量或矩陣對應元素的比較函數max和min還能對兩個同型的向量或矩陣進行比較,調用格式為:(1)U=max(A,B):A,B是兩個同型的向量或矩陣,結果U是與A,B同型的向量或矩陣,U的每個元素等于A,B對應元素的較大者。(2)U=max(A,n):n是一個標量,結果U是與A同型的向量或矩陣,U的每個元素等于A對應元素和n中的較大者。min函數的用法和max完全相同。A=[816;357;462],B=[453;816;837],U=max(A,B),U=max(A,5),2020/4/25,8,1.1.2求和與求積數據序列求和與求積的函數是sum和prod,其使用方法類似。設X是一個向量,A是一個矩陣,函數的調用格式為:sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘積。sum(A):返回一個行向量,其第i個元素是A的第i列的元素和。,2020/4/25,9,prod(A):返回一個行向量,其第i個元素是A的第i列的元素乘積。sum(A,dim):當dim為1時,該函數等同于sum(A);當dim為2時,返回一個列向量,其第i個元素是A的第i行的各元素之和。prod(A,dim):當dim為1時,該函數等同于prod(A);當dim為2時,返回一個列向量,其第i個元素是A的第i行的各元素乘積。,A=[816;357;462],X=[753],sum(X),prod(X),sum(A),prod(A),prod(A,2),,2020/4/25,10,2020/4/25,11,1.1.3平均值和中值求數據序列平均值的函數是mean,求數據序列中值的函數是median。兩個函數的調用格式為:mean(X):返回向量X的算術平均值。median(X):返回向量X的中值。mean(A):返回一個行向量,其第i個元素是A的第i列的算術平均值。median(A):返回一個行向量,其第i個元素是A的第i列的中值。median(A):當dim為1時,該函數等同于mean(A);當dim為2時,返回一個列向量,其第i個元素是A的第i行的算術平均值。median(A,dim):當dim為1時,該函數等同于median(A);當dim為2時,返回一個列向量,其第i個元素是A的第i行的中值。,A=[816;357;462],X=[753],mean(X),median(X),mean(A),median(A),mean(A,2),median(A,2),,2020/4/25,12,2020/4/25,13,1.1.4累加和與累乘積(examp6_6.m)在MATLAB中,使用cumsum和cumprod函數能方便地求得向量和矩陣元素的累加和與累乘積向量,函數的調用格式為:cumsum(X):返回向量X累加和向量。cumprod(X):返回向量X累乘積向量。cumsum(A):返回一個矩陣,其第i列是A的第i列的累加和向量。cumprod(A):返回一個矩陣,其第i列是A的第i列的累乘積向量。cumsum(A,dim):當dim為1時,該函數等同于cumsum(A);當dim為2時,返回一個矩陣,其第i行是A的第i行的累加和向量。cumprod(A,dim):當dim為1時,該函數等同于cumprod(A);當dim為2時,返回一個向量,其第i行是A的第i行的累乘積向量。,A=[816;357;462],X=[753],cumsum(X),cumprod(X),cumsum(A),cumprod(A),cumsum(A,2),cumprod(A,2),,2020/4/25,14,2020/4/25,15,1.1.5標準方差與相關系數1.求標準方差在MATLAB中,提供了計算數據序列的標準方差的函數std。對于向量X,std(X)返回一個標準方差。對于矩陣A,std(A)返回一個行向量,它的各個元素便是矩陣A各列或各行的標準方差。std函數的一般調用格式為:Y=std(A,flag,dim)其中dim取1或2。當dim=1時,求各列元素的標準方差;當dim=2時,則求各行元素的標準方差。flag取0或1,如果取0,則代表除以N-1,如果是1代表的是除以N。,A=[816;357;462],X=[753],std(X)std(A)std(A,0,2),2020/4/25,16,2020/4/25,17,2.相關系數MATLAB提供了corrcoef函數,可以求出數據的相關系數矩陣。corrcoef函數的調用格式為:corrcoef(X):返回從矩陣X形成的一個相關系數矩陣。此相關系數矩陣的大小與矩陣X一樣。它把矩陣X的每列作為一個變量,然后求它們的相關系數。corrcoef(X,Y):在這里,X,Y是向量,它們與corrcoef([X,Y])的作用一樣。,表示序列x和序列y的相關系數,得到的結果是一個2*2矩陣,其中對角線上的元素分別表示x和y的自相關,非對角線上的元素分別表示x與y的相關系數和y與x的相關系數,兩個是相等的。X=[816;357;462],Y=[453;816;837],corrcoef(X),corrcoef(X,Y),,2020/4/25,18,2020/4/25,19,1.1.6排序MATLAB中對向量X排序函數是sort(X),函數返回一個對X中的元素按升序排列的新向量。sort函數也可以對矩陣A的各列或各行重新排序,其調用格式為:[Y,I]=sort(A,dim)其中dim指明對A的列還是行進行排序。若dim=1,則按列排;若dim=2,則按行排。Y是排序后的矩陣,而I記錄Y中的元素在A中位置。,A=[816;357;462],[Y,I]=sort(A,1),[Y,I]=sort(A,2),,2020/4/25,20,2020/4/25,21,1.2數據插值1.2.1一維數據插值yi=interp1(x,y,xi)返回在插值向量xi處的函數向量yi,它是根據向量x和y插值而來。若y是矩陣,則對y每一列進行插值,如xi中元素不在x內,返回NaN。yi=interp1(y,xi)省略x,表示x=1:N,此時N為向量y的長度或為矩陣y的行數。yi=interp1(x,y,xi,’method’)表示用method指定的插值方法進行插值。,,yi=interp1(x,y,xi,’method’)表示用method指定的插值方法進行插值。函數根據X,Y的值,計算函數在Xi處的值。X,Y是兩個等長的已知向量,分別描述采樣點和樣本值,Xi是一個向量或標量,描述欲插值的點,Yi是一個與Xi等長的插值結果。,2020/4/25,22,2020/4/25,23,Method可取如下的值:‘linear’線性插值‘nearest’最近插值‘spline’三次樣條插值‘cubic’三次插值Method默認值為線性插值,上述插值要求向量x單調。,2020/4/25,24,例:x=[12468910131516];y=[57810131415171920];xi=[1.22.13];yi=interp1(x,y,xi)yi=5.40007.05007.5000,2020/4/25,25,x=[12468910131516];y=[57810131415171920];x1=[1.22.13];y1=interp1(x,y,x1,linear)y1=5.40007.05007.5000,2020/4/25,26,x=[12468910131516];y=[57810131415171920];x1=[1.22.13];y1=interp1(x,y,x1,nearest)y1=578,2020/4/25,27,x=[12468910131516];y=[57810131415171920];x1=[1.22.13];y1=interp1(x,y,x1,spline)y1=5.55297.11107.6747,2020/4/25,28,x=[12468910131516];y=[57810131415171920];x1=[1.22.13];y1=interp1(x,y,x1,cubic)y1=5.50067.08147.5476,例:某觀測站測得某日6:00時至18:00時之間每隔2小時的室內外溫度(℃),用3次樣條插值分別求得該日室內外6:30至17:30時之間每隔20分鐘各點的近似溫度(℃)。設時間變量h為一行向量,溫度變量t為一個兩列矩陣,其中第一列存放室內溫度,第二列儲存室外溫度。命令如下:,h=6:2:18,t=[18,20,22,25,30,28,24;15,19,24,28,34,32,30],XI=6.5:0.2:17.5,YI=interp1(h,t,XI,spline),plot(XI,YI),2020/4/25,30,6.2.2二維數據插值zi=interp2(x,y,z,xi,yi)返回在插值向量x1、y1處的函數值向量,它是根據向量x、y與z插值而來,如果x1、y1有元素不在x、y范圍內,則返回NaN。zi=interp2(z,xi,yi)省略x、y,表示x=1:N,y=1:M,[M,N]=size(z).。zi=interp2(x,y,z,xi,yi,’method’)其中x,y是兩個向量,分別描述兩個參數的采樣點,z是與參數采樣點對應的函數值;Xi,Yi是兩個向量或標量,描述欲插值的點。Zi是根據相應的插值方法得到的插值結果。method的取值與一維插值函數相同。X,Y,Z也可以是矩陣形式,例:某實驗對一根長10米的鋼軌進行熱源的溫度傳播測試。用x表示測量點0:2.5:10(米),用h表示測量時間0:30:60(秒),用T表示測試所得各點的溫度(℃)。試用線性插值求出在一分鐘內每隔20秒、鋼軌每隔1米處的溫度TI?x=0:2.5:10;%傳播距離h=[0:30:60];%傳播時間hourT=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41];%各點溫度xi=[0:10];%新傳播距離點hi=[0:20:60];%新時間點TI=interp2(x,h,T,xi,hi)%插值得到的溫度mesh(x,h,T),hold,mesh(xi,hi,TI+10)axis([010060095]),2020/4/25,32,曲線擬合涉及到兩個基本問題:什么是最佳擬合?用什么樣的曲線進行擬合??梢杂迷S多方法定義最佳擬合,而且存在無窮數目的曲線。當最佳擬合定義為數據最小誤差平方和,所用的曲線限定為多項式時,擬合曲線就相對簡單。數學上稱為多項式的最小二乘曲線擬合。,6.3曲線擬合,2020/4/25,33,在MATLAB中,用polyfit函數來求得最小二乘擬合多項式的系數,再用polyval函數按所得的多項式計算所給出的點上的函數近似值。polyfit函數的調用格式為:[P,S]=polyfit(X,Y,m)函數根據采樣點X和采樣點函數值Y,產生一個m次多項式P及其在采樣點的誤差向量S。其中X,Y是兩個等長的向量,P是一個長度為m+1的向量,P的元素為多項式系數。,例:已知數據表[x,y],試求3次擬合多項式p(x),然后求xx=0:0.01:1各點的函數近似值.x0=0:0.1:1;y0=[-.4471.9783.115.255.024.664.014.583.455.359.22];p=polyfit(x0,y0,3)%計算多項式系數xx=0:0.01:1;yy=polyval(p,xx);%計算x點多項式的值plot(xx,yy,x0,y0),thanks,,- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- matlab 數據 分析 函數 曲線擬合
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://zhongcaozhi.com.cn/p-11497156.html