MATLAB教程_第六章
《MATLAB教程_第六章》由會(huì)員分享,可在線閱讀,更多相關(guān)《MATLAB教程_第六章(131頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 MATLAB提供大量具有強(qiáng)大數(shù)值計(jì)算功能的函數(shù)。本章著重介紹關(guān)于數(shù)值計(jì)算的函數(shù)。 1多項(xiàng)式表示法 2多項(xiàng)式求值 3多項(xiàng)式乘法和除法 4多項(xiàng)式的微積分 5多項(xiàng)式的根和由根創(chuàng)建多 6多項(xiàng)式部分分式展開 7多項(xiàng)式曲線擬合 8多曲線擬合圖形用戶接口 MATLAB提供了關(guān)于多項(xiàng)式的函數(shù): 多項(xiàng)式的值; 多項(xiàng)式的根和微分; 多項(xiàng)式擬合曲線; 部分分式。 多項(xiàng)式函數(shù) MATLAB采用行向量表示多項(xiàng)式系數(shù),多項(xiàng)式系數(shù)按降冪排列。 函數(shù)poly2str()將多項(xiàng)式系數(shù)向量轉(zhuǎn)換為完整形式。 函數(shù)polyval()計(jì)算多項(xiàng)式的值,其具體使用方法如下: y = polyval(p,x),p為多項(xiàng)式系數(shù)行向量,x代入
2、多項(xiàng)式的值; Y = polyvalm(p,X),把矩陣X代入多項(xiàng)式p中進(jìn)行計(jì)算。 函數(shù)conv()和deconv()進(jìn)行多項(xiàng)式乘法和除法,其具體使用方法如下: w = conv(u,v),實(shí)現(xiàn)多項(xiàng)式乘法,返回結(jié)果多項(xiàng)式的系數(shù)行向量; q,r = deconv(u, v),實(shí)現(xiàn)多項(xiàng)式除法。 (1)多項(xiàng)式的微分 函數(shù)polyder()計(jì)算多項(xiàng)式的微分,其具體使用方法如下: k = polyder(p),返回多項(xiàng)式p微分的系數(shù)向量; k = polyder(a,b),返回多項(xiàng)式a b乘積微分的系數(shù)向量; q,d = polyder(b,a),返回多項(xiàng)式b/a微分的系數(shù)向量。 函數(shù)polyint()
3、計(jì)算多項(xiàng)式的不定積分,其具體使用方法如下: s=polyint(p,k),返回多項(xiàng)式p不定積分的系數(shù)向量。 (1)多項(xiàng)式的根 函數(shù)roots()求多項(xiàng)式的根,其具體使用方法如下: r = roots(c),返回多項(xiàng)式c的所有根r。 (2)由根創(chuàng)建多項(xiàng)式 函數(shù)poly()實(shí)現(xiàn)由根創(chuàng)建多項(xiàng)式,其具體使用方法如下: p = poly(r),輸入r是多項(xiàng)式所有根,返回值為多項(xiàng)式的系數(shù)向量; p = poly(A),輸入A是方陣,返回值為A的特征多項(xiàng)式的系數(shù)向量。 函數(shù)residue()將多項(xiàng)式之比按部分分式展開,其具體使用方法如下: r,p,k = residue(b,a),求多項(xiàng)式b/a的部分分式展
4、開; b,a = residue(r,p,k),從部分分式得到多項(xiàng)式向量。 函數(shù)polyfit()采用最小二乘法對(duì)給定數(shù)據(jù)進(jìn)行多項(xiàng)式擬合,其具體使用方法如下: p = polyfit(x,y,n),采用n次多項(xiàng)式p來擬合數(shù)據(jù)x和y。 運(yùn)行結(jié)果如下圖所示。 曲線擬合的圖形用戶接口可通過圖形窗口的【Tools】菜單中【Basic Fitting】選項(xiàng)啟動(dòng)。 運(yùn)行結(jié)果如下圖所示。 6.2.1 一維插值6.2.2 二維插值 插值是根據(jù)已知輸入/輸出數(shù)據(jù)集和當(dāng)前輸入估計(jì)輸出值。MATLAB提供大量的插值函數(shù),如下表所示。插值函數(shù) 一維插值就是對(duì)函數(shù)y=f(x)進(jìn)行插值,一維插值的原理如下圖所示。 函數(shù)i
5、nterp1()實(shí)現(xiàn)一維插值,其具體使用方法如下: yi=interp1(x,y,xi),x,y是已知數(shù)據(jù)集且具有相同長度的向量; yi = interp1(y,xi),默認(rèn)x為1:n,其中n為向量y的長度; yi = interp1(x,y,xi,method),method用于指定插值的方法。 運(yùn)行結(jié)果如下圖所示。 二維插值是對(duì)兩變量的函數(shù)z=f(x,y)進(jìn)行插值,二維插值的原理如下圖所示: 函數(shù)interp2()實(shí)現(xiàn)二維插值,其具體使用方法如下: zi = interp2(x,y,z,xi,yi),x,y,z為原始數(shù)據(jù),返回值z(mì)i是插值結(jié)果; zi = interp2(z,xi,yi),
6、若z=nm,則x=1:n,y=1:m; zi = interp2(x,y,z,xi,yi,method),method用于指定插值的方法 。 運(yùn)行結(jié)果如下圖所示。 6.3.1 基本數(shù)據(jù)分析函數(shù) 6.3.2 協(xié)方差和相關(guān)系數(shù)矩陣 6.3.3 有限差分和梯度 6.3.4 信號(hào)濾波和卷積 6.3.5 傅立葉變換 MATLAB提供大量數(shù)據(jù)分析的函數(shù),首先給出如下約定: 一維數(shù)據(jù)分析時(shí),數(shù)據(jù)可以用行向量或者列向量來表示; 二維數(shù)據(jù)分析時(shí),數(shù)據(jù)可以用多個(gè)向量或者二維矩陣來表示。 1最大值、最小值、平均值、 中間值、元素求和 2標(biāo)準(zhǔn)差和方差 3元素排序 續(xù)表 運(yùn)行結(jié)果如下,并如下圖所示。 MATLAB提供對(duì)
7、實(shí)數(shù)、復(fù)數(shù)和字符串的排序函數(shù)。 函數(shù)sort()實(shí)現(xiàn)數(shù)值的排序; 函數(shù)sortrows()實(shí)現(xiàn)對(duì)行的排序。 函數(shù)cov()計(jì)算隨機(jī)變量的協(xié)方差矩陣,其具體使用方法如下: C = cov(X),計(jì)算X代表的隨機(jī)變量的協(xié)方差矩陣; C = cov(x,y),x和y必須是具有相同長度的向量; C = cov(X,1),計(jì)算X代表的隨機(jī)變量的協(xié)方差矩陣; C = cov(x,y,1),x和y必須是具有相同長度的向量。 函數(shù)corrcoef()計(jì)算隨機(jī)變量的相關(guān)系數(shù)矩陣,其具體使用方法如下: R = corrcoef(X),返回X代表的隨機(jī)變量的相關(guān)系數(shù)矩陣; R = corrcoef(x,y),x和y
8、必須是具有相同長度的向量。 函數(shù)diff()計(jì)算差分,其具體使用方法如下: Y = diff(X) ,X可以是向量或矩陣; Y = diff(X,n) ,返回n階差分 ; Y = diff(X,n,dim) ,返回在dim維上的n階差分 。 運(yùn)行結(jié)果如下圖所示。 函數(shù)gradient()計(jì)算梯度,其具體使用方法如下: FX = gradient(F),返回F在x方向上的梯度; FX,FY = gradient(F),F(xiàn)X是F在x方向的近似偏導(dǎo)數(shù),F(xiàn)Y是F在y方向的近似偏導(dǎo)數(shù); Fx,Fy,Fz,. = gradient(F),返回N個(gè)方向的近似偏導(dǎo)數(shù); . = gradient(F,h),h用
9、于指定所有方向上自變量的間距; . = gradient(F,h1,h2,.),用多個(gè)標(biāo)量來指定各個(gè)方向上自變量的間距。 運(yùn)行結(jié)果如下圖所示。 1一維數(shù)字濾波 2信號(hào)卷積 3去除信號(hào)直流或線性成分 MATLAB提供如下表所示的信號(hào)濾波和卷積的函數(shù)。信號(hào)濾波和卷積函數(shù) 函數(shù)filter()實(shí)現(xiàn)一維數(shù)字濾波,該函數(shù)的具體使用方法如下: y = filter(b,a,X),X為用于濾波的數(shù)據(jù),Y為數(shù)據(jù)X通過濾波器之后的值; y,zf = filter(b,a,X),附加返回一個(gè)表示數(shù)據(jù)延遲時(shí)間的量zf; y,zf = filter(b,a,X,zi),zi為初始數(shù)據(jù)延遲,zf等于最終數(shù)據(jù)延遲; y
10、= filter(b,a,X,zi,dim),在dim維上進(jìn)行數(shù)據(jù)濾波。 函數(shù)conv()計(jì)算卷積。 運(yùn)行結(jié)果如下圖所示。 detrend()函數(shù)實(shí)現(xiàn)去除信號(hào)中的直流或者線性成分,其具體使用方法如下: y = detrend(x),如果x是一個(gè)向量,從信號(hào)x中減去線性成分;如果x是一個(gè)矩陣,去除x所有列中的線性成分; y = detrend(x,constant),如果x是一個(gè)向量,減去信號(hào)中的直流成分;如果x是一個(gè)矩陣,去除所有列中的直流成分; y = detrend(x,linear,bp),從信號(hào)x中減去分段線性函數(shù)。 1一維傅立葉變換和逆變換2二維傅立葉變換和逆變換 傅立葉變換既可以對(duì)
11、連續(xù)信號(hào)進(jìn)行變換,也可以對(duì)離散信號(hào)進(jìn)行變換。本小節(jié)只介紹離散傅立葉變換。 函數(shù)fft()實(shí)現(xiàn)一維離散傅立葉變換,其具體使用方法如下: Y = fft(X),如果X是向量,返回向量X的傅立葉變換;如果X是矩陣,函數(shù)對(duì)矩陣X的每一列進(jìn)行傅立葉變換; Y = fft(X,n),用輸入n指定傅立葉變換的長度; Y = fft(X,dim),在dim維上進(jìn)行傅立葉變換; Y = fft(X,n,dim),在dim維上進(jìn)行傅立葉變換,并指定傅立葉變換的長度。 函數(shù)ifft()實(shí)現(xiàn)一維離散傅立葉逆變換,其具體使用方法與函數(shù)fft()類似,只是添加一個(gè)選項(xiàng)。 y = ifft(., symmetric); y
12、 = ifft(., nonsymmetric) 。 函數(shù)fft2()實(shí)現(xiàn)二維傅立葉變換,用函數(shù)ifft2來實(shí)現(xiàn)二維傅立葉逆變換。函數(shù)fft2()的具體使用方法如下: Y = fft2(X),X是矩陣,對(duì)矩陣X進(jìn)行二維傅立葉變換; Y = fft2(X,m,n),m和n指定傅立葉變換的長度。 1函數(shù)的表示 2函數(shù)畫圖 3函數(shù)最小值和零點(diǎn) 4數(shù)值積分 5在功能函數(shù)中使用含參函數(shù) 函數(shù)可以通過以下方式來表示: M文件; 匿名函數(shù); 函數(shù)inline()。 MATLAB提供函數(shù)畫圖的函數(shù)如下表所示。函數(shù)畫圖的函數(shù) 以函數(shù)fplot()為例介紹畫圖函數(shù)的用法,其具體使用方法如下: fplot(func
13、tion,limits),function為待畫圖的函數(shù),limits是橫坐標(biāo)數(shù)值范圍或橫縱坐標(biāo)數(shù)值范圍; fplot(function,limits,LineSpec),LineSpec指定畫圖的線條屬性; fplot(function,limits,tol),tol指定畫圖相對(duì)精度; fplot(function,limits,tol,LineSpec),指定畫圖的線條屬性和畫圖相對(duì)精度。 運(yùn)行結(jié)果如下圖所示。 -5 -4 -3 -2 -1 0 1 2 3 4 5 0.4 0.5 0.6 0.7 0.8 0.9 1 函數(shù)y=cos(x+1)/(x2+1) x y 求函數(shù)的最小值和零點(diǎn)的函數(shù)
14、,如下表所示。求函數(shù)最小值和零點(diǎn) 函數(shù)fminbnd()求一元函數(shù)在給定區(qū)間內(nèi)的最小值,其具體使用方法如下: x = fminbnd(fun, ,x1,x2),在區(qū)間x1 x2內(nèi)尋找函數(shù)最小值; x = fminbnd(fun,x1,x2,options),使用options選項(xiàng)來指定的優(yōu)化器的參數(shù); x,fval = fminbnd(.),附加返回函數(shù)最小值。 函數(shù)fminsearch()求多元函數(shù)的最小值。其具體使用方法如下: x = fminsearch(fun,x0),在初始x0附近尋找局部最小值; x = fminsearch(fun,x0,options),使用options選項(xiàng)來
15、指定優(yōu)化器的參數(shù); x,fval = fminsearch(.),附加返回函數(shù)最小值。 函數(shù)fzero()求一元函數(shù)的零點(diǎn),其具體使用方法如下: x = fzero(fun,x0),在x0點(diǎn)附近尋找函數(shù)的零點(diǎn); x = fzero(fun,x0,x1),在x0,x1區(qū)間內(nèi)尋找函數(shù)的零點(diǎn); x = fzero(fun,x0,options),用options指定尋找零點(diǎn)的優(yōu)化器參數(shù); x,fval = fzero(.),附加自變量為x時(shí)的函數(shù)值。 函數(shù)optimset()設(shè)定優(yōu)化器參數(shù),其具體使用方法如下: o p t i o n s = optimset(param1,value1,param
16、2,value2,.),用參數(shù)名和對(duì)應(yīng)的參數(shù)值設(shè)定優(yōu)化器的參數(shù); optimset,顯示優(yōu)化器的所有參數(shù)名和有效的參數(shù)值; options = optimset,返回一個(gè)優(yōu)化器的結(jié)構(gòu)體; options = optimset(optimfun),返回函數(shù)optimfun()對(duì)應(yīng)的優(yōu)化器參數(shù); o p t i o n s = optimset(oldopts,param1,value1,.),在原優(yōu)化器參數(shù)oldopts的基礎(chǔ)上,改動(dòng)指定優(yōu)化器參數(shù); options = optimset(oldopts,newopts),用newopts的所有非空參數(shù)覆蓋oldopts中的值。 在函數(shù)optim
17、set()中常用的優(yōu)化器參數(shù)如下表所示。優(yōu)化器參數(shù) 函數(shù)optimget()得到目前優(yōu)化器的參數(shù),其具體使用方法如下: val = optimget(options,param),返回優(yōu)化器參數(shù)param的值; v a l = optimget(options,param,default),返回優(yōu)化器參數(shù)param的值。 MATLAB提供一些的數(shù)值積分函數(shù),如下表所示。數(shù)值積分函數(shù) 函數(shù)quad()和函數(shù)quadl()來計(jì)算一元函數(shù)的積分。函數(shù)quad()的具體使用方法如下: q = quad(fun,a,b),計(jì)算函數(shù)fun在a b區(qū)間內(nèi)的定積分; q = quad(fun,a,b,tol)
18、,以絕對(duì)誤差容限tol計(jì)算函數(shù)fun在a b區(qū)間內(nèi)的定積分; q = quad(fun,a,b,tol,trace),當(dāng)trace為非零值時(shí),顯示迭代過程的中間值。 矢量數(shù)值積分等價(jià)于多個(gè)一元定積分。 函數(shù)dblquad()計(jì)算二重積分。其具體使用方法如下: q = dblquad(fun,xmin,xmax,ymin,ymax),計(jì)算二元函數(shù)的二重積分; q = dblquad(fun,xmin,xmax,ymin,ymax,tol),用tol指定絕對(duì)計(jì)算精度; q = dblquad(fun,xmin,xmax,ymin,ymax,tol,method),用method指定計(jì)算一維積分時(shí)采
19、用的函數(shù)。 功能函數(shù)中的含參函數(shù)的兩種解決方法:嵌套函數(shù)匿名函數(shù) 編寫M文件的函數(shù)時(shí): 首先將含參函數(shù)的參數(shù)作為輸入; 其次在其中調(diào)用功能函數(shù),形成嵌套; 最后通過調(diào)用該函數(shù)進(jìn)行計(jì)算。 運(yùn)行結(jié)果如下圖所示。 -10 -8 -6 -4 -2 0 2 4 6 8 10-12 -10 -8 -6 -4 -2 0 2 4 b 零 點(diǎn) 用匿名函數(shù)提供函數(shù)參數(shù)的具體步驟如下: 創(chuàng)建一個(gè)含參函數(shù),并保存為M文件格式; 調(diào)用功能函數(shù)的M文件中給參數(shù)賦值; 用含參函數(shù)創(chuàng)建匿名函數(shù); 把匿名函數(shù)句柄傳遞給功能函數(shù)計(jì)算。 6.5.1 常微分方程組的初值問題 6.5.2 延遲微分方程的問題 6.5.3 常微分方程組的
20、邊界問題 在MATLAB中,可以計(jì)算微分方程數(shù)值解,如: 常微分方程組的初值問題; 延遲微分方程的問題; 常微分方程組的邊界問題。 1顯式常微分方程組 2設(shè)置解法器參數(shù) 3線性隱式常微分方程組 4完全隱式常微分方程組 在MATLAB中可以計(jì)算以下初值問題的數(shù)值解。顯式常微分方程組;線性隱式常微分方程組;完全隱式常微分方程組。 在MATLAB中,用函數(shù)實(shí)現(xiàn)不同的解法,如下表所示。 函數(shù)odeset()設(shè)定解法器參數(shù),其具體使用方法如下: o p t i o n s = odeset(name1,value1,name2, value2,),用參數(shù)名和相應(yīng)參數(shù)值設(shè)定解法器的參數(shù); options=
21、 odeset(oldopts,name1, value1,),修改原來的解法器options結(jié)構(gòu)體oldopts; options = odeset(oldopts,newopts),合并兩個(gè)解法器options結(jié)構(gòu)體oldopts和newopts; odeset,顯示所有的參數(shù)值和它們的默認(rèn)值。 常微分方程組解法器參數(shù) 線性隱式常微分方程組可以利用解法器參數(shù)options來求解。 運(yùn)行結(jié)果如下圖所示。 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2 4 6 8 10 12 14 16 18 t y 函數(shù)ode15i()求解完全隱式常微分方程組,其具體使用方法
22、如下: t,Y = ode15i(odefun,tspan,y0,yp0) ; t , Y = ode15i(odefun,tspan,y0,yp0,options) 。 函數(shù)decic()得到自洽初始值,其具體使用方法如下: y 0 m o d , y p 0 m o d = decic(odefun,t0,y0,fixed_y0,yp0,fixed_yp0); y 0 m o d , y p 0 m o d = decic(odefun,t0,y0,fixed_y0,yp0,fixed_yp0,options) 。 運(yùn)行結(jié)果如下圖所示。 1 2 3 4 5 6 7 8 9 10 1 2 3
23、 4 5 6 7 8 9 10 11 t y 函數(shù)dde23()求解延遲微分方程組,其具體使用方法如下: s o l = dde23(ddefun,lags,history,tspan); s o l = dde23(ddefun,lags,history,tspan,option),option結(jié)構(gòu)體用于設(shè)置解法器的參數(shù)。 函數(shù)dde23()的返回值是一個(gè)結(jié)構(gòu)體,它包含7個(gè)屬性,其中重要的5個(gè)屬性如下: sol.x,dde23選擇計(jì)算的時(shí)間點(diǎn); sol.y,在時(shí)間點(diǎn)x上的解y(x); sol.yp,在時(shí)間點(diǎn)x上解的一階導(dǎo)數(shù)y(x); sol.history,方程初始值; sol.solver
24、,解法器的名字dde23; 若需得到tint時(shí)刻的解,可以使用函數(shù)deval,即yint = deval(sol,tint)。 函數(shù)bvp4c()的具體使用方法如下: sol = bvp4c(odefun,bcfun,solinit),odefun代表常微分方程組的函數(shù),bcfun是描述邊界條件的函數(shù),solinit是對(duì)方程解的猜測(cè)解; s o l = bvp4c(odefun,bcfun,solinit,options),使用options結(jié)構(gòu)體來設(shè)定解法器的參數(shù)。 運(yùn)行結(jié)果如下圖所示。 0 0.5 1 1.5 2 2.5 3 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 Mathieu方程在邊界條件下的解 x y 4階Mathieu方程的特征值 = 17.0973
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧汽貿(mào)的戰(zhàn)略規(guī)劃課件
- 農(nóng)藥產(chǎn)品化學(xué)登記評(píng)審中存在的問題修改
- 職業(yè)適應(yīng)與發(fā)展
- 中國傳統(tǒng)思想和領(lǐng)導(dǎo)藝術(shù)
- 學(xué)習(xí)英語最好的方法課件
- 團(tuán)隊(duì)建設(shè)與管理教材(PPT 42頁)
- 商務(wù)談判的準(zhǔn)備培訓(xùn)課件
- 單元吃奶和豆及其制品
- 氣管切開護(hù)理
- 七上281有理數(shù)的乘法1
- 素質(zhì)拓展學(xué)分重要性
- 地產(chǎn)項(xiàng)目策劃廣告創(chuàng)意
- 華通檸檬渠道推廣活動(dòng)案
- 酸堿平衡紊亂的判讀
- 氣管插管的困難評(píng)估課件