日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

(轉(zhuǎn)載)MATLAB程序設(shè)計(jì)教程(6)---MATLAB數(shù)據(jù)分析與多項(xiàng)式計(jì)算

 panply 2010-08-04

來源:http://hi.baidu.com/mountplorer/blog/item/a2e80b4516aa0445500ffe5d.html

  eizhihua602的轉(zhuǎn)貼

MATLAB程序設(shè)計(jì)教程(6)---MATLAB數(shù)據(jù)分析與多項(xiàng)式計(jì)算

第6章 MATLAB數(shù)據(jù)分析與多項(xiàng)式計(jì)算

6.1 數(shù)據(jù)統(tǒng)計(jì)處理

6.2 數(shù)據(jù)插值

6.3 曲線擬合

6.4 離散傅立葉變換

6.5 多項(xiàng)式計(jì)算

6.1 數(shù)據(jù)統(tǒng)計(jì)處理

6.1.1 最大值和最小值

MATLAB提供的求數(shù)據(jù)序列的最大值和最小值的函數(shù)分別為max和min,兩個(gè)函數(shù)的調(diào)用格式和操作過程類似。

1.求向量的最大值和最小值

求一個(gè)向量X的最大值的函數(shù)有兩種調(diào)用格式,分別是:

(1) y=max(X):返回向量X的最大值存入y,如果X中包含復(fù)數(shù)元素,則按模取最大值。

(2) [y,I]=max(X):返回向量X的最大值存入y,最大值的序號存入I,如果X中包含復(fù)數(shù)元素,則按模取最大值。

求向量X的最小值的函數(shù)是min(X),用法和max(X)完全相同。

例6-1 求向量x的最大值。

命令如下:

x=[-43,72,9,16,23,47];

y=max(x) %求向量x中的最大值

[y,l]=max(x) %求向量x中的最大值及其該元素的位置

2.求矩陣的最大值和最小值

求矩陣A的最大值的函數(shù)有3種調(diào)用格式,分別是:

(1) max(A):返回一個(gè)行向量,向量的第i個(gè)元素是矩陣A的第i列上的最大值。

(2) [Y,U]=max(A):返回行向量Y和U,Y向量記錄A的每列的最大值,U向量記錄每列最大值的行號。

(3) max(A,[],dim):dim取1或2。dim取1時(shí),該函數(shù)和max(A)完全相同;dim取2時(shí),該函數(shù)返回一個(gè)列向量,其第i個(gè)元素是A矩陣的第i行上的最大值。

求最小值的函數(shù)是min,其用法和max完全相同。

例6-2 分別求3×4矩陣x中各列和各行元素中的最大值,并求整個(gè)矩陣的最大值和最小值。

3.兩個(gè)向量或矩陣對應(yīng)元素的比較

函數(shù)max和min還能對兩個(gè)同型的向量或矩陣進(jìn)行比較,調(diào)用格式為:

(1) U=max(A,B):A,B是兩個(gè)同型的向量或矩陣,結(jié)果U是與A,B同型的向量或矩陣,U的每個(gè)元素等于A,B對應(yīng)元素的較大者。

(2) U=max(A,n):n是一個(gè)標(biāo)量,結(jié)果U是與A同型的向量或矩陣,U的每個(gè)元素等于A對應(yīng)元素和n中的較大者。

min函數(shù)的用法和max完全相同。

例6-3 求兩個(gè)2×3矩陣x, y所有同一位置上的較大元素構(gòu)成的新矩陣p。

6.1.2 求和與求積

數(shù)據(jù)序列求和與求積的函數(shù)是sum和prod,其使用方法類似。設(shè)X是一個(gè)向量,A是一個(gè)矩陣,函數(shù)的調(diào)用格式為:

sum(X):返回向量X各元素的和。

prod(X):返回向量X各元素的乘積。

sum(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的元素和。

prod(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的元素乘積。

sum(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于sum(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的各元素之和。

prod(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于prod(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的各元素乘積。

例6-4 求矩陣A的每行元素的乘積和全部元素的乘積。

6.1.3 平均值和中值

求數(shù)據(jù)序列平均值的函數(shù)是mean,求數(shù)據(jù)序列中值的函數(shù)是median。兩個(gè)函數(shù)的調(diào)用格式為:

mean(X):返回向量X的算術(shù)平均值。

median(X):返回向量X的中值。

mean(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的算術(shù)平均值。

median(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的中值。

mean(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于mean(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的算術(shù)平均值。

median(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于median(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的中值。

例6-5 分別求向量x與y的平均值和中值。

6.1.4 累加和與累乘積

在MATLAB中,使用cumsum和cumprod函數(shù)能方便地求得向量和矩陣元素的累加和與累乘積向量,函數(shù)的調(diào)用格式為:

cumsum(X):返回向量X累加和向量。

cumprod(X):返回向量X累乘積向量。

cumsum(A):返回一個(gè)矩陣,其第i列是A的第i列的累加和向量。

cumprod(A):返回一個(gè)矩陣,其第i列是A的第i列的累乘積向量。

cumsum(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于cumsum(A);當(dāng)dim為2時(shí),返回一個(gè)矩陣,其第i行是A的第i行的累加和向量。

cumprod(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于cumprod(A);當(dāng)dim為2時(shí),返回一個(gè)向量,其第i行是A的第i行的累乘積向量。

例6-6 求s的值。

6.1.5 標(biāo)準(zhǔn)方差與相關(guān)系數(shù)

1.求標(biāo)準(zhǔn)方差

在MATLAB中,提供了計(jì)算數(shù)據(jù)序列的標(biāo)準(zhǔn)方差的函數(shù)std。對于向量X,std(X)返回一個(gè)標(biāo)準(zhǔn)方差。對于矩陣A,std(A)返回一個(gè)行向量,它的各個(gè)元素便是矩陣A各列或各行的標(biāo)準(zhǔn)方差。std函數(shù)的一般調(diào)用格式為:

Y=std(A,flag,dim)

其中dim取1或2。當(dāng)dim=1時(shí),求各列元素的標(biāo)準(zhǔn)方差;當(dāng)dim=2時(shí),則求各行元素的標(biāo)準(zhǔn)方差。flag取0或1,當(dāng)flag=0時(shí),按σ1所列公式計(jì)算標(biāo)準(zhǔn)方差,當(dāng)flag=1時(shí),按σ2所列公式計(jì)算標(biāo)準(zhǔn)方差。缺省flag=0,dim=1。

例6-7 對二維矩陣x,從不同維方向求出其標(biāo)準(zhǔn)方差。

2.相關(guān)系數(shù)

MATLAB提供了corrcoef函數(shù),可以求出數(shù)據(jù)的相關(guān)系數(shù)矩陣。corrcoef函數(shù)的調(diào)用格式為:

corrcoef(X):返回從矩陣X形成的一個(gè)相關(guān)系數(shù)矩陣。此相關(guān)系數(shù)矩陣的大小與矩陣X一樣。它把矩陣X的每列作為一個(gè)變量,然后求它們的相關(guān)系數(shù)。

corrcoef(X,Y):在這里,X,Y是向量,它們與corrcoef([X,Y])的作用一樣。

例6-8 生成滿足正態(tài)分布的10000×5隨機(jī)矩陣,然后求各列元素的均值和標(biāo)準(zhǔn)方差,再求這5列隨機(jī)數(shù)據(jù)的相關(guān)系數(shù)矩陣。

命令如下:

X=randn(10000,5);

M=mean(X)

D=std(X)

R=corrcoef(X)

6.1.6 排序

MATLAB中對向量X是排序函數(shù)是sort(X),函數(shù)返回一個(gè)對X中的元素按升序排列的新向量。

sort函數(shù)也可以對矩陣A的各列或各行重新排序,其調(diào)用格式為:

[Y,I]=sort(A,dim)

其中dim指明對A的列還是行進(jìn)行排序。若dim=1,則按列排;若dim=2,則按行排。Y是排序后的矩陣,而I記錄Y中的元素在A中位置。

例6-9 對二維矩陣做各種排序。

6.2 數(shù)據(jù)插值

6.2.1 一維數(shù)據(jù)插值

在MATLAB中,實(shí)現(xiàn)這些插值的函數(shù)是interp1,其調(diào)用格式為:

Y1=interp1(X,Y,X1,'method')

函數(shù)根據(jù)X,Y的值,計(jì)算函數(shù)在X1處的值。X,Y是兩個(gè)等長的已知向量,分別描述采樣點(diǎn)和樣本值,X1是一個(gè)向量或標(biāo)量,描述欲插值的點(diǎn),Y1是一個(gè)與X1等長的插值結(jié)果。method是插值方法,允許的取值有‘linear’、‘nearest’、‘cubic’、‘spline’。

注意:X1的取值范圍不能超出X的給定范圍,否則,會給出“NaN”錯(cuò)誤。

例6-10 用不同的插值方法計(jì)算在π/2點(diǎn)的值。

MATLAB中有一個(gè)專門的3次樣條插值函數(shù)Y1=spline(X,Y,X1),其功能及使用方法與函數(shù)Y1=interp1(X,Y,X1,‘spline’)完全相同。

例6-11 某觀測站測得某日6:00時(shí)至18:00時(shí)之間每隔2小時(shí)的室內(nèi)外溫度(℃),用3次樣條插值分別求得該日室內(nèi)外6:30至17:30時(shí)之間每隔2小時(shí)各點(diǎn)的近似溫度(℃)。

設(shè)時(shí)間變量h為一行向量,溫度變量t為一個(gè)兩列矩陣,其中第一列存放室內(nèi)溫度,第二列儲存室外溫度。命令如下:

h =6:2:18;

t=[18,20,22,25,30,28,24;15,19,24,28,34,32,30]';

XI =6.5:2:17.5

YI=interp1(h,t,XI,‘spline’) %用3次樣條插值計(jì)算

6.2.2 二維數(shù)據(jù)插值

在MATLAB中,提供了解決二維插值問題的函數(shù)interp2,其調(diào)用格式為:

Z1=interp2(X,Y,Z,X1,Y1,'method')

其中X,Y是兩個(gè)向量,分別描述兩個(gè)參數(shù)的采樣點(diǎn),Z是與參數(shù)采樣點(diǎn)對應(yīng)的函數(shù)值,X1,Y1是兩個(gè)向量或標(biāo)量,描述欲插值的點(diǎn)。Z1是根據(jù)相應(yīng)的插值方法得到的插值結(jié)果。 method的取值與一維插值函數(shù)相同。X,Y,Z也可以是矩陣形式。

同樣,X1,Y1的取值范圍不能超出X,Y的給定范圍,否則,會給出“NaN”錯(cuò)誤。

例6-12 設(shè)z=x2+y2,對z函數(shù)在[0,1]×[0,2]區(qū)域內(nèi)進(jìn)行插值。

例6-13 某實(shí)驗(yàn)對一根長10米的鋼軌進(jìn)行熱源的溫度傳播測試。用x表示測量點(diǎn)0:2.5:10(米),用h表示測量時(shí)間0:30:60(秒),用T表示測試所得各點(diǎn)的溫度(℃)。試用線性插值求出在一分鐘內(nèi)每隔20秒、鋼軌每隔1米處的溫度TI。

命令如下:

x=0:2.5:10;

h=[0:30:60]';

T=[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)

6.3 曲線擬合

在MATLAB中,用polyfit函數(shù)來求得最小二乘擬合多項(xiàng)式的系數(shù),再用polyval函數(shù)按所得的多項(xiàng)式計(jì)算所給出的點(diǎn)上的函數(shù)近似值。

polyfit函數(shù)的調(diào)用格式為:

[P,S]=polyfit(X,Y,m)

函數(shù)根據(jù)采樣點(diǎn)X和采樣點(diǎn)函數(shù)值Y,產(chǎn)生一個(gè)m次多項(xiàng)式P及其在采樣點(diǎn)的誤差向量S。其中X,Y是兩個(gè)等長的向量,P是一個(gè)長度為m+1的向量,P的元素為多項(xiàng)式系數(shù)。

polyval函數(shù)的功能是按多項(xiàng)式的系數(shù)計(jì)算x點(diǎn)多項(xiàng)式的值,將在6.5.3節(jié)中詳細(xì)介紹。

例6-14 已知數(shù)據(jù)表[t,y],試求2次擬合多項(xiàng)式p(t),然后求ti=1,1.5,2,2.5,…,9.5,10各點(diǎn)的函數(shù)近似值。

6.4 離散傅立葉變換

6.4.1 離散傅立葉變換算法簡要

6.4.2 離散傅立葉變換的實(shí)現(xiàn)

一維離散傅立葉變換函數(shù),其調(diào)用格式與功能為:

(1) fft(X):返回向量X的離散傅立葉變換。設(shè)X的長度(即元素個(gè)數(shù))為N,若N為2的冪次,則為以2為基數(shù)的快速傅立葉變換,否則為運(yùn)算速度很慢的非2冪次的算法。對于矩陣X,fft(X)應(yīng)用于矩陣的每一列。

(2) fft(X,N):計(jì)算N點(diǎn)離散傅立葉變換。它限定向量的長度為N,若X的長度小于N,則不足部分補(bǔ)上零;若大于N,則刪去超出N的那些元素。對于矩陣X,它同樣應(yīng)用于矩陣的每一列,只是限定了向量的長度為N。

(3) fft(X,[],dim)或fft(X,N,dim):這是對于矩陣而言的函數(shù)調(diào)用格式,前者的功能與FFT(X)基本相同,而后者則與FFT(X,N)基本相同。只是當(dāng)參數(shù)dim=1時(shí),該函數(shù)作用于X的每一列;當(dāng)dim=2時(shí),則作用于X的每一行。

值得一提的是,當(dāng)已知給出的樣本數(shù)N0不是2的冪次時(shí),可以取一個(gè)N使它大于N0且是2的冪次,然后利用函數(shù)格式fft(X,N)或fft(X,N,dim)便可進(jìn)行快速傅立葉變換。這樣,計(jì)算速度將大大加快。

相應(yīng)地,一維離散傅立葉逆變換函數(shù)是ifft。ifft(F)返回F的一維離散傅立葉逆變換;ifft(F,N)為N點(diǎn)逆變換;ifft(F,[],dim)或ifft(F,N,dim)則由N或dim確定逆變換的點(diǎn)數(shù)或操作方向。

例6-15 給定數(shù)學(xué)函數(shù)

x(t)=12sin(2π×10t+π/4)+5cos(2π×40t)

取N=128,試對t從0~1秒采樣,用fft作快速傅立葉變換,繪制相應(yīng)的振幅-頻率圖。

在0~1秒時(shí)間范圍內(nèi)采樣128點(diǎn),從而可以確定采樣周期和采樣頻率。由于離散傅立葉變換時(shí)的下標(biāo)應(yīng)是從0到N-1,故在實(shí)際應(yīng)用時(shí)下標(biāo)應(yīng)該前移1。又考慮到對離散傅立葉變換來說,其振幅| F(k)|是關(guān)于N/2對稱的,故只須使k從0到N/2即可。

程序如下:

N=128; % 采樣點(diǎn)數(shù)

T=1; % 采樣時(shí)間終點(diǎn)

t=linspace(0,T,N); % 給出N個(gè)采樣時(shí)間ti(I=1:N)

x=12*sin(2*pi*10*t+pi/4)+5*cos(2*pi*40*t); % 求各采樣點(diǎn)樣本值x

dt=t(2)-t(1); % 采樣周期

f=1/dt; % 采樣頻率(Hz)

X=fft(x); % 計(jì)算x的快速傅立葉變換X

F=X(1:N/2+1); % F(k)=X(k)(k=1:N/2+1)

f=f*(0:N/2)/N; % 使頻率軸f從零開始

plot(f,abs(F),'-*') % 繪制振幅-頻率圖

xlabel('Frequency');

ylabel('|F(k)|')

6.5 多項(xiàng)式計(jì)算

6.5.1 多項(xiàng)式的四則運(yùn)算

1.多項(xiàng)式的加減運(yùn)算

2.多項(xiàng)式乘法運(yùn)算

函數(shù)conv(P1,P2)用于求多項(xiàng)式P1和P2的乘積。這里,P1、P2是兩個(gè)多項(xiàng)式系數(shù)向量。

例6-16 求多項(xiàng)式x4+8x3-10與多項(xiàng)式2x2-x+3的乘積。

3.多項(xiàng)式除法

函數(shù)[Q,r]=deconv(P1,P2)用于對多項(xiàng)式P1和P2作除法運(yùn)算。其中Q返回多項(xiàng)式P1除以P2的商式,r返回P1除以P2的余式。這里,Q和r仍是多項(xiàng)式系數(shù)向量。

deconv是conv的逆函數(shù),即有P1=conv(P2,Q)+r。

例6-17 求多項(xiàng)式x4+8x3-10除以多項(xiàng)式2x2-x+3的結(jié)果。

6.5.2 多項(xiàng)式的導(dǎo)函數(shù)

對多項(xiàng)式求導(dǎo)數(shù)的函數(shù)是:

p=polyder(P):求多項(xiàng)式P的導(dǎo)函數(shù)

p=polyder(P,Q):求P·Q的導(dǎo)函數(shù)

[p,q]=polyder(P,Q):求P/Q的導(dǎo)函數(shù),導(dǎo)函數(shù)的分子存入p,分母存入q。

上述函數(shù)中,參數(shù)P,Q是多項(xiàng)式的向量表示,結(jié)果p,q也是多項(xiàng)式的向量表示。

例6-18 求有理分式的導(dǎo)數(shù)。

命令如下:

P=[1];

Q=[1,0,5];

[p,q]=polyder(P,Q)

6.5.3 多項(xiàng)式的求值

MATLAB提供了兩種求多項(xiàng)式值的函數(shù):polyval與polyvalm,它們的輸入?yún)?shù)均為多項(xiàng)式系數(shù)向量P和自變量x。兩者的區(qū)別在于前者是代數(shù)多項(xiàng)式求值,而后者是矩陣多項(xiàng)式求值。

1.代數(shù)多項(xiàng)式求值

polyval函數(shù)用來求代數(shù)多項(xiàng)式的值,其調(diào)用格式為:

Y=polyval(P,x)

若x為一數(shù)值,則求多項(xiàng)式在該點(diǎn)的值;若x為向量或矩陣,則對向量或矩陣中的每個(gè)元素求其多項(xiàng)式的值。

例6-19 已知多項(xiàng)式x4+8x3-10,分別取x=1.2和一個(gè)2×3矩陣為自變量計(jì)算該多項(xiàng)式的值。

2.矩陣多項(xiàng)式求值

polyvalm函數(shù)用來求矩陣多項(xiàng)式的值,其調(diào)用格式與polyval相同,但含義不同。polyvalm函數(shù)要求x為方陣,它以方陣為自變量求多項(xiàng)式的值。設(shè)A為方陣,P代表多項(xiàng)式x3-5x2+8,那么polyvalm(P,A)的含義是:

A*A*A-5*A*A+8*eye(size(A))

而polyval(P,A)的含義是:

A.*A.*A-5*A.*A+8*ones(size(A))

例6-20 仍以多項(xiàng)式x4+8x3-10為例,取一個(gè)2×2矩陣為自變量分別用polyval和polyvalm計(jì)算該多項(xiàng)式的值。

6.5.4 多項(xiàng)式求根

n次多項(xiàng)式具有n個(gè)根,當(dāng)然這些根可能是實(shí)根,也可能含有若干對共軛復(fù)根。MATLAB提供的roots函數(shù)用于求多項(xiàng)式的全部根,其調(diào)用格式為:

x=roots(P)

其中P為多項(xiàng)式的系數(shù)向量,求得的根賦給向量x,即x(1),x(2),…,x(n)分別代表多項(xiàng)式的n個(gè)根。

例6-21 求多項(xiàng)式x4+8x3-10的根。

命令如下:

A=[1,8,0,0,-10];

x=roots(A)

若已知多項(xiàng)式的全部根,則可以用poly函數(shù)建立起該多項(xiàng)式,其調(diào)用格式為:

P=poly(x)

若x為具有n個(gè)元素的向量,則poly(x)建立以x為其根的多項(xiàng)式,且將該多項(xiàng)式的系數(shù)賦給向量P。

例6-22 已知 f(x)

(1) 計(jì)算f(x)=0 的全部根。

(2) 由方程f(x)=0的根構(gòu)造一個(gè)多項(xiàng)式g(x),并與f(x)進(jìn)行對比。

命令如下:

P=[3,0,4,-5,-7.2,5];

X=roots(P) %求方程f(x)=0的根

G=poly(X) %求多項(xiàng)式g(x)

來自: http://hi.baidu.com/mountplorer/blog/item/a2e80b4516aa0445500ffe5d.html

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多