第二章-Matlab軟件的數(shù)值計算方法_第1頁
第二章-Matlab軟件的數(shù)值計算方法_第2頁
第二章-Matlab軟件的數(shù)值計算方法_第3頁
第二章-Matlab軟件的數(shù)值計算方法_第4頁
第二章-Matlab軟件的數(shù)值計算方法_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章

Matlab軟件的數(shù)值計算方法1本章的討論重點:如何利用現(xiàn)有的Matlab數(shù)值計算資源,以最簡明的方式闡述理論數(shù)學(xué)、數(shù)值數(shù)學(xué)和Matlab

計算命令之間的內(nèi)在聯(lián)系、使用方法與重要技巧;對于經(jīng)過大學(xué)數(shù)學(xué)學(xué)習(xí)的讀者來說,通過本章的學(xué)習(xí),可以領(lǐng)悟到Matlab

精良完善的計算命令在數(shù)據(jù)計算、處理、表達(dá)等方面的獨特之處,掌握了這些基本知識,對于解決電氣工程實際問題的分析與描述,是必不可少的。概述2§2-1-1數(shù)值在Matlab中,數(shù)值多采用十進(jìn)制表示法,如數(shù)值3,-99,0.01,在Matlab的命令窗口中或者編輯器窗口中可以直接輸入它們,這與其它高級軟件沒有兩樣,在Matlab的命令窗口中或者編輯器窗口中需要按照以下形式進(jìn)行輸入或者錄入:-1.9e-6、5.41e13。3§2-1-2語句與變量最常用的格式為:變量=表達(dá)式;或直接簡化為:表達(dá)式;通過等于符號“=”將表達(dá)式的值賦予變量。當(dāng)鍵入回車鍵時,該語句被執(zhí)行。語句執(zhí)行之后,窗口自動顯示出語句執(zhí)行的結(jié)果。如果希望結(jié)果不被顯示,則只要在語句之后加上一個分號(;)即可。此時盡管結(jié)果沒有顯示,但它依然被賦值并在Matlab工作空間中分配了內(nèi)存。4變量命名規(guī)則(1)變量名第一個字符必須是英文字母;(2)變量名不得包含空格、標(biāo)點,但可以包含下劃線;如A_1,a_54等。(3)變量的名字不能超過19個字符;(4)變量的名是要區(qū)分字母的大小寫的。例如:A1、a1代表不同變量。5Matlab默認(rèn)的預(yù)定義變量預(yù)定義變量含

義預(yù)定義變量含

義ans計算結(jié)果的缺省變量名NaN

nan非數(shù),如

0/0eps浮點計算的相對精度nargin函數(shù)輸入宗量數(shù)目Inf

inf無窮大,如

1/0nargout函數(shù)輸出宗量數(shù)目i或

j虛單元

i=j=sqrt(-1)realmax最大正實數(shù)pirealmin最小正實數(shù)6§2-1-3運算符與表達(dá)式幾種基本數(shù)學(xué)運算符號,如:加(+)、減(-)、乘(*)、左除(/)、右除(\)和冪次運算(^)等數(shù)學(xué)符號。在Matlab中,用“/”代表左除運算,即常用除法;用“\”表示右除運算7表達(dá)式(1)Matlab表達(dá)式的規(guī)則與一般手寫算式基本相同:(2)表達(dá)式由變量名、運算符和函數(shù)名組成;(3)表達(dá)式按優(yōu)先級自左向右運算,括號可改變優(yōu)先級順序;(4)優(yōu)先級順序由高到低為:指數(shù)運算、乘除運算、加減運算;(5)表達(dá)式中賦值符“=”和運算符兩側(cè)允許有空格。8§2-2變量的運算a+b%求取a和b之和a-b%求取a和b之差a/b%求取矩陣a除以矩陣ba\b%求取矩陣b除以矩陣aa*b%求取矩陣a和矩陣b之積a.*b%求取矩陣a和矩陣b之點乘a^3%求取矩陣a的三次方a.^3%求取矩陣a中各個元素的三次方a./b%求取矩陣a中各個元素除以矩陣b各個元素a.\b%求取矩陣b中各個元素除以矩陣a各個元素9§2-2-2邏輯運算介紹A&B表示邏輯與運算;A|B表示邏輯或運算;~A表示邏輯非運算。xor(A,B)表示邏輯異或運算。在處理邏輯運算時,運算元只有兩個值即0和1,所以如果指定的數(shù)為0,MATLAB認(rèn)為其為0,而任何數(shù)不等于0,則認(rèn)為是1。10§2-2-2邏輯運算介紹A=[5-40-0.5],B=[0109]&與A&B=[0101]A&1=[1101]|或A|B=[1101]A|1=[1111]~非~A=[0010]~1=011§2-2-3關(guān)系表達(dá)式與表達(dá)式函數(shù)Matlab

中有以下關(guān)系:大于(>)、小于(<)、等于(==)和不等于(~=)等重要關(guān)系。判定方法不完全等同于這類只能處理單個標(biāo)量的語言。Matlab

關(guān)系表達(dá)式返回的是整個矩陣。Matlab

還可以用符號>=(大于等于)和<=(小于等于)來比較矩陣對應(yīng)元素的大小。12§2-2-4典型運算示例分析>>clear;clc;close;>>x=linspace(0,10,100);

%

在0和10之間,均勻產(chǎn)生100個數(shù)據(jù)>>y=sin(x);

%

計算正弦值>>z=(y>=0).*y;

%

將負(fù)的正弦值置為0>>z=z+0.5*(y<0);

%

將負(fù)的正弦值置為0.5>>z=(x<=8).*z;

%

將大于8的x值置為0>>plot(x,z);xlabel('x'),ylabel('z=f(x)'),

title('非連續(xù)信號')1314舉例2

>>clear;clc;close; >>x=linspace(0,10,100);

%

均勻產(chǎn)生100數(shù)據(jù)>>y=sin(x);

%

計算正弦值>>z=(y>=0).*y;

%

將負(fù)的正弦值置為0>>d=(y<=0).*y; %將正的正弦值置為0>>c=(z+0.5).*(y>0);%當(dāng)y>0時,c等于z+0.5>>plot(x,d,'-')>>holdon;plot(x,c,'-.');holdon>>plot(x,y,':');xlabel('x');ylabel('d,c,y');title('非連續(xù)信號');legend('d','c','y');1516半波整流器電路的仿真clear;clc,clf %clf可以清除圖形窗口中的圖形pi=3.14159265;vp=10;%循環(huán)命令

fori=1:1:101;

t(i)=(i-1)*6*pi/100;vi(i)=vp*sin(t(i));ifvi(i)>=0.7vo(i)=vi(i)-0.7;elsevo(i)=0;endendplot(t,vi,'.-',t,vo,'+');gridon;axis([06*pi-vpvp]);xlabel('t');ylabel('vin與vout');title('半波整流器');legend('原波形','整流波形');1718全波整流器電路的仿真clear;clc,clfpi=3.14159265;vp=10;%循環(huán)命令

fori=1:1:301;

t(i)=(i-1)*6*pi/300;vi(i)=vp*sin(t(i));ifvi(i)>0.7

vo(i)=vi(i)-0.7;

elsevo(i)=0;endifvi(i)<=-0.7vo(i)=abs(vi(i)+0.7);endendplot(t,vi,'.-',t,vo,'+');gridon;axis([06*pi-vpvp]);xlabel('t');ylabel('vin與vout');title('全波整流器');legend('原波形','全波整流波形');1920削頂整流正弦半波的計算和圖形繪制方法t=linspace(0,3*pi,600);y=100*sin(t);%產(chǎn)生正弦波z1=((t<pi)|(t>2*pi)).*y; %獲得整流半波w=((t>pi/3&t<2*pi/3)+(t>7*pi/3&t<8*pi/3));%關(guān)系邏輯運算和數(shù)值運算w_n=~w; z2=w*100*sin(pi/3)+w_n.*z1; %獲得削頂整流半波subplot(1,3,1),plot(t,y,'r:'),ylabel('y'),title('正弦曲線')subplot(1,3,2),plot(t,z1,'r:'),xlabel('t'),axis([010-100100]),title('整流半波曲線')subplot(1,3,3),plot(t,z2,'b-'),axis([010-100100]),title('削頂整流半波曲線')2122§2-3Matlab中標(biāo)點符號說明名

稱標(biāo)點作

用空格

分隔輸入量;分隔數(shù)組元素逗號,作為要顯示結(jié)果的命令的結(jié)尾;分隔輸入量;分隔數(shù)組元素黑點.小數(shù)點分號;作為不顯示結(jié)果的命令的結(jié)尾;分隔數(shù)組中的行冒號:用作生成一維數(shù)組;用作下標(biāo)時,表示該維數(shù)組的所有元素注釋號%其后內(nèi)容為注釋內(nèi)容單引號''其內(nèi)容為字符串圓括號()用作數(shù)組標(biāo)識;表示函數(shù)輸入量列表時用方括號[]輸入數(shù)組時用;表示函數(shù)輸出量列表時用花括號{}用作元胞數(shù)組標(biāo)識下劃線_用在變量、函數(shù)和文件名中續(xù)行號…將長命令行分成兩行輸入,保持兩行的邏輯連續(xù)23§2-4多項式的運算命令函數(shù)多項式相乘的命令函數(shù)conv

命令格式:p=conv(p1,p2)說明:它表示多項式p1和p2相乘。24多項式相除的命令函數(shù)deconv

命令格式:[q,r]=deconv(p1,p2)說明:它表示多項式p1除以p2,商為q,余數(shù)為r,即p1=p2q+r。25多項式因式分解的命令函數(shù)residue命令格式(1):[r,p,s]=residue(Num,Den)說明:它用于因式分解,余數(shù)(又稱留數(shù))返回到向量r=[r1,r2,r3…rn],極點返回到列向量p=[p1,p2,p3…pn],常數(shù)項返回到k。命令格式(2):[num,den]=residue(r,p,k)說明:它可以將部分分式轉(zhuǎn)化為多項式比,即:num(s)/den(s)

26產(chǎn)生多項式系數(shù)向量的命令函數(shù)poly命令格式為:P=poly(A)說明:若A是方陣,則行向量P為A的特征多項式的系數(shù);若A是行向量,則將A的元素作為多項式的根來構(gòu)造多項式,其形式為:f(x)=(x-a1)(x-a2)…(x-an),P為構(gòu)造的多項式的系數(shù)向量。27多項式擬合的命令函數(shù)多項式擬合又稱為曲線擬合,其目的就是在眾多的樣本點中進(jìn)行擬合,找出滿足樣本點分布的多項式。在Matlab中,擬合多項式的命令格式為:p=polyfit(x,y,n)說明:x和y為樣本點向量,n為所求多項式的階數(shù),p為求出的多項式。28擬合多項式舉例clear;clc;close;x=0:0.1:2*pi; %生成樣本點xy=sin(x)+0.5*rand(size(x));%生成樣本%點y,通過隨機矩陣p=polyfit(x,y,4) %擬合出多項式4階y1=polyval(p,x); %求多項式的值plot(x,y,'+',x,y1,'-r') %繪制多項式title('曲線擬合')%曲線,以驗證結(jié)果2930多項式插值的命令函數(shù)多項式插值所用命令有一維的interp1、二維的interp2、三維的interp3。這些命令分別有不同的方法(method),設(shè)計者可以根據(jù)需要選擇適當(dāng)?shù)姆椒?,以滿足系統(tǒng)不同屬性的要求。如需得到有關(guān)多項式插值命令的更詳細(xì)的幫助信息,請讀者在Matlab命令窗口中鍵入以下命令:>>helpinterp1或者>>helpinterp2或者>>helpinterp331格式之一:yi=interp1(xs,ys,xi,’method’)一維數(shù)據(jù)插值(表格查找)。該命令對原始數(shù)據(jù)點(xs,ys)之間計算內(nèi)插值。它找出一元函數(shù)f(x)在中間點的數(shù)值即插值數(shù)據(jù)點(xi,yi)。其中函數(shù)f(x)由所給數(shù)據(jù)決定。32’method’說明鄰近點插值(method=‘nearest’):這種插值方法將插值結(jié)果的值設(shè)置為最近的數(shù)據(jù)點的值。線性插值(method=‘linear’),這種插值方法在兩個數(shù)據(jù)點之間連接直線,根據(jù)給定的插值點計算出它們在直線上的值,作為插值結(jié)果,該方法是interp1命令的缺省方法。三次樣條插值(method=‘spline’):這種插值方法通過數(shù)據(jù)點擬合出三次樣條曲線,根據(jù)給定的插值點計算出它們在曲線上的值,作為插值結(jié)果。輸出結(jié)果也最平滑;立方插值(method='cubic'):這種插值方法通過分段立方Hermite插值方法計算插值結(jié)果。該方法最占內(nèi)存,輸出結(jié)果與三次樣條插值spline差不多。33格式之二:yi=interp1(xs,ys,xi)說明:返回插值向量yi,每一元素對應(yīng)于參量xi,同時由向量xs與ys的內(nèi)插值決定。參量xs指定數(shù)據(jù)ys的點。若ys為一矩陣,則按ys的每列計算。yi是階數(shù)為length(xi)*size(ys,2)的輸出矩陣。格式之三:yi=interp1(ys,xi)說明:假定xs=1:N,其中N為向量ys的長度,或者為矩陣ys的行數(shù)。34多項式插值舉例ys=[0,0.8,0.7,.6.9,1,0,0.1,-0.3,-0.7,-0.9,-0.2,-.1,0,-.4,-.7,0,1];%已有的樣本點ysxs=0:length(ys)-1; %已有的樣本點xsx=0:0.1:length(ys)-1; %新的插值樣本點xiy1=interp1(xs,ys,x,'nearest');%使用nearest方法插值產(chǎn)生新的樣本點yi1y2=interp1(xs,ys,x,'linear');%使用linear方法插值產(chǎn)生新的樣本點yi2y3=interp1(xs,ys,x,'spline');%使用spline方法插值產(chǎn)生新的樣本點yi3y4=interp1(xs,ys,x,'cubic');%使用cubic方法插值產(chǎn)生新的樣本點yi4plot(xs,ys,'+k',x,y1,':r',x,y2,'-m',x,y3,'--c',x,y4,'--b');%分別繪制不同方法插值產(chǎn)生新的多項式曲線legend('sampled

point','nearest','linear','spline','cubic');title('多項式插值')3536§2-5數(shù)據(jù)處理與分析方法命令格式:plot(x1,y1,option1,x2,y2,option2,…)說明:x1,y1給出的數(shù)據(jù)分別為x,y軸坐標(biāo)值,option1為選項參數(shù),以逐點連折線的方式繪制第一個二維圖形;同時類似地繪制第二個二維圖形,……等。37fplot的命令格式命令格式:fplot((Fun,[XMINXMAX])說明:它用于繪制類似函數(shù)fun=f(x)形式的曲線(即一元函數(shù)),只需指明橫坐標(biāo)x的取值范圍[XMINXMAX]即可。38ezplot的命令格式命令格式:ezplot(f,[min,max])說明:用于繪制函數(shù)形式為f=f(x)在自變量x為min<x<max范圍時的曲線。命令格式:ezplot(f,[xmin,xmax,ymin,ymax])說明:在平面矩形區(qū)域[xmin<x<xmax,ymin<y<ymax]上畫出函數(shù)f(x,y)=0的圖形。39ezplot3的命令格式命令格式(1):ezplot3(x,y,z)說明:在缺省的范圍0<t<2內(nèi)畫空間參數(shù)形式的曲線x=x(t)、y=y(t)與z=z(t)的圖形。命令格式(2):ezplot3(x,y,z,[tmin,tmax])說明:在指定的范圍tmin<t<tmax內(nèi)畫空間參數(shù)形式為x=x(t)、y=y(t)與z=z(t)的曲線。40subplot的命令格式命令格式:subplot(mnk)或者subplot(m,n,k)說明:它表示分割圖形顯示窗口,m表示上下分割個數(shù),n表示左右分割個數(shù),k為子圖編號。41分割圖形命令使用方法舉例subplot(2,2,1),fplot(@humps,[0,1]);title('圖形1')f=inline('abs(exp(-j*x*(0:9))*ones(10,1))');subplot(2,2,2),fplot(f,[0,2*pi]);title('圖形2')subplot(2,2,3

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論