MATLAB在高等數學中的應用課件_第1頁
MATLAB在高等數學中的應用課件_第2頁
MATLAB在高等數學中的應用課件_第3頁
MATLAB在高等數學中的應用課件_第4頁
MATLAB在高等數學中的應用課件_第5頁
已閱讀5頁,還剩78頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第三章MATLAB在高等數學中的應用電子信息學院10/6/2023電子信息學院第三章MATLAB在高等數學中的應用電子信息學院10/613.1矩陣分析

3.1.1對角陣與三角陣

1.對角陣

只有對角線上有非0元素的矩陣稱為對角矩陣,對角線上的元素相等的對角矩陣稱為數量矩陣,對角線上的元素都為1的對角矩陣稱為單位矩陣。10/6/2023電子信息學院3.1矩陣分析

3.1.1對角陣與三角陣

1.對角陣

只2(1)提取矩陣的對角線元素

設A為m×n矩陣,diag(A)函數用于提取矩陣A主對角線元素,產生一個具有min(m,n)個元素的列向量。

diag(A)函數還有一種形式diag(A,k),其功能是提取第k條對角線的元素。

(2)構造對角矩陣

設V為具有m個元素的向量,diag(V)將產生一個m×m對角矩陣,其主對角線元素即為向量V的元素。

diag(V)函數也有另一種形式diag(V,k),其功能是產生一個n×n(n=m+)對角陣,其第k條對角線的元素即為向量V的元素。10/6/2023電子信息學院(1)提取矩陣的對角線元素

設A為m×n矩陣,diag(A3例先建立5×5矩陣A,然后將A的第一行元素乘以1,第二行乘以2,…,第五行乘以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:5);

D*A%用D左乘A,對A的每行乘以一個指定常數

10/6/2023電子信息學院例先建立5×5矩陣A,然后將A的第一行元素乘以1,第二行乘42.三角陣

三角陣又進一步分為上三角陣和下三角陣,所謂上三角陣,即矩陣的對角線以下的元素全為0的一種矩陣,而下三角陣則是對角線以上的元素全為0的一種矩陣。10/6/2023電子信息學院2.三角陣

三角陣又進一步分為上三角陣和下三角陣,所謂上三角5上三角矩陣

求矩陣A的上三角陣的MATLAB函數是triu(A)。

triu(A)函數也有另一種形式triu(A,k),其功能是求矩陣A的第k條對角線以上的元素。例如,提取矩陣A的第2條對角線以上的元素,形成新的矩陣B。下三角矩陣

在MATLAB中,提取矩陣A的下三角矩陣的函數是tril(A)和tril(A,k),其用法與提取上三角矩陣的函數triu(A)和triu(A,k)完全相同。10/6/2023電子信息學院上三角矩陣

求矩陣A的上三角陣的MATLAB函數是triu(63.1.2矩陣的轉置與旋轉

1.矩陣的轉置

轉置運算符是單撇號(‘)。

2.矩陣的旋轉

利用函數rot90(A,k)將矩陣A旋轉90o的k倍,當k為1時可省略。10/6/2023電子信息學院3.1.2矩陣的轉置與旋轉

1.矩陣的轉置

轉置運算符是73.矩陣的左右翻轉

對矩陣實施左右翻轉是將原矩陣的第一列和最后一列調換,第二列和倒數第二列調換,…,依次類推。MATLAB對矩陣A實施左右翻轉的函數是fliplr(A)。

4.矩陣的上下翻轉

MATLAB對矩陣A實施上下翻轉的函數是flipud(A)。10/6/2023電子信息學院3.矩陣的左右翻轉

對矩陣實施左右翻轉是將原矩陣的第一列和最83.1.3矩陣的逆與偽逆

1.矩陣的逆

對于一個方陣A,如果存在一個與其同階的方陣B,使得:

A·B=B·A=I(I為單位矩陣)

則稱B為A的逆矩陣,當然,A也是B的逆矩陣。

求一個矩陣的逆是一件非常煩瑣的工作,容易出錯,但在MATLAB中,求一個矩陣的逆非常容易。求方陣A的逆矩陣可調用函數inv(A)。

例用求逆矩陣的方法解線性方程組。

Ax=b

其解為:

x=A-1b10/6/2023電子信息學院3.1.3矩陣的逆與偽逆

1.矩陣的逆

對于一個方陣A,92.矩陣的偽逆

如果矩陣A不是一個方陣時,矩陣A沒有逆矩陣,但可以找到一個與A的轉置矩陣A‘同型的矩陣B,使得:

A·B·A=A

B·A·B=B

此時稱矩陣B為矩陣A的偽逆,也稱為廣義逆矩陣。在MATLAB中,求一個矩陣偽逆的函數是pinv(A)。10/6/2023電子信息學院2.矩陣的偽逆

如果矩陣A不是一個方陣時,矩陣A沒有逆矩陣,103.1.4方陣的行列式

把一個方陣看作一個行列式,并對其按行列式的規(guī)則求值,這個值就稱為矩陣所對應的行列式的值。在MATLAB中,求方陣A所對應的行列式的值的函數是det(A)。10/6/2023電子信息學院3.1.4方陣的行列式

把一個方陣看作一個行列式,并對其按113.1.5線性方程組求解3.1.5.1直接解法1.利用左除運算符的直接解法對于線性方程組Ax=b,可以利用左除運算符“\”求解:x=A\b例用直接解法求解下列線性方程組。命令如下:A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]';x=A\b10/6/2023電子信息學院3.1.5線性方程組求解10/6/2023電子信息學院123.1.5.2利用矩陣的分解求解線性方程組矩陣分解是指根據一定的原理用某種算法將一個矩陣分解成若干個矩陣的乘積。常見的矩陣分解有LU分解、QR分解、Cholesky分解,以及Schur分解、Hessenberg分解、奇異分解等。10/6/2023電子信息學院3.1.5.2利用矩陣的分解求解線性方程組10/6/202313(1)LU分解矩陣的LU分解就是將一個矩陣表示為一個交換下三角矩陣和一個上三角矩陣的乘積形式。線性代數中已經證明,只要方陣A是非奇異的,LU分解總是可以進行的。MATLAB提供的lu函數用于對矩陣進行LU分解,其調用格式為:[L,U]=lu(X):產生一個上三角陣U和一個變換形式的下三角陣L(行交換),使之滿足X=LU。注意,這里的矩陣X必須是方陣。[L,U,P]=lu(X):產生一個上三角陣U和一個下三角陣L以及一個置換矩陣P,使之滿足PX=LU。當然矩陣X同樣必須是方陣。實現LU分解后,線性方程組Ax=b的解x=U\(L\b)或x=U\(L\Pb),這樣可以大大提高運算速度。10/6/2023電子信息學院(1)LU分解10/6/2023電子信息學院14例用LU分解求解p79例3-5線性方程組。A=[6,3,4;-2,5,7;8,-4,-3];b=[3,-4,-7]';[L,U]=lu(A);x=U\(L\b)或采用LU分解的第2種格式,命令如下:[L,U,P]=lu(A);x=U\(L\P*b)10/6/2023電子信息學院例用LU分解求解p79例3-5線性方程組。10/6/202315(2)QR分解對矩陣X進行QR分解,就是把X分解為一個正交矩陣Q和一個上三角矩陣R的乘積形式。QR分解只能對方陣進行。MATLAB的函數qr可用于對矩陣進行QR分解,其調用格式為:[Q,R]=qr(X):產生一個一個正交矩陣Q和一個上三角矩陣R,使之滿足X=QR。[Q,R,E]=qr(X):產生一個一個正交矩陣Q、一個上三角矩陣R以及一個置換矩陣E,使之滿足XE=QR。實現QR分解后,線性方程組Ax=b的解x=R\(Q\b)或x=E(R\(Q\b))。10/6/2023電子信息學院(2)QR分解10/6/2023電子信息學院16例用QR分解求解線性方程組。命令如下:A=[6,3,4;-2,5,7;8,-4,-3];b=[3,-4,-7]';[Q,R]=qr(A);x=R\(Q\b)或采用QR分解的第2種格式,命令如下:[Q,R,E]=qr(A);x=E*(R\(Q\b))10/6/2023電子信息學院例用QR分解求解線性方程組。10/6/2023電子信息學院173.1.5.3迭代解法迭代解法非常適合求解大型系數矩陣的方程組。在數值分析中,迭代解法主要包括Jacobi迭代法、Gauss-Serdel迭代法、超松弛迭代法和兩步迭代法。1.Jacobi迭代法對于線性方程組Ax=b,如果A為非奇異方陣,則可將A分解為A=D-L-U,其中D為對角陣,其元素為A的對角元素,L與U為A的下三角陣和上三角陣,于是Ax=b化為:x=D-1(L+U)x+D-1b與之對應的迭代公式為:x(k+1)=D-1(L+U)x(k)+D-1b這就是Jacobi迭代公式。如果序列{x(k+1)}收斂于x,則x必是方程Ax=b的解。10/6/2023電子信息學院3.1.5.3迭代解法10/6/2023電子信息學院18Jacobi迭代法的MATLAB函數文件Jacobi.m如下:function[y,n]=jacobi(A,b,x0,eps)ifnargin==3eps=1.0e-6;elseifnargin<3errorreturnendD=diag(diag(A));%求A的對角矩陣L=-tril(A,-1);%求A的下三角陣U=-triu(A,1);%求A的上三角陣B=D\(L+U);f=D\b;y=B*x0+f;n=1;%迭代次數whilenorm(y-x0)>=epsx0=y;y=B*x0+f;n=n+1;end10/6/2023電子信息學院Jacobi迭代法的MATLAB函數文件Jacobi.m如下19例用Jacobi迭代法求解線性方程組。設迭代初值為0,迭代精度為10-6。在命令中調用函數文件Jacobi.m,命令如下:A=[10,-1,0;-1,10,-2;0,-2,10];b=[9,7,6]';[x,n]=jacobi(A,b,[0,0,0]',1.0e-6)(設x1,x2,x3為0,n為迭代的次數)10/6/2023電子信息學院例用Jacobi迭代法求解線性方程組。設迭代初值為0,迭代202.Gauss-Serdel迭代法將在Jacobi迭代過程中,原來的迭代公式Dx(k+1)=(L+U)x(k)+b改進為Dx(k+1)=Lx(k+1)+Ux(k)+b,于是得到:x(k+1)=(D-L)-1Ux(k)+(D-L)-1b該式即為Gauss-Serdel迭代公式。和Jacobi迭代相比,Gauss-Serdel迭代用新分量代替舊分量,精度會高些。10/6/2023電子信息學院2.Gauss-Serdel迭代法10/6/2023電子信息21Gauss-Serdel迭代法的MATLAB函數文件gauseidel.m如下:function[y,n]=gauseidel(A,b,x0,eps)ifnargin==3eps=1.0e-6;elseifnargin<3errorreturnendD=diag(diag(A));%求A的對角矩陣L=-tril(A,-1);%求A的下三角陣U=-triu(A,1);%求A的上三角陣G=(D-L)\U;f=(D-L)\b;y=G*x0+f;n=1;%迭代次數whilenorm(y-x0)>=epsx0=y;y=G*x0+f;n=n+1;end10/6/2023電子信息學院Gauss-Serdel迭代法的MATLAB函數文件gaus22例用Gauss-Serdel迭代法求解下列線性方程組。設迭代初值為0,迭代精度為10-6。在命令中調用函數文件gauseidel.m,命令如下:A=[10,-1,0;-1,10,-2;0,-2,10];b=[9,7,6]';[x,n]=gauseidel(A,b,[0,0,0]',1.0e-6)10/6/2023電子信息學院例用Gauss-Serdel迭代法求解下列線性方程組。設迭23例分別用Jacobi迭代和Gauss-Serdel迭代法求解下列線性方程組,看是否收斂。命令如下:a=[1,2,-2;1,1,1;2,2,1];b=[9;7;6];[x,n]=jacobi(a,b,[0;0;0])[x,n]=gauseidel(a,b,[0;0;0])10/6/2023電子信息學院例分別用Jacobi迭代和Gauss-Serdel迭代法求243.1.6矩陣的秩與跡

1.矩陣的秩

矩陣線性無關的行數與列數稱為矩陣的秩。在MATLAB中,求矩陣秩的函數是rank(A)。

2.矩陣的跡

矩陣的跡等于矩陣的對角線元素之和,也等于矩陣的特征值之和。在MATLAB中,求矩陣的跡的函數是trace(A)。10/6/2023電子信息學院3.1.6矩陣的秩與跡

1.矩陣的秩

矩陣線性無關的行數253.1.7向量和矩陣的范數

矩陣或向量的范數用來度量矩陣或向量在某種意義下的長度。范數有多種方法定義,其定義不同,范數值也就不同。10/6/2023電子信息學院3.1.7向量和矩陣的范數

矩陣或向量的范數用來度量矩陣261.向量的3種常用范數及其計算函數

在MATLAB中,求向量范數的函數為:

(1)norm(V)或norm(V,2):計算向量V的2—范數。

(2)norm(V,1):計算向量V的1—范數。

(3)norm(V,inf):計算向量V的∞—范數。2.矩陣的范數及其計算函數

MATLAB提供了求3種矩陣范數的函數,其函數調用格式與求向量的范數的函數完全相同。10/6/2023電子信息學院1.向量的3種常用范數及其計算函數

在MATLAB中,求向量273.1.8矩陣的條件數

在MATLAB中,計算矩陣A的3種條件數的函數是:

(1)cond(A,1)計算A的1—范數下的條件數。

(2)cond(A)或cond(A,2)計算A的2—范數數下的條件數。

(3)cond(A,inf)計算A的∞—范數下的條件數。10/6/2023電子信息學院3.1.8矩陣的條件數

在MATLAB中,計算矩陣A的3283.1.9矩陣的特征值與特征向量

在MATLAB中,計算矩陣A的特征值和特征向量的函數是eig(A),常用的調用格式有2種:

(1)E=eig(A):求矩陣A的全部特征值,構成向量E。

(2)[V,D]=eig(A):求矩陣A的全部特征值,構成對角陣D,并求A的特征向量構成V的列向量。10/6/2023電子信息學院3.1.9矩陣的特征值與特征向量

在MATLAB中,計算29例用求特征值的方法解方程。

3x5-7x4+5x2+2x-18=0

p=[3,-7,0,5,2,-18];

A=compan(p);%A的伴隨矩陣

x1=eig(A)%求A的特征值

x2=roots(p)%直接求多項式p的零點作業(yè):p120第8、14題10/6/2023電子信息學院例用求特征值的方法解方程。

3x5-7x4+5x2+2x303.2多項式計算3.2.1多項式的四則運算1.多項式的加減運算(詳見課本p87)作業(yè):編寫子函數可對任意二個多項式進行加減操作.(自動補零)2.多項式乘法運算函數conv(P1,P2)用于求多項式P1和P2的乘積。這里,P1、P2是兩個多項式系數向量。作業(yè):求多項式x4+8x3-10與多項式2x2-x+3的乘積。提高:對多項式進行四則運算,輸入表達式而不是向量,能輸出運算結果.10/6/2023電子信息學院3.2多項式計算10/6/2023電子信息學院313.多項式除法函數[Q,r]=deconv(P1,P2)用于對多項式P1和P2作除法運算。其中Q返回多項式P1除以P2的商式,r返回P1除以P2的余式。這里,Q和r仍是多項式系數向量。deconv是conv的逆函數,即有P1=conv(P2,Q)+r。作業(yè):求多項式x4+8x3-10除以多項式2x2-x+3的結果。10/6/2023電子信息學院3.多項式除法10/6/2023電子信息學院323.2.2多項式的導函數對多項式求導數的函數是:p=polyder(P):求多項式P的導函數p=polyder(P,Q):求P·Q的導函數[p,q]=polyder(P,Q):求P/Q的導函數,導函數的分子存入p,分母存入q。上述函數中,參數P,Q是多項式的向量表示,結果p,q也是多項式的向量表示。10/6/2023電子信息學院3.2.2多項式的導函數10/6/2023電子信息學院33例求有理分式的導數。命令如下:P=[1];Q=[1,0,5];[p,q]=polyder(P,Q)10/6/2023電子信息學院例求有理分式的導數。10/6/2023電子信息學院343.2.3多項式的求值MATLAB提供了兩種求多項式值的函數:polyval與polyvalm,它們的輸入參數均為多項式系數向量P和自變量x。兩者的區(qū)別在于前者是代數多項式求值,而后者是矩陣多項式求值。10/6/2023電子信息學院3.2.3多項式的求值10/6/2023電子信息學院351.代數多項式求值polyval函數用來求代數多項式的值,其調用格式為:Y=polyval(P,x)若x為一數值,則求多項式在該點的值;若x為向量或矩陣,則對向量或矩陣中的每個元素求其多項式的值。作業(yè):已知多項式x4+8x3-10,分別取x=1.2和一個2×3矩陣為自變量計算該多項式的值。10/6/2023電子信息學院1.代數多項式求值10/6/2023電子信息學院362.矩陣多項式求值polyvalm函數用來求矩陣多項式的值,其調用格式與polyval相同,但含義不同。polyvalm函數要求x為方陣,它以方陣為自變量求多項式的值。設A為方陣,P代表多項式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))作業(yè):仍以多項式x4+8x3-10為例,取一個2×2矩陣為自變量分別用polyval和polyvalm計算該多項式的值。10/6/2023電子信息學院2.矩陣多項式求值10/6/2023電子信息學院373.2.4多項式求根n次多項式具有n個根,當然這些根可能是實根,也可能含有若干對共軛復根。MATLAB提供的roots函數用于求多項式的全部根,其調用格式為:x=roots(P)其中P為多項式的系數向量,求得的根賦給向量x,即x(1),x(2),…,x(n)分別代表多項式的n個根。10/6/2023電子信息學院3.2.4多項式求根10/6/2023電子信息學院38例求多項式x4+8x3-10的根。命令如下:A=[1,8,0,0,-10];x=roots(A)若已知多項式的全部根,則可以用poly函數建立起該多項式,其調用格式為:P=poly(x)若x為具有n個元素的向量,則poly(x)建立以x為其根的多項式,且將該多項式的系數賦給向量P。10/6/2023電子信息學院例求多項式x4+8x3-10的根。10/6/2023電子信39例已知f(x)(1)計算f(x)=0的全部根。(2)由方程f(x)=0的根構造一個多項式g(x),并與f(x)進行對比。命令如下:P=[3,0,4,-5,-7.2,5];X=roots(P)%求方程f(x)=0的根G=poly(X)%求多項式g(x)作業(yè):p120第4、5題10/6/2023電子信息學院例已知f(x)10/6/2023電子信息學院4010/6/2023電子信息學院10/6/2023電子信息學院413.2.5數據插值3.2.5.1一維數據插值在MATLAB中,實現這些插值的函數是interp1,其調用格式為:Y1=interp1(X,Y,X1,'method')函數根據X,Y的值,計算函數在X1處的值。X,Y是兩個等長的已知向量,分別描述采樣點和樣本值,X1是一個向量或標量,描述欲插值的點,Y1是一個與X1等長的插值結果。method是插值方法,允許的取值有‘linear’、‘nearest’、‘cubic’、‘spline’。10/6/2023電子信息學院3.2.5數據插值10/6/2023電子信息學院42注意:X1的取值范圍不能超出X的給定范圍,否則,會給出“NaN”錯誤。例用不同的插值方法計算在π/2點的值。MATLAB中有一個專門的3次樣條插值函數Y1=spline(X,Y,X1),其功能及使用方法與函數Y1=interp1(X,Y,X1,‘spline’)完全相同。10/6/2023電子信息學院注意:X1的取值范圍不能超出X的給定范圍,否則,會給出“Na43例某觀測站測得某日6:00時至18:00時之間每隔2小時的室內外溫度(℃),用3次樣條插值分別求得該日室內外6:30至17:30時之間每隔2小時各點的近似溫度(℃)。設時間變量h為一行向量,溫度變量t為一個兩列矩陣,其中第一列存放室內溫度,第二列儲存室外溫度。命令如下:h=6:2:18;t=[18,20,22,25,30,28,24;15,19,24,28,34,32,30]';XI=6.5:2:17.5YI=interp1(h,t,XI,‘spline’)%用3次樣條插值計算10/6/2023電子信息學院例某觀測站測得某日6:00時至18:00時之間每隔2小時的室443.2.5.2二維數據插值在MATLAB中,提供了解決二維插值問題的函數interp2,其調用格式為:Z1=interp2(X,Y,Z,X1,Y1,'method')其中X,Y是兩個向量,分別描述兩個參數的采樣點,Z是與參數采樣點對應的函數值,X1,Y1是兩個向量或標量,描述欲插值的點。Z1是根據相應的插值方法得到的插值結果。method的取值與一維插值函數相同。X,Y,Z也可以是矩陣形式。同樣,X1,Y1的取值范圍不能超出X,Y的給定范圍,否則,會給出“NaN”錯誤。10/6/2023電子信息學院3.2.5.2二維數據插值10/6/2023電子信息學院45例設z=x2+y2,對z函數在[0,1]×[0,2]區(qū)域內進行插值。例某實驗對一根長10米的鋼軌進行熱源的溫度傳播測試。用x表示測量點0:2.5:10(米),用h表示測量時間0:30:60(秒),用T表示測試所得各點的溫度(℃)。試用線性插值求出在一分鐘內每隔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)10/6/2023電子信息學院例設z=x2+y2,對z函數在[0,1]×[0,2]區(qū)域內進463.2.5.3曲線擬合在MATLAB中,用polyfit函數來求得最小二乘擬合多項式的系數,再用polyval函數按所得的多項式計算所給出的點上的函數近似值。polyfit函數的調用格式為:[P,S]=polyfit(X,Y,m)函數根據采樣點X和采樣點函數值Y,產生一個m次多項式P及其在采樣點的誤差向量S。其中X,Y是兩個等長的向量,P是一個長度為m+1的向量,P的元素為多項式系數。polyval函數的功能是按多項式的系數計算x點多項式的值,將在6.5.3節(jié)中詳細介紹。10/6/2023電子信息學院3.2.5.3曲線擬合10/6/2023電子信息學院47例已知數據表[t,y],試求2次擬合多項式p(t),然后求ti=1,1.5,2,2.5,…,9.5,10各點的函數近似值。10/6/2023電子信息學院例已知數據表[t,y],試求2次擬合多項式p(t),然后求t483.3數據統(tǒng)計處理3.3.1最大值和最小值MATLAB提供的求數據序列的最大值和最小值的函數分別為max和min,兩個函數的調用格式和操作過程類似。1.求向量的最大值和最小值求一個向量X的最大值的函數有兩種調用格式,分別是:(1)y=max(X):返回向量X的最大值存入y,如果X中包含復數元素,則按模取最大值。10/6/2023電子信息學院3.3數據統(tǒng)計處理10/6/2023電子信息學院49(2)[y,I]=max(X):返回向量X的最大值存入y,最大值的序號存入I,如果X中包含復數元素,則按模取最大值。求向量X的最小值的函數是min(X),用法和max(X)完全相同。例6-1求向量x的最大值。命令如下:x=[-43,72,9,16,23,47];y=max(x)%求向量x中的最大值[y,l]=max(x)%求向量x中的最大值及其該元素的位置10/6/2023電子信息學院(2)[y,I]=max(X):返回向量X的最大值存入y,502.求矩陣的最大值和最小值求矩陣A的最大值的函數有3種調用格式,分別是:(1)max(A):返回一個行向量,向量的第i個元素是矩陣A的第i列上的最大值。(2)[Y,U]=max(A):返回行向量Y和U,Y向量記錄A的每列的最大值,U向量記錄每列最大值的行號。10/6/2023電子信息學院2.求矩陣的最大值和最小值10/6/2023電子信息學院51(3)max(A,[],dim):dim取1或2。dim取1時,該函數和max(A)完全相同;dim取2時,該函數返回一個列向量,其第i個元素是A矩陣的第i行上的最大值。求最小值的函數是min,其用法和max完全相同。例6-2分別求3×4矩陣x中各列和各行元素中的最大值,并求整個矩陣的最大值和最小值。10/6/2023電子信息學院(3)max(A,[],dim):dim取1或2。dim取523.兩個向量或矩陣對應元素的比較函數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完全相同。例6-3求兩個2×3矩陣x,y所有同一位置上的較大元素構成的新矩陣p。10/6/2023電子信息學院3.兩個向量或矩陣對應元素的比較10/6/2023電子信息學533.3.2求和與求積數據序列求和與求積的函數是sum和prod,其使用方法類似。設X是一個向量,A是一個矩陣,函數的調用格式為:sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘積。sum(A):返回一個行向量,其第i個元素是A的第i列的元素和。10/6/2023電子信息學院3.3.2求和與求積10/6/2023電子信息學院54prod(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行的各元素乘積。例6-4求矩陣A的每行元素的乘積和全部元素的乘積。10/6/2023電子信息學院prod(A):返回一個行向量,其第i個元素是A的第i列的元553.3.3平均值和中值求數據序列平均值的函數是mean,求數據序列中值的函數是median。兩個函數的調用格式為:mean(X):返回向量X的算術平均值。median(X):返回向量X的中值。mean(A):返回一個行向量,其第i個元素是A的第i列的算術平均值。median(A):返回一個行向量,其第i個元素是A的第i列的中值。mean(A,dim):當dim為1時,該函數等同于mean(A);當dim為2時,返回一個列向量,其第i個元素是A的第i行的算術平均值。median(A,dim):當dim為1時,該函數等同于median(A);當dim為2時,返回一個列向量,其第i個元素是A的第i行的中值。例6-5分別求向量x與y的平均值和中值。10/6/2023電子信息學院3.3.3平均值和中值10/6/2023電子信息學院563.3.4累加和與累乘積在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行的累乘積向量。例6-6求s的值。10/6/2023電子信息學院3.3.4累加和與累乘積10/6/2023電子信息學院573.3.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,當flag=0時,按σ1所列公式計算標準方差,當flag=1時,按σ2所列公式計算標準方差。缺省flag=0,dim=1。例6-7對二維矩陣x,從不同維方向求出其標準方差。10/6/2023電子信息學院3.3.5標準方差與相關系數10/6/2023電子信息學582.相關系數MATLAB提供了corrcoef函數,可以求出數據的相關系數矩陣。corrcoef函數的調用格式為:corrcoef(X):返回從矩陣X形成的一個相關系數矩陣。此相關系數矩陣的大小與矩陣X一樣。它把矩陣X的每列作為一個變量,然后求它們的相關系數。corrcoef(X,Y):在這里,X,Y是向量,它們與corrcoef([X,Y])的作用一樣。10/6/2023電子信息學院2.相關系數10/6/2023電子信息學院59例6-8生成滿足正態(tài)分布的10000×5隨機矩陣,然后求各列元素的均值和標準方差,再求這5列隨機數據的相關系數矩陣。命令如下:X=randn(10000,5);M=mean(X)D=std(X)R=corrcoef(X)10/6/2023電子信息學院例6-8生成滿足正態(tài)分布的10000×5隨機矩陣,然后求603.3.6排序MATLAB中對向量X是排序函數是sort(X),函數返回一個對X中的元素按升序排列的新向量。sort函數也可以對矩陣A的各列或各行重新排序,其調用格式為:[Y,I]=sort(A,dim)其中dim指明對A的列還是行進行排序。若dim=1,則按列排;若dim=2,則按行排。Y是排序后的矩陣,而I記錄Y中的元素在A中位置。例6-9對二維矩陣做各種排序。10/6/2023電子信息學院3.3.6排序10/6/2023電子信息學院613.4函數分析與數值積分3.4.1函數在MATLAB中的表示與函數的繪1.函數表示與計算a.函數文件p105頁的humps.m表示b.Inline內聯函數實現2.函數的繪制a.單變量函數繪制圖形命令fplot函數的調用格式為:fplot(fname,lims,tol,選項)其中fname為函數名,以字符串形式出現,lims為x,y的取值范圍,tol為相對允許誤差,其系統(tǒng)默認值為2e-3。選項定義與plot函數相同。例5-9用fplot函數繪制f(x)=cos(tan(πx))的曲線。命令如下:fplot('cos(tan(pi*x))',[0,1],1e-4)10/6/2023電子信息學院3.4函數分析與數值積分10/6/2023電子信息學院62b.簡易的函數繪圖命令ezplotMATLAB提供了一個ezplot函數繪制函數圖形,下面介紹其用法。(1)對于函數f=f(x),ezplot函數的調用格式為:ezplot(f):在默認區(qū)間-2π<x<2π繪制f=f(x)的圖形。ezplot(f,[a,b]):在區(qū)間a<x<b繪制f=f(x)的圖形。10/6/2023電子信息學院b.簡易的函數繪圖命令ezplot10/6/2023電子信息63(2)對于函數f=f(x,y),ezplot函數的調用格式為:ezplot(f):在默認區(qū)間-2π<x<2π和-2π<y<2π繪制f(x,y)=0的圖形。ezplot(f,[xmin,xmax,ymin,ymax]):在區(qū)間xmin<x<xmax和ymin<y<ymax繪制f(x,y)=0的圖形。ezplot(f,[a,b]):在區(qū)間a<x<b和a<y<b繪制f(x,y)=0的圖形。10/6/2023電子信息學院(2)對于函數f=f(x,y),ezplot函數的調用64(3)對于參數方程x=x(t)和y=y(t),ezplot函數的調用格式為:ezplot(x,y):在默認區(qū)間0<t<2π繪制x=x(t)和y=y(t)的圖形。ezplot(x,y,[tmin,tmax]):在區(qū)間tmin<t<tmax繪制x=x(t)和y=y(t)的圖形。10/6/2023電子信息學院(3)對于參數方程x=x(t)和y=y(t),ez653.4.2函數極值MATLAB提供了基于單純形算法求解函數極值的函數fmin和fmins,它們分別用于單變量函數和多變量函數的最小值,其調用格式為:x=fmin('fname',x1,x2)x=fmins('fname',x0)這兩個函數的調用格式相似。其中fmin函數用于求單變量函數的最小值點。fname是被最小化的目標函數名,x1和x2限定自變量的取值范圍。fmins函數用于求多變量函數的最小值點,x0是求解的初始值向量。10/6/2023電子信息學院3.4.2函數極值10/6/2023電子信息學院66MATLAB沒有專門提供求函數最大值的函數,但只要注意到-f(x)在區(qū)間(a,b)上的最小值就是f(x)在(a,b)的最大值,所以fmin(f,x1,x2)返回函數f(x)在區(qū)間(x1,x2)上的最大值。例求f(x)=x3-2x-5在[0,5]內的最小值點。(1)建立函數文件mymin.m。functionfx=mymin(x)fx=x.^3-2*x-5;(2)調用fmin函數求最小值點。x=fmin('mymin',0,5)x=0.816510/6/2023電子信息學院MATLAB沒有專門提供求函數最大值的函數,但只要注意到-f673.4.2數值積分與微分3.4.2.1數值積分基本原理求解定積分的數值方法多種多樣,如簡單的梯形法、辛普生(Simpson)法、牛頓-柯特斯(Newton-Cotes)法等都是經常采用的方法。它們的基本思想都是將整個積分區(qū)間[a,b]分成n個子區(qū)間[xi,xi+1],i=1,2,…,n,其中x1=a,xn+1=b。這樣求定積分問題就分解為求和問題。10/6/2023電子信息學院3.4.2數值積分與微分10/6/2023電子信息學院683.4.2.2數值積分的實現方法1.變步長辛普生法基于變步長辛普生法,MATLAB給出了quad函數來求定積分。該函數的調用格式為:[I,n]=quad('fname',a,b,tol,trace)其中fname是被積函數名。a和b分別是定積分的下限和上限。tol用來控制積分精度,缺省時取tol=0.001。trace控制是否展現積分過程,若取非0則展現積分過程,取0則不展現,缺省時取trace=0。返回參數I即定積分值,n為被積函數的調用次數。10/6/2023電子信息學院3.4.2.2數值積分的實現方法10/6/2023電子信息69例求定積分。(1)建立被積函數文件fesin.m。functionf=fesin(x)f=exp(-0.5*x).*sin(x+pi/6);(2)調用數值積分函數quad求定積分。[S,n]=quad('fesin',0,3*pi)S=0.9008n=7710/6/2023電子信息學院例求定積分。10/6/2023電子信息學院702.牛頓-柯特斯法基于牛頓-柯特斯法,MATLAB給出了quad8函數來求定積分。該函數的調用格式為:[I,n]=quad8('fname',a,b,tol,trace)其中參數的含義和quad函數相似,只是tol的缺省值取10-6。該函數可以更精確地求出定積分的值,且一般情況下函數調用的步數明顯小于quad函數,從而保證能以更高的效率求出所需的定積分值。10/6/2023電子信息學院2.牛頓-柯特斯法10/6/2023電子信息學院71例求定積分。(1)被積函數文件fx.m。functionf=fx(x)f=x.*sin(x)./(1+cos(x).*cos(x));(2)調用函數quad8求定積分。I=quad8('fx',0,pi)I=2.467410/6/2023電子信息學院例求定積分。10/6/2023電子信息學院72例分別用quad函數和quad8函數求定積分的近似值,并在相同的積分精度下,比較函數的調用次數。調用函數quad求定積分:formatlong;fx=inline('exp(-x)');[I,n]=quad(fx,1,2.5,1e-10)I=0.28579444254766n=6510/6/2023電子信息學院例分別用quad函數和quad8函數求定積分的近似值,并在相73調用函數quad8求定積分:formatlong;fx=inline('exp(-x)');[I,n]=quad8(fx,1,2.5,1e-10)I=0.28579444254754n=3310/6/2023電子信息學院調用函數quad8求定積分:10/6/2023電子信743.被積函數由一個表格定義在MATLAB中,對由表格形式定義的函數關系的求定積分問題用trapz(X,Y)函數。其中向量X,Y定義函數關系Y=f(X)。例用trapz函數計算定積分。命令如下:X=1:0.01:2.5;Y=exp(-X);%生成函數關系數據向量trapz(X,Y)ans=0.2857968241639310/6/2023電子信息學院3.被積函數由一個表格定義10/6/2023電子信息學院753.4.2二重定積分的數值求解3.4.2使用MATLAB提供的dblquad函數就可以直接求出上述二重定積分的數值解。該函數的調用格式為:I=dblquad(f,a,b,c,d,tol,trace)該函數求f(x,y)在[a,b]×[c,d]區(qū)域上的二重定積分。參數tol,trace的用法與函數quad完全相同。10/6/2023電子信息學院3.4.2二重定積分的數值求解10/6/2023電子信息學

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論