第4章Matlab的其他函數(shù)庫課件_第1頁
第4章Matlab的其他函數(shù)庫課件_第2頁
第4章Matlab的其他函數(shù)庫課件_第3頁
第4章Matlab的其他函數(shù)庫課件_第4頁
第4章Matlab的其他函數(shù)庫課件_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1節(jié)數(shù)據(jù)分析數(shù)據(jù)庫

4.1.1基本的數(shù)據(jù)分析基本數(shù)據(jù)處理功能是按列進(jìn)行,行向則表示數(shù)據(jù)的不同的樣本。P63表例data=[154498367;158998175;1551006886;145637596;145637596;...141556575;155566485;147898777;1479654100;145607667]std(標(biāo)準(zhǔn)差)指各列中N個(gè)元素與該列平均值的平方和開方trapz(求積分)梯形法求積分近似求元素和4.1.2用于場(chǎng)論的數(shù)據(jù)分析cradient求二維場(chǎng)和三維場(chǎng)的近似梯度del2求二維場(chǎng)和三維場(chǎng)的拉普拉斯算子cross兩個(gè)相量的矢量積(叉乘)cot兩個(gè)相量的數(shù)量積(點(diǎn)乘)4.1.3用于隨機(jī)數(shù)據(jù)分析的函數(shù)rand(m,n)產(chǎn)生在0和1之間的m行n列的隨機(jī)數(shù)矩陣randn(m,n)產(chǎn)生正態(tài)分布的m行n列隨機(jī)數(shù)矩陣x=rand(1,1000);hist(x)y=randn(1,1000);hist(y,50)4.1.4用于相關(guān)分析和傅立葉分析的函數(shù)用于信號(hào)的時(shí)域分析和頻域處理。corrcoef給出兩個(gè)同長(zhǎng)信號(hào)的相關(guān)系數(shù)cov(x,y)給出協(xié)方差矩陣conv(x,y)給出x,y的卷積Filter(b,a,y)根據(jù)輸入信號(hào)x和線性系統(tǒng)求輸出信號(hào)的函數(shù)X=fft(x,N)求出時(shí)域信號(hào)x的離散傅立葉變換Xt=0:.001:3;u=sin(300*t)+2*cos(200*t);U=fft(u);plot(abs(U))第2節(jié)矩陣的分解與變換(matfun函數(shù)庫)

4.2.1線性方程組的系數(shù)矩陣det(a)求方陣a的行列式rank(a)秩trace(a)矩陣主對(duì)角線上元素的和(跡)inv(a)逆陣pinv(a)4.2.2矩陣的分解p68正交分解(qr分解)[q,r]=qr(b)奇異值分解(svd分解)[u,s,v]=svd(b)4.2.3矩陣的特征值分析[e,r]=eig(a)4.2.4特殊矩陣庫specmat常用的矩陣函數(shù)函數(shù)功能det計(jì)算矩陣所對(duì)應(yīng)的行列式值inv求矩陣的逆矩陣rank求矩陣的秩eig求特征值和特征向量orth正交化poly求特征多項(xiàng)式lu用高斯消元法所得的系數(shù)矩陣qr正交三角矩陣分解第3節(jié)多項(xiàng)式函數(shù)庫(polyfun)一元高次代數(shù)多項(xiàng)式Matlab中的表示方法a=[a(1),a(2),…,a(n),a(n+1)]冪次隱含在系數(shù)元素離向量右端的元素間隔中例:a(x)=3x3+2x+1則a=[3,0,2,1]4.3.1多項(xiàng)式簡(jiǎn)介多項(xiàng)式是形如下式的式子:P(x)=a0xn+a1xn-1+…+an-1x+an在MATLAB中,多項(xiàng)式用行向量表示:P=[a0a1a2…an-1an]多項(xiàng)式行向量的構(gòu)造直接鍵入,無該次冪則取零用poly(A)命令來生成矩陣A的特征多項(xiàng)式。*如果A是形如[a0a1…an-1an]的向量,由命令poly(A)可生成(x-a0)(x-a1)…(x-an-1)(x-an)所對(duì)應(yīng)的多項(xiàng)式。例:已知向量A=[1–34–80],用此向量構(gòu)造一多項(xiàng)式并顯示結(jié)果。A=[1-34-80];PA=poly(A)PA=11132606-2720PAX=poly2sym(PA,'X')PAX=X^3+113*X^2+2606*X-27204.3.2多項(xiàng)式運(yùn)算多項(xiàng)式的加減運(yùn)算運(yùn)算符+-進(jìn)行加減運(yùn)算的多項(xiàng)式應(yīng)該具有相同的階次,如果階次不同,低階的多項(xiàng)式必須用零添補(bǔ)至高階多項(xiàng)式的階次。例:求兩個(gè)多項(xiàng)式a(x)=5x4+4x3+3x2+2x+1和b(x)=3x2+0x+1的和。a=[54321];b=[301];c=a+[00b]c=54622多項(xiàng)式乘法多項(xiàng)式乘法采用conv函數(shù)。據(jù)上例求積:d=conv(a,b)d項(xiàng)式除法由deconv函數(shù)完成,結(jié)果包括商和余數(shù)兩部分。[div,rest]=deconv(d,a)div=301rest=0000000微分提供了微分函數(shù)polyder例:求多項(xiàng)式p(x)=2x4-6x3+3x2+0x+7的微分。p=[2-6307];q=polyder(p)q=8-1860pd=poly2sym(q,'x')pd=8*x^3-18*x^2+6*x求根多項(xiàng)式求根可用roots函數(shù)。例:求多項(xiàng)式p(x)=2x4-6x3+3x2+0x+7的根。p=[2-6307];x=roots(p)x=1.9322+0.4714i1.9322-0.4714i-0.4322+0.8355i-0.4322-0.8355i求值采用polyval函數(shù)可以求出當(dāng)多項(xiàng)式中的未知數(shù)為某個(gè)特定值時(shí)該多項(xiàng)式的值。例:求上例中x=1時(shí)的值。p=[2-6307];polyval(p,1)ans=6常用的多項(xiàng)式函數(shù)函數(shù)功能roots求多項(xiàng)式的根poly用根構(gòu)造多項(xiàng)式polyval計(jì)算多項(xiàng)式的值polyvalm計(jì)算參數(shù)為矩陣的多項(xiàng)式的值residue部分分式展開polyfit多項(xiàng)式數(shù)據(jù)擬合polyder微分conv乘法deconv除法應(yīng)用舉例例1:將式(x-4)(x+5)(x2-6x+9)展開為多項(xiàng)式形式,并求其對(duì)應(yīng)的一元n次方程的根。p=conv([1,-4],conv([15],[1,-6,9]))p=1-5-17129-180px=poly2sym(p,'x')px=x^4-5*x^3-17*x^2+129*x-180x=roots(p)x=-5.00004.00003.00003.0000例2:已知一元四次方程所對(duì)應(yīng)的四個(gè)根為-5.00004.00003.00003.0000求這個(gè)方程所對(duì)應(yīng)的表達(dá)式原型。x=[-5433];p=poly(x);px=poly2sym(p,'x')px=x^4-5*x^3-17*x^2+129*x-180

習(xí)題習(xí)題6:求解一元六次方程3x6+12x5+4x4+7x3+8x+1=0的根。習(xí)題7:求多項(xiàng)式3x6+12x5+4x4+7x3+8x+1=0被(x-3)(x3+5x)除后的結(jié)果。習(xí)題6:求解一元六次方程3x6+12x5+4x4+7x3+8x+1=0的根。習(xí)題7:求多項(xiàng)式3x6+12x5+4x4+7x3+8x+1=0被(x-3)(x3+5x)除后的結(jié)果。4.3.3多項(xiàng)式擬合P=polyfit(x,y,n)x,y為是已知的N個(gè)數(shù)據(jù)點(diǎn)坐標(biāo)的變量,其長(zhǎng)度為N,n是用來擬合的多項(xiàng)式的次數(shù),p是求出的多項(xiàng)式的系數(shù),n+1個(gè)系數(shù)x=0:0.1:1;y=[-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.30,11.2];a1=ployfit(x,y,1);xi=linspace(0,1);yi1=polyval(a1,xi);plot(x,y,'o',xi,yi1,'b'),holdona2=polyfit(x,y,2);yi2=polyval(a2,xi);plot(x,y,'o',xi,yi2,'m');holdona3=polyfit(x,y,3);yi3=polyval(a3,xi);plot(x,y,'o',xi,yi3,'r');holdona9=polyfit(x,y,9);yi9=polyval(a9,xi);plot(x,y,'o',xi,yi9,'c');holdona10=polyfit(x,y,10);yi10=polyval(a10,xi);plot(x,y,'o',xi,yi10,'g');holdon4.3.4多項(xiàng)式插值

如果在有限個(gè)數(shù)據(jù)點(diǎn)內(nèi)給出函數(shù),那么利用插值的方法就可以找到中間點(diǎn)的近似值。最簡(jiǎn)單的插值就是對(duì)兩個(gè)相鄰數(shù)據(jù)點(diǎn)進(jìn)行線性插值。插值函數(shù)分段,進(jìn)行等距離數(shù)據(jù)點(diǎn)的快速插值。結(jié)果為插值后的數(shù)據(jù)點(diǎn),插值數(shù)據(jù)應(yīng)通過給定的數(shù)據(jù)點(diǎn)插值方法method為

linear線性cubic三次cubicspline三次樣條一維線性插值函數(shù)interp1(x,y,xi,’method’)yit1=interp1(x,y,xi);plot(x,y,'o',xi,yit1)yit2=interp1(x,y,xi,'spline');plot(x,y,'o',xi,yit2,'g')spline(x,y,xx)

等同于interp1(x,y,xx,’spline’),但是參數(shù)必須是向量。spline(x,y)

返回三次樣條插值向量的pp形式,它是函數(shù)y=f(x)的近似值。pp是’piecewisepolynomial’的縮寫,得到的向量元素包含計(jì)算的三次樣條系數(shù)。這個(gè)命令可以被ppval函數(shù)使用。二維線性插值函數(shù)interp2(x,y,z,xi,yi,’method’)width=1:15;depth=1:3;temps=[8281808284;7963616581;8484828586];di=1:0.2:3;wi=1:0.2:5;tc=onterp2(width,depth,temps,wi,di','cubic');mesh(wi,di,tc)4.3.5線性微分方程的解Y(s)=B(s)/A(s)分解成多個(gè)s的一次分式之和(1)由[r,p,k]=residue(b,a)求出極點(diǎn)數(shù)組p和留數(shù)數(shù)組r求反變換第4節(jié)函數(shù)功能和數(shù)值積分函數(shù)庫(funfun)P4.6表分析繪制函數(shù)曲線fplot(’函數(shù)名’,[初值x0,終值xf])求函數(shù)極值fmin(’函數(shù)名’,初值x0,終值xf)求函數(shù)過零點(diǎn)fzero(’函數(shù)名’,初值x0,終值xf)定積分子程序quad(’函數(shù)名’,初值x0,終值xf)S=quad(‘humps’,1,2)求不定積分可以采用循環(huán)fori=1:20x(i)=0.1*i;y(i)=quad('humps',0,x(i));endplot(x,y),gridMATLAB中一元函數(shù)的積分可以用兩個(gè)函數(shù)來實(shí)現(xiàn):quad

和quadl。函數(shù)quad采用低階的自適應(yīng)遞歸Simpson方法,函數(shù)quadl采用高階自適應(yīng)Lobatto方法,該函數(shù)是quad8函數(shù)的替代。函數(shù)quad的調(diào)用格式如下:q=quad(fun,a,b),采用遞歸自適應(yīng)方法計(jì)算函數(shù)fun在區(qū)間 上的積分,其精確度為1e-6。q=quad(fun,a,b,tol),指定允許誤差,指定的誤差tol需大于1e-6。該命令運(yùn)行更快,但是得到的結(jié)果精確度降低。q=quad(fun,a,b,tol,trace),跟蹤迭代過程,輸出[fcntab-aQ]的值,分別為計(jì)算函數(shù)值的次數(shù)、當(dāng)前積分區(qū)間的左邊界、步長(zhǎng)和該區(qū)間內(nèi)的積分值。[q,fcnt]=quadl(fun,a,b,...),輸出函數(shù)值的同時(shí)輸出計(jì)算函數(shù)值的次數(shù)。任意函數(shù)的數(shù)值積分MATLAB中提供了用于積分的函數(shù),包括:一元函數(shù)的自適應(yīng)數(shù)值積分一元函數(shù)的矢量積分二重積分和三重積分這些函數(shù)如表所示。函數(shù)功能quad一元函數(shù)的數(shù)值積分,采用自適應(yīng)的Simpson方法quadl一元函數(shù)的數(shù)值積分,采用自適應(yīng)的Lobatto方法quadv一元函數(shù)的向量數(shù)值積分dblquad二重積分triplequad三重積分二重積分和三重積分MATLAB中二重積分和三重積分分別由函數(shù)dblquad()和函數(shù)triplequad()來實(shí)現(xiàn)。首先介紹函數(shù)dblquad(),該函數(shù)的基本格式如下:q=dblquad(fun,xmin,xmax,ymin,ymax),函數(shù)的參數(shù)分別為函數(shù)句柄、兩個(gè)自變量的積分限,返回積分結(jié)果。q=dblquad(fun,xmin,xmax,ymin,ymax,tol),指定積分結(jié)果的精度。q=dblquad(fun,xmin,xmax,ymin,ymax,tol,method),指定結(jié)果精度和積分方法,method的取值可以是@quadl,也可以是用戶自定義的積分函數(shù)句柄,該函數(shù)的調(diào)用格式必須與quad的調(diào)用格式相同。triplequad()函數(shù)的調(diào)用格式和dblquad()基本相同,在調(diào)用triplequad()函數(shù)時(shí),需要六個(gè)參數(shù)指定積分限。

任意函數(shù)的數(shù)值微分對(duì)于非剛性方程,可以選擇的算法如下:ode45:基于顯式Runge-Kutta(4,5)規(guī)則求解ode23:基于顯式Runge-Kutta(2,3)規(guī)則求解ode113:利用變階Adams-Bashforth-Moulton算法求解微分方程數(shù)字解剛性方程的求解方法如下:ode15s:基于數(shù)值積分公式的變階求解算法ode23s:采用二階改進(jìn)Rosenbrock公式的算法ode23t:采用自由內(nèi)插的梯形規(guī)則ode23tb:采用TR-BDF2算法,該算法為隱式Runge-Kutta公式,包含兩個(gè)部分,第一個(gè)部分為梯形規(guī)則,第二個(gè)部分為二階后向差分。例globalr,r=input('輸入r,在0到10間選擇2??=')x0=input('x0=0??=');xf=input('xf=30??=');y0=input('y0=[y10;y20]=[1;2]??=')[x,y]=ode45('vdp1',x0,xf,y0);plot(x,y)functionyprime=vdp1(x,y)globalr%r為全局變量,由主程序傳送yprime=[y(2);r*(1-y(1).^2).*y(2)-y(1)];%得到一階方程組第5節(jié)字符串函數(shù)庫

表4.8字符串賦值size(s);abs(s)Setstr(abs(s));dec2hex(abs(s))字符串語句的執(zhí)行eval

字符串輸入輸出disp()第6,7,8節(jié)字符串處理MATLAB真正強(qiáng)有力的地方在于它的數(shù)值處理能力。然而,經(jīng)常希望操作文本,例如把標(biāo)號(hào)和標(biāo)題放在圖上。在MATLAB里,文本當(dāng)作特征字符串或簡(jiǎn)單地當(dāng)作字符串。字符串內(nèi)的單引號(hào)是由兩個(gè)連續(xù)的單引號(hào)來表示。字符串連接可以直接從數(shù)組連接中得到。字符串函數(shù)eval(string)作為一個(gè)MATLAB命令求字符串的值eval(try,catch)blanks(n)返回一個(gè)n個(gè)零或空格的字符串deblank去掉字符串中后拖的空格feval求由字符串給定的函數(shù)值findstr從一個(gè)字符串內(nèi)找出字符串isletter字母存在時(shí)返回真值isspace空格字符存在時(shí)返回真值isstr輸入是一個(gè)字符串,返回真值lasterr返回上一個(gè)所產(chǎn)生MATLAB錯(cuò)誤的字符串strcmp字符串相同,返回真值strrep用一個(gè)字符串替換另一個(gè)字符串strtok在一個(gè)字符串里找出第一個(gè)標(biāo)記類型轉(zhuǎn)換charx=[776584766566];char(x)int2str四舍五入為整數(shù)轉(zhuǎn)換為字符串num2str將數(shù)字轉(zhuǎn)換為字符串mat2str將矩陣的數(shù)據(jù)轉(zhuǎn)換為字符串str2num單元結(jié)構(gòu)單元結(jié)構(gòu):cell把不同屬性的數(shù)據(jù)納入一個(gè)變量中類似于具有下標(biāo)的矩陣和多維數(shù)組,但這些下標(biāo)不是用圓括號(hào),而是用大括號(hào)括起來的。pp=cellstr({'asd''testetet''sfsdfsdfdfgsdgsg''sfdfgfdfgf'})顯示內(nèi)容:pp(1)和pp{1}的區(qū)別清空一個(gè)單元數(shù)據(jù):pp(3)=[]和pp{3}=[]的區(qū)別第9節(jié)MATLAB的符號(hào)計(jì)算(p299)數(shù)值運(yùn)算具有簡(jiǎn)單方便、面向?qū)嵱玫奶攸c(diǎn),適用于工程實(shí)踐及科學(xué)研究等各個(gè)方面,但同時(shí)出有一些缺點(diǎn),比如數(shù)值運(yùn)算所得的解都是工程實(shí)際中用到的近似解,它無法得到無誤差的最終解,而且在日常生活中,也存在著一些無法用數(shù)值運(yùn)算進(jìn)行描述的問題,即存在非數(shù)值運(yùn)算問題。引入符號(hào)運(yùn)算就能解決這方面的問題,就像我們平時(shí)進(jìn)行數(shù)學(xué)公式的推導(dǎo)一樣,它允許運(yùn)算對(duì)象和運(yùn)算過程中出現(xiàn)非數(shù)值的符號(hào)變量,這為我們進(jìn)行數(shù)據(jù)分析提供了有力工具。MATLAB所具有的符號(hào)數(shù)學(xué)工具箱與其它所有工具不同,它適用于廣泛的用途,而不是針對(duì)一些特殊專業(yè)或?qū)I(yè)分支。另外,MATLAB符號(hào)數(shù)學(xué)工具箱與其它的工具箱區(qū)別還因?yàn)樗褂米址畞磉M(jìn)行符號(hào)分析,而不是基于數(shù)組的數(shù)值分析。符號(hào)數(shù)學(xué)工具箱是操作和解決符號(hào)表達(dá)式的符號(hào)數(shù)學(xué)工具箱(函數(shù))集合,有復(fù)合、簡(jiǎn)化、微分、積分以及求解代數(shù)方程和微分方程的工具。另外還有一些用于線性代數(shù)的工具,求解逆、行列式、正則型式的精確結(jié)果,找出符號(hào)矩陣的特征值而無由數(shù)值計(jì)算引入的誤差。工具箱還支持可變精度運(yùn)算,即支持符號(hào)計(jì)算并能以指定的精度返回結(jié)果。符號(hào)數(shù)學(xué)工具箱中的工具是建立在功能強(qiáng)大的稱作Maple軟件的基礎(chǔ)上。它最初是由加拿大的滑鐵盧(Waterloo)大學(xué)開發(fā)的。當(dāng)要求MATLAB進(jìn)行符號(hào)運(yùn)算時(shí),它就請(qǐng)求Maple去計(jì)算并將結(jié)果返回到MATLAB命令窗口。因此,在MATLAB中的符號(hào)運(yùn)算是MATLAB處理數(shù)字的自然擴(kuò)展。5.9.1符號(hào)變量和符號(hào)表達(dá)式符號(hào)變量的創(chuàng)建利用單引號(hào)創(chuàng)建f=‘字符串’例:f=‘sin(w*t)‘

%定義一個(gè)正弦函數(shù)f=sin(w*t)G=‘(s+1)/(s+2)/(s+3)’

%定義傳遞函數(shù)G=(s+1)/(s+2)/(s+3)E=‘Dy+5*y=t’

%定義微分方程利用sym指令定義例:x=sym('x')x=xa=sym('a')b=sym('b')c=sym('c')符號(hào)變量x,a,b,c,分別表示字母x,a,b,c。symsabcx%符號(hào)變量x,a,b,c。在定義了符號(hào)變量的基礎(chǔ)上就可以定義符號(hào)表達(dá)式了。符號(hào)表達(dá)式的建立符號(hào)表達(dá)式是代表數(shù)字、函數(shù)、算子和變量的MATLAB字符串,或字符串?dāng)?shù)組。不要求變量有預(yù)先確定的值,符號(hào)方程式是含有等號(hào)的符號(hào)表達(dá)式。符號(hào)算術(shù)是使用已知的規(guī)則和給定符號(hào)恒等式求解這些符號(hào)方程的實(shí)踐,它與代數(shù)和微積分所學(xué)到的求解方法完全一樣。符號(hào)矩陣是數(shù)組,其元素是符號(hào)表達(dá)式。MATLAB在內(nèi)部把符號(hào)表達(dá)式表示成字符串,以與數(shù)字變量或運(yùn)算相區(qū)別;否則,這些符號(hào)表達(dá)式幾乎完全象基本的MATLAB命令表中列有幾則符號(hào)表達(dá)式例子以及MATLAB等效表達(dá)式。符號(hào)表達(dá)式MATLAB表達(dá)式'1/(2*x^n)'y='1/sqrt(2*x)''cos(x^2)-sin(2*x)'M=sym('[a,b;c,d]')f=int('x^3/sqrt(1-x)','a','b')利用sym指令創(chuàng)建表達(dá)式f=sym('a*x^2+b*x+c')f=a*x^2+b*x+c定義了符號(hào)表達(dá)式,就可以對(duì)表達(dá)式進(jìn)行諸如積分、微分、替換等符號(hào)工作。df=diff(f)df=2*a*x+b

nf=int(f)

nf=

1/3*a*x^3+1/2*b*x^2+c*x符號(hào)表達(dá)式中自變量的確定確定原則①在符號(hào)表達(dá)式中缺省的獨(dú)立變量是唯一的,除去i和j的小寫字母,不是單詞的一部分。②如果沒有這種字母,就選擇x作為獨(dú)立變量。③如字符不是唯一的,就選擇在字母順序中最接近x的字母。④如果有相連的字母,就選擇在字母表中離x最近的那一個(gè)。

實(shí)例符號(hào)表達(dá)式默認(rèn)自變量a*x^2+b*x+cx1/(4+cos(t))t4*x/yx2*a+bb2*i+4*jx

sin(pi/4)-cos(3/5)

xa*t+s/(u+3)usin(omega)x5.9.2微積分運(yùn)算極限求極限是微積分的基礎(chǔ),在MATLAB中提供了求表達(dá)式極限的函數(shù)limit,其基本用法見表。表達(dá)式函數(shù)格式備注limit(f,x,a)若a=0,且是對(duì)x求極限,可簡(jiǎn)寫為limit(f)。limit(f,x,a,’left’)左趨近于alimit(f,x,a,’right’)右趨近于a例:求1/x在0處的三個(gè)極限。symsxlimit(1/x,x,0)

%兩邊趨近ans=NaNlimit(1/x,x,0,‘left’)

%左邊趨近ans=-inflimit(1/x,x,0,‘right’)%右邊趨近ans=inf可利用極限方法求取函數(shù)的導(dǎo)數(shù)。其原理公式如下所示:求函數(shù)cos(x)的導(dǎo)數(shù)。symstxlimit((cos(x+t)-cos(x))/t,t,0)ans=-sin(x)

微分MATLAB提供了函數(shù)diff,專用于符號(hào)表達(dá)式的微分計(jì)算。其使用方法如下所示:①diff(f),求f對(duì)預(yù)設(shè)獨(dú)立變量的一次微分值。②diff(f,t),求f對(duì)獨(dú)立變量t的一次微分值。③diff(f,n),求f對(duì)預(yù)設(shè)獨(dú)立變量的n次微分值④diff(f,t,n),求f對(duì)獨(dú)立變量t的n次微分值。例:已知求f(x)的微分。symsabcxf=sym('a*x^2+b*x+c');diff(f)

%對(duì)默認(rèn)自變量x求微分。ans=2*a*x+bdiff(f,2)

%對(duì)x求二次微分。ans=2*adiff(f,a)

%對(duì)a求微分。ans=x^2diff(f,a,2)

%對(duì)a求二次微分。ans=0diff(diff(f),a)

%對(duì)x和a求微分。ans=2*x微分函數(shù)diff也可用于符號(hào)矩陣,其結(jié)果是對(duì)矩陣的每一個(gè)元素進(jìn)行微分運(yùn)算。例:symsabxD=[a*x,cos(x);b*a,sin(b*x)]D=[a*x,cos(x)][b*a,sin(b*x)]diff(D)ans=[a,-sin(x)][0,cos(b*x)*b]積分運(yùn)用函數(shù)可以求得符號(hào)表達(dá)式的積分,該函數(shù)用以演算函數(shù)的積分項(xiàng),這個(gè)函數(shù)要找出一符號(hào)表達(dá)式F使得diff(F)=f。相關(guān)的用法如下:①int(f)返回f對(duì)預(yù)設(shè)獨(dú)立變量的積分值。②int(f,’t’)返回f對(duì)獨(dú)立變量t的積分值。③int(f,a,b)返回f對(duì)預(yù)設(shè)獨(dú)立變量的積分值,積分區(qū)間為[a,b],a和b為數(shù)值表達(dá)式。④int(f,’t’,a,b)返回f對(duì)獨(dú)立變量t的積分值,積分區(qū)間為[a,b],a和b為數(shù)值表達(dá)式。⑤int(f,’m’,’n’)返回f對(duì)預(yù)設(shè)獨(dú)立變量的積分值,積分區(qū)間為[m,n],m和n為符號(hào)表達(dá)式。例:已知求f(x)的積分。symsabcxint(f)%表達(dá)式f的不定積分,自變量是x。ans=1/3*a*x^3+1/2*b*x^2+c*xint(f,x,0,2)%表達(dá)式f在[0,2]的定積分,自變量是x。ans=8/3*a+2*b+2*cint(f,a)

%表達(dá)式f的不定積分,自變量是a。ans=1/2*a^2*x^2+b*x*a+c*aint(int(f,a),x)ans=1/6*a^2*x^3+1/2*b*x^2*a+c*a*x與微分函數(shù)相似,積分函數(shù)int對(duì)符號(hào)矩陣的運(yùn)算是對(duì)矩陣中的每一個(gè)元素進(jìn)行的。symsabxD=[a*x,cos(x);b*a,sin(b*x)]D=[a*x,cos(x)][b*a,sin(b*x)]int(D)ans=[1/2*a*x^2,sin(x)][b*x*a,-1/b*cos(b*x)]級(jí)數(shù)求和symsum函數(shù)用于級(jí)數(shù)的求和。該函數(shù)的調(diào)用格式為:r=symsum(s),自變量為findsym函數(shù)所確定的符號(hào)變量,設(shè)其為k,則該表達(dá)式計(jì)算s從0到k-1的和;r=symsum(s,v),計(jì)算表達(dá)式s從0到v-1的和;r=symsum(s,a,b),計(jì)算自變量從a到b之間s的和;r=symsum(s,v,a,b),計(jì)算v從a到b之間的s的和。例:分別求級(jí)數(shù)的和。和symsksymsum(1/k,k,1,inf)ans=infsymsum(1/(k*(k+1)),k,1,inf)ans=1Taylor級(jí)數(shù)函數(shù)taylor用于實(shí)現(xiàn)Taylor級(jí)數(shù)的計(jì)算。該函數(shù)的調(diào)用格式為:r=taylor(f),計(jì)算表達(dá)式f的Taylor級(jí)數(shù),自變量由findsym函數(shù)確定,計(jì)算f的在0的6階Taylor級(jí)數(shù);r=taylor(f,n,v),指定自變量v和階數(shù)n;r=taylor(f,n,v,a),指定自變量v、結(jié)束n,計(jì)算f在a的級(jí)數(shù)。例:求sin(x)的前8項(xiàng)展開式。symsxtaylor(sin(x),8)ans=x-1/6*x^3+1/120*x^5-1/5040*x^75.9.3方程求解代數(shù)方程MATLAB提供了利用符號(hào)表達(dá)式求解代數(shù)方程的函數(shù):solve(f)

解符號(hào)方程式f。例:求一元二次方程的根。symsabcxf=sym('a*x^2+b*x+c')f=a*x^2+b*x+csolve(f)ans=[1/2/a*(-b+(b^2-4*a*c)^(1/2))][1/2/a*(-b-(b^2-4*a*c)^(1/2))]

例:利用上式,對(duì)指定變量解方程。solve(f,a)ans=-(b*x+c)/x^2例:對(duì)有等號(hào)的符號(hào)方程求解。solve('1+x=sin(x)')ans=-1.9345632107520242675632614537689例:solve('sin(x)=1/2')ans=1/6*pi對(duì)于含有周期函數(shù)方程求解時(shí),雖然它本身可能有無窮多個(gè)解,但MATLAB只給出零附近的有限幾個(gè)解。函數(shù)solve也可用于求解代數(shù)方程組,其用法如下:solve(f1,…,fn)解由f1,….fn組成的代數(shù)方程組。例:求方程的解。eq1=sym('x+y+z=10');eq2=sym('x-y+z=0');eq3=sym('2*x-y-z=-4');[x,y,z]=solve(eq1,eq2,eq3)x=2y=5z=3常微分方程MATLAB提供了求解微分方程式的函數(shù):dsolve(‘equation’,’condition’)其中,equation代表常微分方程式,condition為初始條件;如果初始條件沒有給出,則給出通解。函數(shù)dsovle句法與大多數(shù)其它函數(shù)有一些不同,方程用字母D來表示求微分,D2,D3等等表示幾重微分,并以此來設(shè)定方程。任何D后所跟的字母為因變量。求解方程時(shí)默認(rèn)所有這些變量都是對(duì)自變量t求導(dǎo)。例:求微分方程的通解。dsolve('Dy=5')ans=5*t+C1dsolve(‘Dy=x’,‘x’)

%求微分方程y’=x的通解,ans=

x為自變量。1/2*x^2+C1dsolve(‘D2y=1+Dy’)

%求微分方程的通解。ans=-t+C1+C2*exp(t)dsolve('D2y=1+Dy','y(0)=1','Dy(0)=0')ans=

%求微分方程的解,加初-t+exp(t)

始條件。該函數(shù)還可以用于求解微分方程組。例:[x,y]=dsolve('Dx=y+x,Dy=2*x')x=1/3*C1*exp(-t)+2/3*C1*exp(2*t)+1/3*C2*exp(2*t)-1/3*C2*exp(-t)y=2/3*C1*exp(2*t)-2/3*C1*exp(-t)+2/3*C2*exp(-t)+1/3*C2*exp(2*t)[x,y]=dsolve('Dx=y+x,Dy=2*x','x(0)=0,y(0)=1')x=1/3*exp(2*t)-1/3*exp(-t)y=2/3*exp(-t)+1/3*exp(2*t)已知:兩個(gè)線性一階方程,求其通解。 =3f+4g =-4f+3g[f,g]=dsolve('Df=3*f+4*g,Dg=-4*f+3*g')f=exp(3*t)*(cos(4*t)*C1+sin(4*t)*C2)g=-exp(3*t)*(sin(4*t)*C1-cos(4*t)*C2)[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g','f(0)=0,g(0)=1')f=exp(3*t)*sin(4*t)g=exp(3*t)*cos(4*t)5.9.4符號(hào)表達(dá)式的運(yùn)算函數(shù)功能symadd(A,B)完成A+B的符號(hào)加法老版本symsub(A,B)完成A-B的符號(hào)減法老版本symmul(A,B)完成A與B的符號(hào)乘法老版本symdiv(A,B)完成A與B的符號(hào)乘法老版本sympow(F,n)完成F^n的符號(hào)n次方運(yùn)算老版本numden(F)將F從有理數(shù)形式轉(zhuǎn)換成分子分母形式。eval(F)將F以數(shù)值式表示numeric(F)2009淘汰sym2poly(F)提取F中的多項(xiàng)式系數(shù)并以向量形式表示。poly2sym(c)轉(zhuǎn)換多項(xiàng)式系數(shù)向量c為符號(hào)多項(xiàng)式例:symsabf1=sym('1/(a-b)');f2=sym('2*a/(a+b)');f3=sym('(a+1)*(b-1)*(a-b)');symmul(f1,f3)ans=(a+1)*(b-1)sympow(f1,2)ans=1/(a-b)^2symadd(f1,f2)ans=1/(a-b)+2*a/(a+b)[n,d]=numden(symadd(f1,f2))n=a+b+2*a^2-2*a*bd=(a-b)*(a+b)p='(1+sqrt(5))/2'p=(1+sqrt(5))/2numeric(p)ans=1.61805.9.5符號(hào)表達(dá)式的化簡(jiǎn)一方面有時(shí)MATLAB返回的符號(hào)表達(dá)式難以理解,有許多工具可以使表達(dá)式變得更易讀懂。另一方面,符號(hào)表達(dá)式可用許多等價(jià)形式來提供。在不同的場(chǎng)合,某種形式可能勝于另一種。MATLAB提供了許多用來簡(jiǎn)化或改變符號(hào)表達(dá)式的函數(shù)。函數(shù)說明參見下頁表格。函數(shù)功能collect(F)將表達(dá)式F中相同冪次的項(xiàng)合并expand(F)將表達(dá)式F展開factor(F)將表達(dá)式F因式分解simplify(F)利用代數(shù)上的函數(shù)規(guī)則對(duì)表達(dá)式F進(jìn)行化簡(jiǎn)simple(F)盡可能的將F表達(dá)式再做簡(jiǎn)化,目的是使表達(dá)式以最少的字表示出來例:symsabf1=sym('(a-1)^2+(b+1)^2+a+b');f2=sym('a^3-1');f3=sym('1/a^4+2/a^3+3/a^2+4/a+5');collect(f1)ans=b^2+3*b+(a-1)^2+1+aexpand(f1)ans=a^2-a+2+b^2+3*bfactor(f1)ans=a^2-a+2+b^2+3*bfactor(f2)ans=(a-1)*(a^2+a+1)simplify(f3)ans=(1+2*a+3*a^2+4*a^3+5*a^4)/a^4函數(shù)simple用來求符號(hào)表達(dá)式或矩陣的最簡(jiǎn)形式,其格式為simple(F)。該函數(shù)會(huì)嘗試用多種不同化簡(jiǎn)方法對(duì)F進(jìn)行化簡(jiǎn),并顯示所有能夠化簡(jiǎn)F的方法,最后返回F的最簡(jiǎn)形式。如果F是一個(gè)矩陣,則返回的結(jié)果是整個(gè)矩陣的最簡(jiǎn)形式,而不一定是其中某一個(gè)元素的最簡(jiǎn)形式。simple(f3)simplify:(1+2*a+3*a^2+4*a^3+5*a^4)/a^4radsimp:(1+2*a+3*a^2+4*a^3+5*a^4)/a^4combine(trig):(1+2*a+3*a^2+4*a^3+5*a^4)/a^4factor:(1+2*a+3*a^2+4*a^3+5*a^4)/a^4expand:1/a^4+2/a^3+3/a^2+4/a+5combine:1/a^4+2/a^3+3/a^2+4/a+5convert(exp):1/a^4+2/a^3+3/a^2+4/a+5convert(sincos):1/a^4+2/a^3+3/a^2+4/a+5convert(tan):1/a^4+2/a^3+3/a^2+4/a+5collect(a):1/a^4+2/a^3+3/a^2+4/a+5ans=1/a^4+2/a^3+3/a^2+4/a+5通過上述實(shí)例,比較simple(f3)和simplify(f3)可以看出simple使用了多種方法,能夠改善simplify的結(jié)果,而simplify返回的不一定是最簡(jiǎn)結(jié)果。若只想得到最簡(jiǎn)形式,則可以使用[r,how]=simple(s)其中,r是符號(hào)變量;how是字符串。接上例:f3=sym('1/a^4+2/a^3+3/a^2+4/a+5')f3=1/a^4+2/a^3+3/a^2+4/a+5[r,how]=simple(f3)r=1/a^4+2/a^3+3/a^2+4/a+5how=collect(a)5.5.6sym函數(shù)MATLAB提供了將符號(hào)表達(dá)式變換成數(shù)值的函數(shù)sym,該函數(shù)可獲取一個(gè)數(shù)字參量并將其轉(zhuǎn)換為符號(hào)表達(dá)式。函數(shù)eval(numeric)的功能正好相反,它把一個(gè)符號(hào)常數(shù)(無變量符號(hào)表達(dá)式)變換為一個(gè)數(shù)值。函數(shù)sym一般用四個(gè)參數(shù)來控制,它們分別是f,r,e,d,其具體使用下表所示。函數(shù)sym不但可以完成單個(gè)元素的轉(zhuǎn)換,還可以將數(shù)值矩陣轉(zhuǎn)換為符號(hào)值矩陣,采用的指令形式為sym(A),其中A為要轉(zhuǎn)化的矩陣,不管原來的元素是何種形式,它都以最接近的形式給出結(jié)果。參數(shù)作用f返回該符號(hào)值的浮點(diǎn)表示r返回該符號(hào)值的有理數(shù)形式(系統(tǒng)默認(rèn))e返回帶有機(jī)器浮點(diǎn)誤差的有理值d返回十進(jìn)制數(shù)值(默認(rèn)數(shù)位長(zhǎng)度32位)例:sym(1/3,'f')ans='1.5555555555555'*2^(-2)sym(1/3,'r')ans=1/3sym(1/3,'e')ans=1/3-eps/12sym(1/3,'d')ans=.33333333333333331482961625624739例:A=[0.251/3;sqrt(2),sin(pi/3)]A=

0.25000.33331.41420.8660sym(A)ans=[1/4,1/3][sqrt(2),sqrt(3/4)]5.9.7表達(dá)式替換假設(shè)有一個(gè)以x為變量的符號(hào)表達(dá)式,并希望將變量轉(zhuǎn)換為y。MATLAB提供一個(gè)工具稱作subs,以便在符號(hào)表達(dá)式中進(jìn)行變量替換。相關(guān)的函數(shù)使用方法如下:①Subs(s)用賦值函數(shù)中的給定值替換符號(hào)表達(dá)式s中的所有變量。②Subs(s,new)用new替換s中的所有自由變量。③Subs(s,old,new)用符號(hào)或數(shù)值變量new替換s中的符號(hào)變量old。a=5;y=dsolve('Dy=-a*y')y=C1*exp(-a*t)subs(y)ans=C1*exp(-5*t)symsabsubs(a+b,a,4)ans=4+bsubs(cos(a)+sin(b),{a,b},{sym('alpha'),2})ans=cos(alpha)+sin(2)5.9.8符號(hào)積分變換符號(hào)傅立葉變換符號(hào)拉普拉斯變換符號(hào)Z變換傅立葉變換傅立葉變換由函數(shù)fourier實(shí)現(xiàn),該函數(shù)的調(diào)用格式為:F=fourier(f),實(shí)現(xiàn)函數(shù)f的傅立葉變換,如果f的默認(rèn)自變量為x,則返回f的傅立葉變換結(jié)果,默認(rèn)自變量為w;如果f的默認(rèn)自變量為w,則返回結(jié)果的默認(rèn)自變量為t;F=fourier(f,v),返回結(jié)果為v的函數(shù);fourier(f,v)F(t)=int(f(x)*exp(-i*v*x),x,-inf,inf)F=fourier(f,u,v),f的自變量為u,返回結(jié)果為v的函數(shù)。fourier(f,u,v)F(v)=int(f(u)*exp(-i*v*u),u,-inf,inf)傅立葉逆變換傅立葉逆變換由函數(shù)ifourier實(shí)現(xiàn),該函數(shù)的調(diào)用格式為:f=ifourier(F),實(shí)現(xiàn)函數(shù)F的傅立葉逆變換,如果F的默認(rèn)自變量為w,則返回結(jié)果f的默認(rèn)自變量為x,如果F的自變量為x,則返回結(jié)果f的自變量為t;f=ifourier(F,u),實(shí)現(xiàn)函數(shù)F的傅立葉逆變換,返回結(jié)果f為u的函數(shù);f=ifourier(F,v,u),實(shí)現(xiàn)函數(shù)F的傅立葉逆變換,F(xiàn)的自變量為v,返回結(jié)果f為u的函數(shù)。例:symstvwxfourier(1/t)ans=i*pi*(Heaviside(-w)-Heaviside(w))fourier(exp(-x^2),x,t)ans=pi^(1/2)*exp(-1/4*t^2)fourier(exp(-t)*sym('Heaviside(t)'),v)ans=1/(1+i*v)

fourier(diff(sym('F(x)')),x,w)ans=i*w*fourier(F(x),x,w)ifourier(w*exp(-3*w)*sym('Heaviside(w)'))ans=1/2/(-3+i*x)^2/piifourier(sym('fourier(f(x),x,w)'),w,x)ans=f(x)symsuifourier(1/(1+w^2),u)ans=1/2*exp(-u)*Heaviside(u)+1/2*exp(u)*Heaviside(-u)符號(hào)拉普拉斯變換laplace函數(shù)實(shí)現(xiàn)符號(hào)函數(shù)的拉普拉斯變換。該函數(shù)的調(diào)用格式為:laplace(F),實(shí)現(xiàn)函數(shù)F的拉普拉斯變換,如果F的默認(rèn)自變量為t,返回結(jié)果的默認(rèn)自變量為s;如果F的默認(rèn)自變量為s,則返回結(jié)果為t的函數(shù);laplace(F,t),返回函數(shù)的自變量為t;laplace(F,t)L(t)=int(F(x)*exp(-t*x),0,inf)laplace(F,w,z),指定F的自變量為w,返回結(jié)果為z的函數(shù);laplace(F,w,z)L(z)=int(F(w)*exp(-z*w),0,inf)拉普拉斯逆變換拉普拉斯逆變換由函數(shù)ilaplace實(shí)現(xiàn),該函數(shù)的調(diào)用格式為:F=ilaplace(L),實(shí)現(xiàn)函數(shù)L的拉普拉斯逆變換,如果L的自變量為s,則返回結(jié)果為t的函數(shù),如果L的自變量為t,則返回結(jié)果為x的函數(shù);F=ilaplace(L,y),返回結(jié)果為y的函數(shù);F=ilaplace(L,y,x),指定L的自變量為y,返回結(jié)果為x的函數(shù)。symsastwxlaplace(x^5)ans=120/s^6laplace(cos(x*w),w,t)ans=t/(t^2+x^2)laplace(diff(sym('F(x)')))ans=s*laplace(F(x),x,s)-F(0)f=sym('[1/(s-1)]')f=1/(s-1)ilaplace(f)ans=exp(t)符號(hào)Z變換Z變換由函數(shù)ztrans完成,該函數(shù)的用法為:F=ztrans(f),如果f的默認(rèn)自變量為n,則返回結(jié)果為z的函數(shù),如果f為函數(shù)z的函數(shù),則返回結(jié)果為w的函數(shù);F=ztrans(f,w),返回結(jié)果為w的函數(shù);ztrans(f,w)F(w)=symsum(f(n)/w^n,n,0,inf)F=ztrans(f,k,w),f的自變量為k,返回結(jié)果為w的函數(shù)。ztrans(f,k,w)F(w)=symsum(f(n)/w^k,k,0,inf)Z逆變換Z逆變換由函數(shù)iztrans完成,其調(diào)用格式為:f=iztrans(F),若F的默認(rèn)自變量為z,則返回結(jié)果為n的函數(shù),如果F是n的函數(shù),則返回結(jié)果為k的函數(shù);f=iztrans(F,k),指定返回結(jié)果為k的函數(shù);f=iztrans(F,w,k),指定F的自變量為w,返回結(jié)果為k的函數(shù)。例:symsknwza=ztrans(2^n)a=1/2*z/(1/2*z-1)simplify(a)ans=z/(z-2)b=ztrans(sin(k*n),w)b=-w*sin(k)/(-w^2+2*w*cos(k)-1)c=ztrans(cos(n*k),k,z)c=(z-cos(n))*z/(z^2-2*z*cos(n)+1)d=ztrans(cos(n*k),n,w)d=(cos(k)-w)*w/(-w^2+2*w*cos(k)-1)e=ztrans(sym('f(n+1)'))e=z*ztrans(f(n),n,z)-f(0)*zMAPLE函數(shù)的調(diào)用maple函數(shù)的使用mfun函數(shù)的使用maple函數(shù)的使用maple是符號(hào)工具箱中的一個(gè)通用命令,使用它可以實(shí)現(xiàn)對(duì)MAPLE中大部分函數(shù)的調(diào)用。其使用格式為:r=maple('statement'),其中statement為符合MAPLE語法的可執(zhí)行語句的字符串,該命令將sta

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論