




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第5章MATLAB數(shù)值計算5.1 特殊矩陣5.2 矩陣分析5.3 矩陣分解與線性方程組求解5.4 數(shù)據(jù)處理與多項式計算5.5 傅立葉分析5.6 數(shù)值微積分5.7 常微分方程的數(shù)值求解5.8 非線性方程的數(shù)值求解5.9 稀疏矩陣5.1 特殊矩陣5.1.1對角陣與三角陣1. 矩陣的對角元素(1)提取矩陣的對角線元素 設(shè)A為mn矩陣,diag(A)函數(shù)用于提取矩陣A主對角線元素產(chǎn)生一個具有min(m,n)個元素的列向量。 diag(A)函數(shù)還有更進(jìn)一步的形式diag(A,k),其功能是提取第k條對角線的元素。(2)構(gòu)造對角矩陣 設(shè)V為具有m個元素的向量,diag(V)將產(chǎn)生一個mm對角矩陣,其主對角
2、線元素即為向量V的元素。 diag(V)函數(shù)也有更進(jìn)一步的形式diag(V,k),其功能是產(chǎn)生一個nn(n=m+)對角陣,其第k條對角線的元素即為向量V的元素。 例5.1 先建立55矩陣A,然后將A的第1行元素乘以1,第2行乘以2,第5行乘以5。命令如下:A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19;D=diag(1,2,3,4,5);D*A 2. 矩陣的三角陣 (1)下三角矩陣 求矩陣A的下三角陣的MATLAB函數(shù)是tril(A)。 tril(A)函數(shù)也有更進(jìn)一步的一種形式tril(A,k),其功能是求矩
3、陣A的第k條對角線以下的元素。 (2)上三角矩陣 在MATLAB中,提取矩陣A的上三角矩陣的函數(shù)是triu(A)和triu(A,k),其用法與提取下三角矩陣的函數(shù)tril(A)和tril(A,k)完全相同。 5.1.2 特殊矩陣的生成 1. 魔方矩陣 函數(shù)magic(n),其功能是生成一個n階魔方陣。 例5.2 將101125等25個數(shù)填入一個5行5列的表格中,使其每行每列及對角線的和均為565。 命令如下: B=100+magic(5) 2. 范得蒙矩陣 函數(shù)vander(V)生成以向量V為基礎(chǔ)向量的范得蒙矩陣。 3. 希爾伯特矩陣 生成希爾伯特矩陣的函數(shù)是hilb(n)。MATLAB中,有
4、一個專門求希爾伯特矩陣的逆的函數(shù)invhilb(n),其功能是求n階的希爾伯特矩陣的逆矩陣。4. 托普利茲矩陣 生成托普利茲矩陣的函數(shù)是toeplitz(x,y),它生成一個以x為第1列,y為第1行的托普利茲矩陣。這里x, y均為向量,二者不必等長。5. 友矩陣 生成友矩陣的函數(shù)是:compan(P),生成多項式P的友矩陣。P是一個多項式的系數(shù)向量,高次冪系數(shù)排在前,低次冪排在后。6. 帕斯卡矩陣 函數(shù)pascal(n)生成一個n階的帕斯卡矩陣。 例5.3求(x+y)5的展開式。在MATLAB命令窗口,輸入命令:pascal(6)ans = 1 1 1 1 1 1 1 2 3 4 5 6 1
5、3 6 10 15 21 1 4 10 20 35 56 1 5 15 35 70 126 1 6 21 56 126 252其次對角線上的元素1,5,10,10,5,1即為展開式的系數(shù)。5.2 矩陣分析5.2.1 矩陣結(jié)構(gòu)變換1. 矩陣的轉(zhuǎn)置轉(zhuǎn)置運算符是單撇號()。2. 矩陣的旋轉(zhuǎn)矩陣的旋轉(zhuǎn)利用函數(shù)rot90(A,k),功能是將矩陣A旋轉(zhuǎn)90的k倍,當(dāng)k為1時可省略。3. 矩陣的左右翻轉(zhuǎn)對矩陣A實施左右翻轉(zhuǎn)的函數(shù)是fliplr(A)。4. 矩陣的上下翻轉(zhuǎn)對矩陣A實施上下翻轉(zhuǎn)的函數(shù)是flipud(A)。 5.2.2 矩陣的逆與偽逆1. 矩陣的逆 求一個矩陣的逆非常容易。求方陣A的逆可調(diào)用函數(shù)i
6、nv(A)。例5.4 用求逆矩陣的方法解線性方程組。命令如下:A=1,2,3;1,4,9;1,8,27; b=5,2,6; x=inv(A)*b一般情況下,用左除比求矩陣的逆的方法更有效,即x=Ab。 2. 矩陣的偽逆MATLAB中,求一個矩陣偽逆的函數(shù)是pinv(A)。例5.5 求A的偽逆,并將結(jié)果送B。命令如下:A=3,1,1,1;1,3,1,1;1,1,3,1;B=pinv(A)例5.6 求矩陣A的偽逆。在MATLAB命令窗口,輸入命令:A=0,0,0;0,1,0;0,0,1;pinv(A) 5.2.3 方陣的行列式求方陣A所對應(yīng)的行列式的值的函數(shù)是det(A)。例5.7用克萊姆(Cra
7、mer)方法求解線性方程組。程序如下:D=2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2; %定義系數(shù)矩陣b=4;6;12;6; %定義常數(shù)項向量D1=b,D(:,2:4); %用方程組的右端向量置換D的第1列D2=D(:,1:1),b,D(:,3:4); %用方程組的右端向量置換D的第2列D3=D(:,1:2),b,D(:,4:4); %用方程組的右端向量置換D的第3列D4=D(:,1:3),b; %用方程組的右端向量置換D的第4列DD=det(D);x1=det(D1)/DD;x2=det(D2)/DD;x3=det(D3)/DD;x4=det(D4)/DD;x1,
8、x2,x3,x4 5.2.4 矩陣的秩MATLAB中,求矩陣秩的函數(shù)是rank(A)。例如,求例5.7中方程組系數(shù)矩陣D的秩,命令是:D=2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2;r=rank(D)r = 4說明D是一個滿秩矩陣。 5.2.5 向量和矩陣的范數(shù)1. 計算向量3種常用范數(shù)的函數(shù)(1)norm(V)或norm(V,2) 計算向量V的2范數(shù)(2)norm(V,1) 計算向量V的1范數(shù)(3)norm(V,inf) 計算向量V的范數(shù)例5.8 已知V,求V的3種范數(shù)。命令如下:V=-1,1/2,1;v1=norm(V,1) %求V的1范數(shù)v2=norm(V)
9、%求V的2范數(shù)vinf=norm(V,inf) %求范數(shù) 2. 矩陣的范數(shù)及其計算函數(shù)MATLAB中提供了求3種矩陣范數(shù)的函數(shù),其函數(shù)調(diào)用格式與求向量的范數(shù)的函數(shù)完全相同例5.9 求矩陣A的三種范數(shù)。命令如下:A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19;a1=norm(A,1) %求A的1范數(shù)a2=norm(A) %求A的2范數(shù)ainf=norm(A,inf) %求A的范數(shù) 5.2.6 矩陣的條件數(shù)和跡1. 的條件數(shù)MATLAB中,計算矩陣A的3種條件數(shù)的函數(shù)是:(1)cond(A,1) 計算A的1范數(shù)下
10、的條件數(shù)(2)cond(A)或cond(A,2) 計算A的2范數(shù)數(shù)下的條件數(shù)(3)cond(A,inf) 計算A的 范數(shù)下的條件數(shù)例5.10 求矩陣X的三種條件數(shù)。命令如下:A=2,2,3;4,5,-6;7,8,9;C1=cond(A,1)C2=cond(A)C3=cond(A,inf) 2. 矩陣的跡MATLAB中,求矩陣的跡的函數(shù)是trace(A)。例如,X=2 2 3;4 5 -6;7 8 9;trace(X)ans = 165.2.7 矩陣的特征值與特征向量MATLAB中,計算矩陣A的特征值和特征向量的函數(shù)是eig(A),常用的調(diào)用格式有3種:(1)E=eig(A) 求矩陣A的全部特征
11、值,構(gòu)成向量E。(2)V,D=eig(A) 求矩陣A的全部特征值,構(gòu)成對角陣D,并求A的特征向量構(gòu)成V的列向量。(3)V,D=eig(A,nobalance) 與第2種格式類似,但第2種格式中先對A作相似變換后求矩陣A的特征值和特征向量,而格式3直接求矩陣A的特征值和特征向量。例5.11 用3種不同的格式求A的特征值和特征向量。命令如下:A=1,2,2;1,-1,1;4,-12,1;E=eig(A)V,D=eig(A)V,D=eig(A,nobalance)例5.12用求特征值的方法解方程。命令如下:p=3,-7,0,5,2,-18;A=compan(p); %A的友矩陣x1=eig(A) %
12、求A的特征值x2=roots(p) %直接多項式p的零點兩種方法求得的方程的根是完全一致的,實際上,roots函數(shù)正是應(yīng)用求友矩陣的特征值的方法來求方程的根。5.2.8 MATLAB在三維向量中的應(yīng)用1. 向量共線或共面的判斷例5.13 設(shè)X=(1,1,1),Y=(-1,2,1),Z=(2,2,2),判斷這三個向量的共線共面問題。命令如下:X=1,1,1;Y=-1,2,1;Z=2,2,2;XY=X;Y;YZ=Y;Z;ZX=Z;X;XYZ=X;Y;Z;rank(XY)rank(YZ)rank(ZX)rank(XYZ) 2. 向量方向余弦的計算例5.14設(shè)向量V=(5,-3,2),求V的方向余弦。
13、建立一個函數(shù)文件direct.m:function f=f(v)r=norm(v);if r=0 f=0else f=v(1)/r,v(2)/r,v(3)/r;endreturn在MATLAB命令窗口,輸入命令:v=5,-3,2;f=direct(v) 3. 向量的夾角例5.15 設(shè)U=(1,0,0),V=(0,1,0),求U,V間的夾角。命令如下:U=1,0,0;V=0,1,0;r1=norm(U);r2=norm(V);UV=U*V;cosd=UV/r1/r2;D=acos(cosd)4. 兩點間的距離例5.16 設(shè) U=(1,0,0),V=(0,1,0),求U、V兩點間的距離。命令如下:
14、U=1,0,0;V=0,1,0;UV=U-V;D=norm(UV) 5. 向量的向量積例5.17設(shè)U=(2,-3,1),V=(3,0,4),求UV。命令如下:U=2,-3,1;V=3,0,4;W=eye(3);A1=W(1,:);U;V;A2=W(2,:);U;V;A3=W(3,:);U;V;UV=det(A1),det(A2),det(A3)UV= -12 -5 96. 向量的混合積例5.18 設(shè)U=(0,0,2),V=(3,0,5),W=(1,1,0),求以這三個向量構(gòu)成的六面體的體積。命令如下:U=0,0,2;V=3,0,5;W=1,1,0;A=U;V;W;det(A)ans = 67.
15、 點到平面的距離例5.19求原點到平面X+Y+Z=1的距離。命令如下:u = 0 , 0 , 0 ; v = 1 , 1 , 1 ; % A=B=C=1,u1=u2=u3=0,D=-1r=abs(u*v-1)/norm(v,2)r =0.57745.3 矩陣分解與線性方程組求解5.3.1矩陣分解1. 實對稱矩陣的QDQ分解例5.20設(shè)對稱矩陣A,對A進(jìn)行QDQ分解。命令如下:A=2,1,4,6;1,2,1,5;4,1,3,4;6,5,4,2;Q,D=eig(A)Q*D*Qans = 2.0000 1.0000 4.0000 6.0000 1.0000 2.0000 1.0000 5.0000
16、4.0000 1.0000 3.0000 4.0000 6.0000 5.0000 4.0000 2.0000結(jié)果與A相等,說明確實將A分解為了QDQ的乘積。 例5.21求下列二次型的標(biāo)準(zhǔn)形式及變換矩陣。命令如下:A=1,2,1;2,1,1;1,1,3;Q,D=eig(A)進(jìn)一步作線性變換即得關(guān)于u,v,w的標(biāo)準(zhǔn)二次型:2. 矩陣的LU分解MATLAB中,完成LU分解的函數(shù)是:(1)L,U=lu(A) 將方陣A分解為交換下三角矩陣L和上三角矩陣U,使 A=LU。(2)L,U,P=lu(A) 將方陣A分解為下三角矩陣L和上三角矩陣U,使 PA=LU。例5.22用LU分解求方程組的根。3. 矩陣的
17、QR分解對矩陣A進(jìn)行QR分解的函數(shù)是Q,R=qr(A),根據(jù)方陣A,求一個正交矩陣Q和一個上三角矩陣R,使A=Q*R。例如,對矩陣A進(jìn)行QR分解的命令是:A=2,1,-2;1,2,1;2,5,3;Q,R=qr(A) 5.3.2 線性方程組求解1. 線性方程組解的一般討論解線性方程組的一般函數(shù)文件如下:function x,y=line_solution(A,b) m,n=size(A);y=; if norm(b)0 %非齊次方程組 if rank(A)=rank(a,b) %方程組相容 if rank(A)=m %有唯一解 x=Ab; else %方程組有無窮多個解,基礎(chǔ)解系 disp(原方
18、程組有有無窮個解,其齊次方程組的基礎(chǔ)解系為y,特解為x); y=null(A,r); x=Ab; end else %方程組不相容,給出最小二乘法解 disp(方程組的最小二乘法解是:); x=Ab; end else %齊次方程組 if rank(A)=n %列滿秩 x=zero(m,1) %0解 else %非0解 disp(方程組有無窮個解,基礎(chǔ)解系為x); x=null(A,r); end endreturn2. 應(yīng)用舉例例5.23求線性方程組的解。在MATLAB命令窗口,輸入命令:A=2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2;b=4,6,12,6;x,y
19、=line_solution(A,b) %調(diào)用自定義函數(shù)例5.24求下列線性方程組的解。在MATLAB命令窗口,輸入命令:A=2,7,3,1;3,5,2,2;9,4,1,7;b=6,4,2;x,y=line_solution(A,b)5.4 數(shù)據(jù)處理與多項式計算5.4.1 數(shù)據(jù)統(tǒng)計與分析1. 求矩陣最大和最小元素(1)求向量的最大最小元素y=max(X) 返回向量X的最大元素存入y。y,I=max(X) 返回向量X的最大元素存入y,最大元素的序號存入I。(2)求矩陣的最大和最小元素max(A) 返回一個行向量,向量的第i個元素是A矩陣的第i列上的最大元素。Y,U=max(A) 返回兩個行向量,
20、Y向量記錄A的每列的最大元素,U向量記錄每列最大元素的行號。max(A,dim) dim取1或2。dim取1時,該函數(shù)和max(A)完全相同。dim取2時,該函數(shù)返回一個列向量,其第i個元素是A矩陣的第i行上的最大元素。(3)兩個向量或矩陣對應(yīng)元素的比較U=max(A,B) A,B是兩個同型的向量或矩陣。結(jié)果U是與A,B同型的向量或矩陣,U的每個元素等于A,B對應(yīng)元素的較大者。U=max(A,n) n是一個標(biāo)量。結(jié)果U是與A同型的向量或矩陣,U的每個元素等于A對應(yīng)元素和n中的較大者。min函數(shù)的用法和max完全相同。例5.25 求矩陣A的每行及每列的最大和最小元素,并求整個矩陣的最大和最小元。
21、命令如下:A=13,-56,78;25,63,-235;78,25,563;1,0,-1;max(A,2) %求每行最大元素min(A,2) %求每行最小元素max(A) %求每列最大元素min(A) %求每列最小元素max(max(A) %求整個矩陣的最大元素min(min(A) %求整個矩陣的最小元素2. 求矩陣的平均值和中值求矩陣和向量元素的平均值的函數(shù)是mean,求中值的函數(shù)是median。它們的調(diào)用方法和max函數(shù)完全相同。3. 矩陣元素求和與求積矩陣和向量求和與求積的基本函數(shù)是sum和prod,其使用方法和max類似。例5.26求矩陣A的每行元素的乘積和全部元素的乘積。命令如下:A
22、=1,2,3,4;5,6,7,8;9,10,11,12;S=prod(A,2)prod(S) %求A的全部元素的乘積4. 矩陣元素累加和與累乘積MATLAB中,使用cumsum和cumprod函數(shù)能方便地求得向量和矩陣元素的累加和與累乘積向量,函數(shù)的用法和sum及prod相同例5.27求向量X=(1!,2!,3!,10!)。命令如下:X=cumprod(1:10)5. 標(biāo)準(zhǔn)方差MATLAB中,提供了計算數(shù)據(jù)序列的標(biāo)準(zhǔn)方差的函數(shù)std。對于向量X,std(X)返回一個標(biāo)準(zhǔn)方差。對于矩陣A,std(A)返回一個行向量,它的各個元素便是矩陣A各列或各行的標(biāo)準(zhǔn)方差。std函數(shù)的一般調(diào)用格式為:std(
23、A,FLAG,dim)其中dim取1或2。當(dāng)dim=1時,求各列元素的標(biāo)準(zhǔn)方差;當(dāng)dim=2時,則求各行元素的標(biāo)準(zhǔn)方差。FLAG取0或1。6. 元素排序MATLAB中對向量X是排序函數(shù)是sort(X),函數(shù)返回一個對X中的元素按升序排列的新向量。sort函數(shù)也可以對矩陣A的各列(或行)重新排序,其調(diào)用格式為:Y,I=sort(A,dim)其中dim指明對A的列還是行進(jìn)行排序,若dim=1,則按列排,若dim=2,則按行排。Y是排序后的矩陣,而I記錄Y中的元素在A中位置。例5.28對矩陣做各種排序。命令如下:A=1,-8,5;4,12,6;13,7,-13;sort(A) %對A的每列按升序排序
24、-sort(-A,2) %對A的每行按降序排序X,I=sort(A) %對A按列排序,并將每個元素所在行號送矩陣I5.4.2 數(shù)值插值1. 一維數(shù)值插值interp1函數(shù)調(diào)用格式為:Y1=interp1(X,Y,X1,method)函數(shù)根據(jù)X、Y的值,計算函數(shù)在X1處的值。X、Y是兩個等長的已知向量,分別描述采樣點和樣本值,X1是一個向量或標(biāo)量,描述欲插值的點,Y1是一個與X1等長的插值結(jié)果。method是插值方法,允許的取值有l(wèi)inear(線性插值)、nearest(最近插值)、spline(三次樣條插值)、cubic(三次多項式插值),缺省值是linear。例5.29用不同的插值方法計算s
25、in(x)在/2點的值。這是一個一維插值問題。在MATLAB命令窗口,輸入命令:X=0:0.2:pi;Y=sin(X); %給出X、Yinterp1(X,Y,pi/2) %用缺省方法(即線性插值方法)計算sin(/2)interp1(X,Y,pi/2,nearest) %用最近方法計算sin(/2)interp1(X,Y,pi/2,linear) %用線性方法計算sin(/2)interp1(X,Y,pi/2,spline) %用三次樣條方法計算sin(/2)interp1(X,Y,pi/2,cubic) %用三次多項式方法計算sin(/2)M AT L A B 中 有 一 個 專 門 的 三
26、 次 樣 條 插 值 函 數(shù)Y1=spline(X,Y,X1),其功能及使用方法與函數(shù)Y1=interp1(X,Y,X1,spline)完全相同。 例5.30 已知檢測參數(shù)f隨時間t的采樣結(jié)果,用數(shù)值插值法計算t=2,7,12,17,22,17,32,37,42,47,52,57時f的值。這是一個一維數(shù)值插值問題,命令如下:T=0:5:65;X=2:5:57;F=3.2015,2.2560,879.5,1835.9,2968.8,4136.2,5237.9,6152.7,.6725.3,6848.3,6403.5,6824.7,7328.5,7857.6;F1=interp1(T,F,X) %
27、用線性方法插值F1=interp1(T,F,X,nearest) %用最近方法插值F1=interp1(T,F,X,spline) %用三次樣條方法插值F1=interp1(T,F,X,cubic) %用三次多項式方法插值2. 二維數(shù)值插值MATLAB中,提供了解決二維插值問題的函數(shù)。其調(diào)用格式為:Z1=interp2(X,Y,Z,X1,Y1,method)其中X、Y是兩個向量,分別描述兩個參數(shù)的采樣點,Z是與參數(shù)采樣點對應(yīng)的采樣變量的樣本值,X1、Y1是兩個向量或標(biāo)量,描述欲插值的點。method的取值與一維插值函數(shù)相同。例5.31設(shè)Z=x2+y2,對Z函數(shù)在(0,1)(0,2)區(qū)域內(nèi)進(jìn)行插
28、值。命令如下:x=0:0.1:10;y=0:0.2:20;X,Y=meshgrid(x,y);Z=X.2+Y.2;interp2(x,y,Z,0.5,0.5) %對函數(shù)在(0.5,0.5)點進(jìn)行插值interp2(x,y,Z,0.5 0.6,0.4) %對函數(shù)在(0.5,0.4)點和(0.6,0.4)點進(jìn)行插值interp2(x,y,Z,0.5 0.6,0.4 0.5) %對函數(shù)在(0.5,0.4)點和(0.6,0.5)點進(jìn)行插值interp2(x,y,Z,0.5 0.6,0.4 0.5)%對函數(shù)在(0.5,0.4),(0.6,0.4),(0.5,0.5)和(0.6,0.5)點進(jìn)行插值3. 三
29、維數(shù)值插值對三維函數(shù)插值的函數(shù)是interp3,其使用方法和interp2相同。其調(diào)用格式為:W1=interp3(X,Y,Z,W,X1,Y1,Z1,method)函數(shù)返回三維插值結(jié)果。其中X、Y、Z是三個向量,分別描述三個參數(shù)的采樣點,W是與參數(shù)采樣點對應(yīng)的采樣變量的樣本值,X1、Y1、Z1是三個向量或標(biāo)量,描述欲插值的點。method是插值方法,可選,其缺省值是 line。method的取值與一、二維插值函數(shù)相同。5.4.3 曲線擬合MATLAB中,提供了解決使用最小二乘法進(jìn)行曲線擬合的函數(shù)。調(diào)用格式為:P,S=polyfit(X,Y,m)函數(shù)根據(jù)采樣點X和采樣點函數(shù)值Y,產(chǎn)生一個m次多項
30、式P及其在采樣點的誤差向量S。其中X、Y是兩個等長的向量,P是一個長度為m+1的向量。例5.32 用一個5次多項式在區(qū)間0,2內(nèi)逼近函數(shù)sin(x)。命令如下:X=linspace(0,2*pi,50);Y=sin(X);P,S=polyfit(X,Y,5) %得到5次多項式的系數(shù)和誤差plot(X,Y,k*,X,polyval(P,X),k-)5.4.4 多項式計算1. 多項式的建立已知一個多項式的全部根X求多項式系數(shù)的函數(shù)是poly(X),該函數(shù)返回以X為全部根的一個多項式P,當(dāng)X是一個長度為m的向量時,P是一個長度為m+1的向量。2. 多項式求根求多項式p(x)的根的函數(shù)是roots(P
31、),這里,P是p(x)的系數(shù)向量,該函數(shù)返回方程p(x)=0的全部根(含重根,復(fù)根)。3. 多項式求值求多項式p(x)在某點或某些點的函數(shù)值的函數(shù)是polyval(P,x)。若x為一數(shù)值,則求多項式在該點的值;若x為向量或矩陣,則對向量或矩陣中的每個元素求其多項式的值。例5.33 已知一個多項式,計算: (1)計算f(x)=0 的全部根。(2)由方程f(x)=0的根構(gòu)造一個多項式g(x),并與f(x)進(jìn)行對比。(3)計算f(5)、f(7.8)、f(9.6)、f(12.3)的值。命令如下:P=3,0,4,-5,-7.2,5;X=roots(P) %求方程f(x)=0的根G=poly(X) %求多
32、項式g(x)X0=5,7.8,9.6,12.3;f=polyval(P,X0) %求多項式f(x)在給定點的值多項式求值還有一個函數(shù)是polyvalm,其調(diào)用格式與polyval相同,但含義不同。polyvalm函數(shù)要求x為方陣,它以方陣為自變量求多項式的值。 4. 多項式的四則運算(1)多項式的加減法(2)多項式的乘法函數(shù)conv(P1,P2)用于求多項式P1和P2的乘積。(3)多項式的除法函數(shù)Q,r=deconv(P1,P2)用于對多項式P1和P2作除法運算。其中Q返回多項式P1除以P2的商式,r返回P1除以P2的余式。這里,Q和r仍是多項式系數(shù)向量。deconv是conv的逆函數(shù),即有P
33、1=conv(P2,Q)+r。例5.34設(shè)有兩個多項式,計算:(1)求f(x)+g(x)、f(x)-g(x)。(2)求f(x)g(x)、f(x)/g(x)。在MATLAB命令窗口,輸入命令:f=3,-5,2,-7,5,6;g=3,5,-3;g1=0,0,0,g;f+g1 %求f(x)+g(x)f-g1 %求f(x)-g(x)conv(f,g) %求f(x)*g(x)Q,r=deconv(f,g) %求f(x)/g(x),商式送Q,余式送r。5. 多項式的導(dǎo)函數(shù)對多項式求導(dǎo)數(shù)的函數(shù)是:p=polyder(P) 求多項式P的導(dǎo)函數(shù)p=polyder(P,Q) 求P*Q的導(dǎo)函數(shù)p,q=polyder
34、(P,Q) 求P/Q的導(dǎo)函數(shù),導(dǎo)函數(shù)的分子存入p,分母存入q。例5.35求有理分式的導(dǎo)數(shù)。命令如下:P=3,5,0,-8,1,-5;Q=10,5,0,0,6,0,0,7,-1,0,-100;p,q=polyder(P,Q)5.4.5 函數(shù)的最大值與最小值MATLAB中用于求最小值的函數(shù)是:fmin(f,a,b) 求單變量函數(shù)f(x)在區(qū)間(a,b)上的最小值點。fmins(F,X0) 求多變量函數(shù)F(x)在估計值X0附近的最小值點。MATLAB沒有專門提供求函數(shù)最大值點的函數(shù),但只要注意到-f(x)在區(qū)間(a,b)上的最小值點就是f(x)在(a,b)的最大值點,所以fmin(-f,a,b)返回
35、函數(shù)f(x)在區(qū)間(a,b)上的最大值。例5.36 求函數(shù)f(x)在區(qū)間(-10,1)和(1,10)上的最小值點。首先建立函數(shù)文件fx.m:function f=f(x)f=x-1/x+5;return再在MATLAB命令窗口,輸入命令:fmin(fx,-10,-1) %求函數(shù)在區(qū)間(-10,-1)內(nèi)的最小值點fmin(f,1,10) %求函數(shù)在區(qū)間(1,10)內(nèi)的最小值點。注意函數(shù)名f不用加例5.37 設(shè)有函數(shù)f(x,y,z),求函數(shù)f在(0.5,0.5,0.5)附近的最小值。建立函數(shù)文件fxyz.m:function f=f(u)x=u(1);y=u(2);z=u(3);f=x+y.2./
36、x/4+z.2./y+2./z;return在MALAB命令窗口,輸入命令:U=fmins(fxyz,0.5,0.5,0.5) %求函數(shù)的最小值點fxyz(U) %求函數(shù)的最小值5.5 傅立葉分析MATLAB中,提供了對向量(或直接對矩陣的行或列)進(jìn)行離散傅立葉變換的函數(shù),其調(diào)用格式是:Y=fft(X,n,dim)(1)當(dāng)X是一個向量時,返回對X的離散傅立葉變換。(2)當(dāng)X是一個矩陣時,返回一個矩陣并送Y,其列(行)是對X的列(行)的離散傅立葉變換。例5.38 求X=(1,0,-3,5,2)的離散傅立葉逆變換。在MATLAB命令窗口,輸入命令:X=1,0,-3,5,2;Y=fft(X) %對X
37、進(jìn)行變換3. 離散傅立葉變換的逆變換MATLAB中,對向量(或直接對矩陣的行或列)進(jìn)行離散傅立葉逆變換的函數(shù)的調(diào)用方法是:Y=ifft(X,n,dim)函數(shù)對X進(jìn)行離散傅立葉逆變換。其中X、n、dim的意義及用法和離散傅立葉變換函數(shù)fft完全相同。例5.39 對矩陣A的列向量、行向量分別進(jìn)行離散傅立葉變換、并對變換結(jié)果進(jìn)行逆變換。命令如下:A=3,2,1,1;-5,1,0,1;3,2,1,5;fftA=fft(A) %求A的列向量的傅立葉變換fftA2=fft(A,4,2) %求A的行向量的傅立葉變換ifft(fftA) %對矩陣fftA的列向量進(jìn)行傅立葉逆變換,結(jié)果應(yīng)等于Aifft(fftA
38、2,4,2) %對矩陣fftA2的行向量進(jìn)行傅立葉逆變換,其結(jié)果應(yīng)等于A5.6 數(shù)值微積分5.6.1 數(shù)值微分MATLAB中,沒有直接提供求數(shù)值導(dǎo)數(shù)的函數(shù),只有計算向前差分的函數(shù)。DX=diff(X) 計算向量X的向前差分,DX(i)=X(i+1)-X(i),0in。D X = d i f f ( X , n ) 計 算 X 的 n 階 向 前 差 分 ,diff(X,2)=diff(diff(X)。DX=diff(A,n,dim) 計算矩陣A的n階差分,dim=1時(缺省狀態(tài)),按列計算差分,dim=2,按行計算差分。例5.40 求向量sin(X)的13階差分。設(shè)X由0,2間均勻分布的10個
39、點組成。命令如下:X=linspace(0,2*pi,10);Y=sin(X);DY=diff(Y); %計算Y的一階差分D2Y=diff(Y,2); %計算Y的二階差分,也可用命令diff(DY)計算D3Y=diff(Y,3); %計算Y的三階差分,也可用diff(D2Y)或diff(DY,2)例5.41 用不同的方法求函數(shù)f(x)的數(shù)值導(dǎo)數(shù),并在同一個坐標(biāo)系中做出f(x)的圖象。程序如下:f=inline(sqrt(x.3+2*x.2-x+12)+(x+5).(1/6)+5*x+2);g=inline(3*x.2+4*x-1)./sqrt(x.3+2*x.2-x+12)/2+1/6./(x
40、+5).(5/6)+5);x=-3:0.01:3;p=polyfit(x,f(x),5); %用5次多項式p擬合f(x)dp=polyder(p); %對擬合多項式p求導(dǎo)數(shù)dpdpx=polyval(dp,x); %求dp在假設(shè)點的函數(shù)值dx=diff(f(x,3.01)/0.01; %直接對f(x)求數(shù)值導(dǎo)數(shù)gx=g(x); %求函數(shù)f的導(dǎo)函數(shù)g在假設(shè)點的導(dǎo)數(shù)plot(x,dpx,x,dx,g.,x,gx,r-); %作圖5.6.2數(shù)值積分(1)被積函數(shù)是一個解析式函數(shù)quad(f,a,b,tol,trace)用于求被積函數(shù)f(x)在a,b上的定積分,tol是計算精度,缺省值是0.001。t
41、race非0時,畫出積分圖形。注意,調(diào)用quad函數(shù)時,先要建立一個描述被積函數(shù)f(x)的函數(shù)文件或語句函數(shù)。當(dāng)被積函數(shù)f含有一個以上的變量時,quad函數(shù)的調(diào)用格式為:quad(f,a,b,tol,trace,g1,g2)其中f,a,b,tol,trace等參數(shù)的含義同前。數(shù)值積分函數(shù)還有一種形式quad8,其用法與quad完全相同。例5.42 用兩種不同的方法求積分。先建立一個函數(shù)文件ex.m:function ex=ex(x)ex=exp(-x.2); %注意應(yīng)用點運算return然后,在MATLAB命令窗口,輸入命令:quad(ex,0,1,1e-6) %注意函數(shù)名應(yīng)加字符引號quad
42、8(ex,0,1,1e-6) %用另一函數(shù)求積分例5.43用trapz函數(shù)計算積分。在MATLAB命令窗口,輸入命令:X=0:0.01:1;Y=exp(-X.2);trapz(X,Y)(2)被積函數(shù)由一個表格定義MATLAB中,對由表格形式定義的函數(shù)關(guān)系的求定積分問題用trapz(X,Y)函數(shù)。其中向量X、Y定義函數(shù)關(guān)系Y=f(X)。(3)二重積分例5.44計算二重積分。建立一個函數(shù)文件fixy.m:function f=f(x,y)f=exp(-x.2-y.2);return建立一個命令文件ftxy1.m:for i=1:20 int2(i)=quad(fixy,0,1,x(i); %在二維
43、函數(shù)fixy中以x=x(i)代入并對y積分。end在MATLAB命令窗口,輸入命令:x=linspace(0,1,20);ftxy1trapz(x,int2)實際上,MATLAB提供了計算二重積分的函數(shù):dblquad(f,a,b,c,d,tol,trace)該函數(shù)求f(x,y)在a,bc,d區(qū)域上的二重積分。參數(shù)tol,trace的用法與函數(shù)quad完全相同。如果直接使用這里介紹的二重積分函數(shù)dblquad來求解本例就非常簡單,命令如下:g=inline(exp(-x.2-y.2);dblquad(g,0,1,0,1) %直接調(diào)用二重積分函數(shù)求解5.7 常微分方程的數(shù)值求解基于龍格庫塔法,M
44、ATLAB提供了求常微分方程數(shù)值解的函數(shù),一般調(diào)用格式為:X,Y=ode23(f,x0,xn,y0)X,Y=ode45(f,x0,xn,y0)其中X、Y是兩個向量,X對應(yīng)自變量x在求解區(qū)間x1,xn的一組采樣點,其采樣密度是自適應(yīng)的,無需指定;Y是與X對應(yīng)的一組解,f是一個函數(shù),x0,xn代表自變量的求解區(qū)間,y0=y(x0),由方程的初值給定。函數(shù)在求解區(qū)間x0,xn內(nèi),自動設(shè)立采樣點向量X,并求出解函數(shù)y在采樣點X處的樣本值。 例5.45 求微分方程初值問題在1,3區(qū)間內(nèi)的數(shù)值解,并將結(jié)果與解析解進(jìn)行比較。先建立一個該函數(shù)的m文件fxy1.m:function f=f(x,y)f=-2.*y./x+4*x %注意使用點運算符return再輸入命令:X,Y=ode45(fxy1,1,3,2);X %顯示自變量的一組采樣點Y %顯示求解函數(shù)與采樣點對應(yīng)的一組數(shù)值解(X.2+1./X.2) %顯示求解函數(shù)與采樣點對應(yīng)的一組解析解例5.46 求解初值問題在區(qū)間0,2中的解。建立一個函數(shù)文件 fxy2.m:function f=f(x,y)f(2)=-x.*y(2)+x.2-5;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路波形欄桿施工合同范本
- 小學(xué)音樂教學(xué)中體態(tài)律動的應(yīng)用
- 全款買房房屋合同范本
- 單位訂制酒瓶合同范本
- 北京租地種菜合同范本
- 動力變檢修合同范本
- 農(nóng)家菠菜售賣合同范本
- 醫(yī)院建筑改造合同范本
- 農(nóng)村水果收購合同范本
- 修車工合同范本模板
- (完整版)NRS數(shù)字分級法評分表
- LY∕T 2780-2016 松皰銹病菌檢疫技術(shù)規(guī)程
- 航空服務(wù)形體訓(xùn)練課程標(biāo)準(zhǔn)
- 項目部安全管理組織機(jī)構(gòu)網(wǎng)絡(luò)圖GDAQ20102
- 一文看懂全部變電站電氣主接線方式
- 蘇科版四年級勞動技術(shù)下冊教學(xué)計劃
- 應(yīng)答器報文定義《運基信號[2005]224號》
- 電網(wǎng)公司客戶資產(chǎn)接收管理細(xì)則
- 干部選拔任用工作報告(一報告兩評議).doc
- SH3503-2007石油化工建設(shè)工程項目交工技術(shù)文
- DLT-5293-2013 電氣裝置安裝工程 電氣設(shè)備交接試驗報告統(tǒng)一格式
評論
0/150
提交評論