Matlab課件:MATLAB及其在信號處理中應用_第1頁
Matlab課件:MATLAB及其在信號處理中應用_第2頁
Matlab課件:MATLAB及其在信號處理中應用_第3頁
Matlab課件:MATLAB及其在信號處理中應用_第4頁
Matlab課件:MATLAB及其在信號處理中應用_第5頁
已閱讀5頁,還剩290頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MATLAB及其在信號處理中應用MATLAB及其在信號處理中應用-教學內(nèi)容概論

MATLAB應用開發(fā)環(huán)境MATLAB的數(shù)值計算功能MATLAB的符號計算功能MATLAB的可視化功能MATLAB程序設計MATLABGUI界面設計MATLABNotebook介紹MATLAB信號處理工具箱Simulink系統(tǒng)仿真上機安排、要求與考試形式上機安排在2-8周的星期一下午2:00-4:00進行。要求將每次的上機內(nèi)容記錄在一個word文檔中,作為平時成績的依據(jù)??荚囈越淮笞鳂I(yè)的形式進行,交電子文檔即可。本學期課程的特點授課內(nèi)容有所調(diào)整,對MATLAB在數(shù)字信號處理中的應用這部分內(nèi)容重點加強;參考書目:1.《MATLAB通信仿真及應用實例詳解》鄧華等編著2.《數(shù)字圖像處理(MATLAB版)》阮秋琦3.《MATLAB在數(shù)字信號處理中的應用(第2版)》薛年喜1概論1.1MATLAB簡介1.2MATLAB的發(fā)展歷史1.3MATLAB的系列產(chǎn)品1.4MATLAB與Maple的關系1.5MATLAB應用1.1MATLAB簡介MATLAB是美國MathWorks公司于1984年推出的一個優(yōu)秀的數(shù)學軟件。近年來,MATLAB的內(nèi)容急劇擴充。在原有數(shù)值計算和繪圖功能的基礎上,又在專業(yè)水平上不斷開拓針對各種應用的工具箱,以及符號計算、文字處理、可視化建模仿真和實時控制等功能。與當今30多個數(shù)學類科技應用軟件相比,MATLAB功能強大,易學易用,已經(jīng)廣泛應用于科研和工程領域。1.1MATLAB簡介數(shù)學類科技軟件,就其數(shù)學處理的原始內(nèi)核而言,可分為兩大類:數(shù)值計算型(如MATLAB)和數(shù)學分析型(如Maple)。前者對大批量數(shù)據(jù)具有較強的管理、計算和可視化能力,運行效率高后者以符號計算見長,可得到解析符號解和任意精度解(即,相對于數(shù)值計算,符號計算不包含任何的機器誤差),但在處理大量數(shù)據(jù)時運行效率低。1.1MATLAB簡介MATLAB涉及的知識面廣,內(nèi)容龐雜,函數(shù)眾多。在此僅能簡要介紹一下它的通用功能。至于MATLAB涉及到某個專業(yè)領域的函數(shù)和命令,請讀者參閱在線幫助或訪問MathWorks公司的網(wǎng)站:

1.1MATLAB簡介MATLAB的顯著特點:高級的可視化計算工具;可交互/可編程的解釋性計算機語言;名稱含義:MATRIXLABORATORY;內(nèi)涵:主包+工具箱(超過30個);開發(fā)語言:FORTRAN—〉C/C++;基本數(shù)據(jù)單位:列優(yōu)先的,無需定義的,下標從1開始的,復數(shù)矩陣;基本運算有數(shù)組運算和矩陣運算之分;1.1MATLAB簡介MATLAB的顯著特點(續(xù)):8函數(shù)使用靈活:大多數(shù)函數(shù)或命令的調(diào)用參數(shù)和返回參數(shù)個數(shù)可變;9開放性設計結(jié)構(gòu):除內(nèi)部函數(shù)外,所有主包文件和各種工具包文件都是可讀可改的源文件。用戶可通過對其修改或加入自己編寫的文件來構(gòu)成新的工具包;10典型的應用領域:矩陣分析、數(shù)值計算、信號處理、系統(tǒng)設計、建模和仿真等。1.1MATLAB簡介例1:最簡單的計算器用法:計算b1)在MATLAB命令窗的提示符>>后輸入需要計算的表達式;>>(1+2*cos(pi/5))^1.3b2)按回車鍵,MATLAB執(zhí)行該表達式并給出計算結(jié)果如下。ans=3.49441.1MATLAB簡介例子2:復數(shù)運算:已知,試計算z,并給出z的模和相角,其中相角用度數(shù)表示。z1=1+2i,z2=3+j*4,z3=complex(5,6),z4=7*exp(pi/8*i)z=z1*z2/z3+z4,zm=abs(z),za=angle(z)*180/pi1.1MATLAB簡介z1=1.0000+2.0000iz2=3.0000+4.0000iz3=5.0000+6.0000iz4=6.4672+2.6788iz=7.0409+3.9903izm=8.0930za=29.54131.1MATLAB簡介例子3:字符串操作:統(tǒng)計一段文本中某字符出現(xiàn)的次數(shù)。s=input('pleaseinputstring:','s');c=input('pleaseinputachar:','s');n=length(findstr(s,c))pleaseinputstring:MATLABisagoodthingforeverybody.pleaseinputachar:in=21.1MATLAB簡介例子4:A=[12;34];B=[23;45];A*Bans=101322291.1MATLAB簡介例子5:符號運算:求函數(shù)sin(x)(1+x2)關于x的一階導數(shù)。diff('sin(x)*(1+x*x)')ans=cos(x)*(1+x^2)+2*sin(x)*x1.1MATLAB簡介例子6:繪制函數(shù)y=sinc(x)在區(qū)間[-5,8]上的圖形。ezplot('sinc(x)',-4,6)1.1MATLAB簡介例子7數(shù)據(jù)圖示:設有一批數(shù)據(jù)點(t,y),其中t在區(qū)間[0,2π]上以π/30等間隔分布,y在每個t上由函數(shù)y=sin(t2)計算得到,試繪出這些數(shù)據(jù)點的圖形。t=0:pi/30:pi*2;y=sin(t.^2);plot(t,y)1.1MATLAB簡介1.1MATLAB簡介例子8:幾何應用:已知空間三點A(1,1,-1)、B(3,3,0)、C(5,4,4),求⊿ABC的面積。A=[11-1];B=[330];C=[544];AB=B-A;AC=C-A;t=cross(AB,AC);Sn=sqrt(sum(t.^2))/2 Sf=sqrt(sum(sym(t).^2))/2Sn=4.7170Sf=1/2*89^(1/2)1.1MATLAB簡介例子9:輸出聲音:用計算機聲卡放出標準音階的7個單頻正弦音符。m=1:7;f=262*2.^((m-1)/12); %產(chǎn)生7個音符的頻率fs=8000;t=0:1/fs:.3;y=[]; %采樣頻率8kHz,音符時長0.3秒fori=1:length(f);y=[y,sin(2*pi*f(i)*t)];end;sound(y,fs);1.2MATLAB的發(fā)展歷史170年代(起源):美國新墨西哥大學計算機系的CleveMoler,用FORTRAN開發(fā)調(diào)用解線性方程LINPACK和特征值問題EISPACK程序庫的子程序庫時開發(fā)出了MATLAB的原型;280年代(機遇):Moler

訪問斯坦福大學,與工程師JohnLitte合作,用C開發(fā)

MATLAB第二代。84年成立MathWorks

公司,Litte為總裁,Moler為首席科學家。

MATLAB正式推向市場。1.2MATLAB的發(fā)展歷史390年代(大發(fā)展):使用平臺從DOS擴展到了SUN、UNIX、MAC、WINS等;軟件版本也不斷更新,目前已推出2007版;以MATLAB為基礎開發(fā)的專業(yè)性應用軟件和硬件大量涌現(xiàn);應用日趨廣泛。1.3MATLAB的系列產(chǎn)品1.4MATLAB與Maple的關系著名的數(shù)學軟件還有:Maple、Mathmatica、MathCAD等。由于MATLAB的符號運算借助于Maple內(nèi)核來實現(xiàn),所以僅對Maple做一個簡單介紹。Maple是加拿大Waterloo大學開發(fā)的。它同樣包含數(shù)值計算、圖形顯示和內(nèi)部編程語言。但使它著稱于世的是其強大的符號運算能力,它提供的2000余種數(shù)學函數(shù)涉及到代數(shù)、幾何、數(shù)論、微積分、矩陣、微分方程等領域,而且還在不斷發(fā)展。1.5MATLAB應用應用MATLAB/Simulink設計指定構(gòu)型的飛行控制律清華大學基于MATLAB/Simulink的AMT電控軟件開發(fā)流程東風汽車基于MATLAB的航電系統(tǒng)一體化設計驗證平臺研究衛(wèi)星本體和活動部件復合控制研究初探高頻數(shù)據(jù)采集和分析-ADlink與MATLAB的完美結(jié)合1.5MATLAB應用基于模型的設計思想應用于信號處理和通信系統(tǒng)開發(fā)雷達目標與環(huán)境信號仿真MATLAB在FPGA開發(fā)中的技術與應用高度集成的飛行代碼自動生成技術

1.5MATLAB應用MATLAB目前正在各個領域內(nèi)廣泛應用,是工科學生必會的一個強有力的工具;1.5MATLAB應用2MATLAB入門2.1 工作環(huán)境2.2 幫助系統(tǒng)2.3 常用命令2.4常用標點符號2.5 特殊變量2.6 簡單的語法規(guī)則2.7 舉例2.1 工作環(huán)境2.1 工作環(huán)境1操作界面

1)commandwindow2)commandhistory3)currentdirectorybrowser4)workspacebrowser5)arrayeditor6)lauchpad7)editor/debugger8)helpnavigator/browser2.1 工作環(huán)境2file/preferences菜單:設置系統(tǒng)外觀

2.1 工作環(huán)境3file/setpath菜單:設置工作路徑

2.1 工作環(huán)境4搜索路徑鍵入一個變量名、函數(shù)或命令后,MATLAB按如下順序搜索:工作內(nèi)存中的變量,內(nèi)部函數(shù),當前目錄下的m文件,沿matlabrc.m文件中指定的路徑逐個目錄尋找m文件。另外,還可利用命令path和pathtool設置路徑。

2.2 幫助系統(tǒng)MATLAB的在線幫助系統(tǒng)非常完善,且使用方便。相信大家使用后會獲益非淺。下面列出常用的幫助命令。

1)intro:示例說明MATLAB的基本功能。

2)demo:精心設計的一組旨在詳細介紹MATLAB功能的演示程序。運行這組程序,對照屏幕上的顯示,仔細研究實現(xiàn)演示的有關M文件,無論是對新用戶還是對老用戶來說,都十分有益。用戶學習和掌握MATLAB,不可不看這組演示程序。2.2 幫助系統(tǒng)

3)help:最常用的求助指令。它提供絕大部分MATLAB指令的在線說明。其中help顯示按主題分類的在線幫助一覽表;helphelp告訴用戶有那些在線幫助指令及如何使用它們;helpxxx尋找特定主題或函數(shù)的幫助信息。

help的工作機理:把指定名字的那個M文件的第一段注釋內(nèi)容顯示出來。用戶編程采用這種結(jié)構(gòu)時,可以構(gòu)成自己文件的在線幫助。2.2 幫助系統(tǒng)

4)lookfor:當要查找某種功能而又不知道準確名字時,help就無能為力了。這時可以利用lookforxxx來獲得幫助,它根據(jù)用戶提供的關鍵詞搜索出一組與之相關的命令。

lookfor的工作機理:對MATLAB目錄中的每個M文件注釋區(qū)的第一行(h1)進行掃描,一旦發(fā)現(xiàn)h1中包含有欲查詢的字符串,那么就將該文件名及h1顯示出來。用戶編程時采用這種結(jié)構(gòu),可以構(gòu)成自己的lookfor幫助。2.2 幫助系統(tǒng)

5)helpwin:在新窗口中顯示可導航的在線幫助系統(tǒng)。

6)helpdesk/helpbrowser:打開獨立的幫助子系統(tǒng)。以html樣式顯示所有的技術文檔和資料(包括pdf格式的文檔目錄)。

7)在lanchpad中打開幫助和示例。

8)從help菜單中啟動幫助。

9)通過internet訪問其技術支持站點。

10)其它幫助命令:

doc/info/ver/version2.2 幫助系統(tǒng)

推薦幾本在線電子圖書:1GettingStartedWithMATLAB(HTML)2UsingMATLAB(PDF)3SignalProcessingToolboxUser'sGuide2.3 常用命令what:分類列出指定目錄(缺省為當前目錄)上的文件;

which:列出指定文件所在的目錄;

who:列出工作內(nèi)存中的變量;

whos:詳細列出工作內(nèi)存中的變量;

exist:檢查指定名字的變量或函數(shù)文件是否存在;

inmem:列出駐留在內(nèi)存中的函數(shù);

path:顯示當前的搜索路徑;

2.3 常用命令quit:退出;

exit:退出;

^c:終止正在運行的程序;

clc:命令窗清屏;

clear:清除內(nèi)存變量;

clf:清除當前圖形窗中的圖形對象;

↑↓:命令行快速編輯命令;

!:執(zhí)行外部程序(如dos命令);2.3 常用命令

dir:顯示指定目錄中的文件列表;

delete:刪除文件;

cd:改變或顯示當前目錄;

type:顯示文本文件的內(nèi)容

dbtype:帶行號顯示文本文件的內(nèi)容;

more:定義每屏顯示的行數(shù);

format:定義數(shù)據(jù)顯示格式;save/load:保存和加載工作區(qū)變量;2.3 常用命令date,clock:顯示日期和時間;

tic/toc:啟動和終止秒表;

flops:累計浮點運算的次數(shù);

size:返回變量每一維的大小;

length:length(A)=max(size(A))注意:MATLAB命令區(qū)分大小寫命令中不能包含中文字符2.4 常用標點符號

::表示全部元素構(gòu)成的長列,或表示某一維上的全部元素;

,:兩個作用,矩陣元素間分隔符,指令間分隔符;

;:兩個作用,矩陣行間分隔符;指令間分隔符,抑制運算結(jié)果的回顯;

…:續(xù)行符;

%:注釋符,注釋可用中文;‘’:字符串

@:放在函數(shù)名前形成函數(shù)句柄。2.5 特殊變量

ans:保存最新的運算結(jié)果;

eps:浮點數(shù)的相對精度;

pi:3.1415926;

inf:無窮大(>realmax),1/0;

nan:非數(shù),0/0、∞/∞、0×∞;

i/j:虛數(shù)單位;realmin/realmax

:正浮點數(shù)的范圍;

nargin/nargout:函數(shù)輸入輸出參數(shù)的個數(shù)。2.5 特殊變量注意:

MATLAB沒有保留字,用戶可任意修改前述變量的數(shù)值。也可隨時使用clear命令恢復這些特殊變量的預定義值。

建議不要隨意更改他們的預定義值。2.6 簡單的語法規(guī)則

變量數(shù)字運算符表達式函數(shù)在MATLAB中,數(shù)據(jù)的存儲和運算都是以雙精度進行的,其精度為16位小數(shù),范圍是1e-308~1e308

函數(shù)名不保留,用戶可重定義,或用clear命令恢復預定義。3MATLAB的數(shù)值計算功能3.1 數(shù)值矩陣的創(chuàng)建3.2 常用數(shù)組運算和矩陣運算3.3 向量和矩陣的基本操作3.4 稀疏矩陣3.5 解線性和非線性方程組3.6 多項式操作3.7 數(shù)據(jù)插值3.8 數(shù)據(jù)分析3.9 微分方程的數(shù)值解以及數(shù)值積分3.10 求解優(yōu)化問題3.1 數(shù)值矩陣的創(chuàng)建1直接輸入2用內(nèi)部函數(shù)產(chǎn)生例14生成魔方陣A=magic(3),sa=sum(A)

A=816357492sa=151515

3用M文件中的自定義函數(shù)產(chǎn)生4用MAT文件保存和獲取矩陣3.1 數(shù)值矩陣的創(chuàng)建例15用M文件生成矩陣

編寫文本文件MyVar.M,其內(nèi)容為

x=[123];y=[321];

在MATLAB指令窗中,輸入MyVar,向量x和y就會自動生成,供以后顯示和調(diào)用。3.1 數(shù)值矩陣的創(chuàng)建4用MAT文件保存和獲取矩陣有時需要把當前工作內(nèi)存中的一些有用數(shù)據(jù)長久地保存下來,這時可用save和load指令使MAT文件發(fā)揮作用。

MAT文件是MATLAB保存數(shù)據(jù)的一種標準格式,默認為二進制文件。為了讓其它程序也可使用MATLAB的輸出數(shù)據(jù),save和load指令也可用于標準的文本文件。3.1 數(shù)值矩陣的創(chuàng)建幾個特殊矩陣的生成:

1零陣

zeros(r,c)2全1陣

ones(r,c)3單位陣

eye(r,c)

4

隨機陣

rand(r,c);rand(‘state’,x)5正態(tài)分布隨機陣

randn(r,c)6空陣

[]7對角陣

diag(M,x)3.1 數(shù)值矩陣的創(chuàng)建例16對角陣

m=-1:1;M1=diag(m),m1=(diag(M1,0))'M2=magic(3)m2=(diag(M2,0))’,m3=(diag(M2,1))'M1=-100000001

m1=-101M2=816357492

m2=852

m3=173.1 數(shù)值矩陣的創(chuàng)建例17高維數(shù)組clear;a=reshape(1:24,2,3,4)d=ndims(a),s=size(a),l=length(a)

a(:,:,1)=135246a(:,:,2)=791181012a(:,:,3)=131517141618a(:,:,4)=192123202224d=3s=234l=4

3.2 常用數(shù)組運算和矩陣運算數(shù)組運算和矩陣運算是MATLAB數(shù)值運算中的兩大類運算。矩陣運算按矩陣運算法則運算。數(shù)組運算對矩陣中的元素逐個進行,其運算符前有小黑點。關系運算和邏輯運算僅對數(shù)組進行。各種運算的優(yōu)先權(quán)由低到高分別為邏輯運算、關系運算、算術運算。MATLAB提供了大量的數(shù)組函數(shù)、矩陣函數(shù)和關系邏輯函數(shù)。3.2 常用數(shù)組運算和矩陣運算例18范數(shù),秩,行列式的值,特征值和特征向量a=1:9;A=reshape(a,3,3)anorm=norm(a,3)Arank=rank(A)Adet=det(A)[Av,Ad]=eig(A)

3.2 常用數(shù)組運算和矩陣運算A=147258369anorm=2.6515Arank=2Adet=0Av=0.46450.88290.40820.57080.2395-0.81650.6770-0.40390.4082Ad=16.1168000-1.11680000.0000例18范數(shù),秩,行列式的值,特征值和特征向量(續(xù))3.2 常用數(shù)組運算和矩陣運算例19矩陣運算和數(shù)組運算

A=[1,2;3,4];B=[2,3;4,5];C=A*B,D=A.*B,E=A^2,F=A.^2

C=10132229D=261220E=7101522F=149163.2 常用數(shù)組運算和矩陣運算例20

關系運算函數(shù)x=-2:1:2,x1=1./xfx=find(x==0),fxg=find(x>0)fx1=find(x1),fx2=find(abs(x1)>0.1&abs(x1)<0.6)

x=-2-1012x1=-0.5-1.0Inf1.00.5fx=3fxg=45fx1=12345fx2=15

3.2 常用數(shù)組運算和矩陣運算例21邏輯運算函數(shù)A=magic(3),Aall=all(A>5),A1all=all(A(:,1)>5),Aany=any(A>5),A1any=any(A(:,end)>5)

A=816357492Aall=000A1all=0Aany=111A1any=1

3.2 常用數(shù)組運算和矩陣運算提醒:

help命令可列出分類的幫助主題;

helpmatfun

命令列出基本的矩陣運算函數(shù);

helpelfun

命令列出基本的數(shù)組運算函數(shù)。3.3 向量和矩陣的基本操作1向量的生成:冒號法;線性等分指令;對數(shù)等分指令。例22

生成距離等分的一維行向量a=0:1:3,b=linspace(0,3,5),c=logspace(0,3,5)

a=0123b=00.751.502.253.00c=1.0e+003*0.00100.00560.03160.17781.00

3.3 向量和矩陣的基本操作2基本訪問規(guī)則3.3 向量和矩陣的基本操作3基本操作

1)插入2)重新排列

3)提取4)合并/復制

5)按列拉長6)置空/置零

7)用單個下標操作8)用邏輯數(shù)組操作

9)按指定條件求子數(shù)組

10)矩陣結(jié)構(gòu)變換:變維;旋轉(zhuǎn);翻轉(zhuǎn)3.3 向量和矩陣的基本操作A=1342b=1313424213134242例23

插入與復制A=magic(2);b=repmat(A,2,2),A(2,2)=0;A(3,3)=13.3 向量和矩陣的基本操作例24

各種操作綜合A=[123;456;789]B=A(3:-1:1,:),C=A([213],[3,1,2]),D=A([21],[3,2]),E=[DD],F=D(:);F’,E(:,[2,4])=[],G=E(2:4)3.3 向量和矩陣的基本操作A=123456789B=789456123C=645312978D=6532E=65653232ans=6352E=6633G=363

例24

各種操作綜合(續(xù))3.3 向量和矩陣的基本操作例25用邏輯數(shù)組操作:

rand('seed',0);a=rand(1,5),b=a<=0.5,a(b)

a=0.21900.0470.67890.67930.9347b=11000ans=0.21900.0470注意:邏輯數(shù)組和訪問數(shù)組規(guī)模必須一致3.3 向量和矩陣的基本操作例26按指定條件求子數(shù)組

a=10:-1:1;k=find(isprime(a)),a(k)

k=4689ans=75323.3 向量和矩陣的基本操作例27結(jié)構(gòu)變換:變維;旋轉(zhuǎn);翻轉(zhuǎn)

A=[1:6;7:12],B=reshape(A,3,4),C=rot90(B),逆時針旋轉(zhuǎn)90度

D=fliplr(C), 左右翻轉(zhuǎn)

E=flipud(D)上下翻轉(zhuǎn)3.3 向量和矩陣的基本操作A=123456789101112B=184117310629512C=116124105839172D=126115104938271E=271938510412611例27結(jié)構(gòu)變換:變維;旋轉(zhuǎn);翻轉(zhuǎn)(續(xù))3.4 稀疏矩陣MATLAB有兩種存儲矩陣的方式:一是全元素存儲(默認),一是稀疏存儲。稀疏矩陣及其算法,不存儲矩陣中的“0”元素,也不對它們進行操作,從而節(jié)省內(nèi)存和時間開銷。這兩種存儲方式可用命令sparse和full實現(xiàn)相互轉(zhuǎn)換。MATLAB也提供有大量的對稀疏矩陣操作的函數(shù)。關于稀疏矩陣的詳細解釋,可查閱用戶指南或在線幫助。3.5 解線性和非線性方程組例28求如下一元實值函數(shù)的零點step1:編寫描述方程的函數(shù)文件esin.mfunctiony=esin(t)y=exp(-0.5*t).*sin(t+pi/6);step2:輸入指令fzero('esin',10)

ans=8.90123.5 解線性和非線性方程組例29解線性數(shù)值方程

Ax=b,xA=bA=magic(3);b=ones(3,1);x=A\b%左除b=ones(1,3);x=b/A%右除

x=0.06670.06670.0667x=0.06670.06670.06673.5 解線性和非線性方程組例30解非線性(包括線性)數(shù)值方程組(續(xù))[x,y]=solve('x^2+x*y+y=3','x^2-4*x+3=0')x=[1][3]

y=[1][-3/2]3.6 多項式操作多項式表示方式的約定:按降冪排列的多項式P(x)用其系數(shù)行向量表示。如P(x)=x^3-2x-5用[10–2-5]

表示。

函數(shù)ploy(p)

所得多項式滿足關系式:

(x-p1)(x-p2)…(x-pn)=a0x^n+a1x^(n-1)+…+an的多項式字符串。3.6 多項式操作例31多項式的加減乘除

p=conv([122],conv([14],[1,1]))[q1,r1]=deconv(p,[1,4])[q2,r2]=deconv(p,[1,3])

p=1716188q1=1342r1=00000q2=1446r2=0000-10

3.6 多項式操作例32多項式的根,多項式的特定變量值

p=[1,-6,-72-27];r=roots(p);pr=poly(r);p56=polyval(p,[56])

ans=12.1229-5.7345-.3884p56=-412-459

3.6 多項式操作r=1.1274+1.1513i1.1274-1.1513i-0.0232-0.0722i-0.0232+0.0722i0.7916p=-1.7680+1.2673i-1.7680-1.2673i0.4176+1.1130i0.4176-1.1130i-0.2991k=[]例33部分分式展開:b/a=r/(s-p)+kb=[32546];a=[134272];[r,p,k]=residue(b,a)3.6 多項式操作例34多項式微分

a=1:3;b=1:4;c=polyder(a)d=conv(a,b),e=polyder(a,b),[q,d]=polyder(a,b)c=22d=1410161712e=516303217q=-1-4-10-4-1d=141020252416

3.6 多項式操作例35

多項式擬合誤差函數(shù)

x=0:0.1:2.5;y=erf(x);p=polyfit(x,y,6)x=0:0.1:5;y=erf(x);f=polyval(p,x);

plot(x,y,'bo',x,f,'r-');axis([0502]);legend(‘原始數(shù)據(jù)’,‘擬合曲線’,2);

p=0.0084-0.09830.4217-0.74350.14711.10640.00043.6 多項式操作例35

多項式擬合誤差函數(shù)(續(xù))

3.7數(shù)據(jù)插值擬合與插值的區(qū)別:擬合是尋找“平滑”曲線最好地表現(xiàn)帶噪聲的“測量數(shù)據(jù)”,并不要求擬合曲線穿過這些“測量數(shù)據(jù)”點。插值是在認定所給“基準數(shù)據(jù)”完全正確的情況下,“平滑”地估算出“基準數(shù)據(jù)”之間其它點的函數(shù)值。插值技術廣泛應用于信號和圖像處理領域。插值的算法很多,詳細說明請參閱在線幫助。3.7數(shù)據(jù)插值例36

一元插值函數(shù)

x=0:8;y=sin(x);xi=1.5;yi=sin(xi)yi1=interp1(x,y,xi,'linear')yi2=interp1(x,y,xi,'spline')yi3=interp1(x,y,xi,'cubic')xi=0:.1:8;li=interp1(x,y,xi);

si=interp1(x,y,xi,'spline');

ci=interp1(x,y,xi,'cubic');

plot(x,y,'o',xi,li,'b--',...

xi,ci,'k:',xi,si,'r-');legend('init','linear',...'cubic','spline')3.7數(shù)據(jù)插值例36

一元插值函數(shù)(續(xù))

yi=0.9975yi1=0.8754yi2=0.9878yi3=0.97603.8 數(shù)據(jù)分析數(shù)據(jù)分析指令的兩條約定:輸入宗量是向量時,運算對整個向量進行;輸入宗量是矩陣時,運算按列進行。常用的統(tǒng)計指令有max、mean、min、sort、hist、std、var、cov、corrcoef等。常用的差分和累計指令有diff、gradient、prod、sum、trapz、cumprod、cumsum、cumtrapz等。3.8 數(shù)據(jù)分析A=816357492B=312456897C=168357249d=9e=362880

例37矩陣元素的排序,最大值,階乘

A=magic(3),B=sort(A,1),C=sort(A,2)d=max(max(A)),e=prod(1:d)3.8 數(shù)據(jù)分析例38

統(tǒng)計頻數(shù)直方圖

y=randn(10000,1);hist(y,30)3.8 數(shù)據(jù)分析基本數(shù)據(jù)統(tǒng)計函數(shù)的使用。a=[856;317;492][f,id]=min(a) %按列找出最小值及其索引g=cov(a(:,2)) %計算第二列數(shù)據(jù)的協(xié)方差h=cov(a) %計算a的協(xié)方差陣k=corrcoef(a) %計算a的自相關陣l=sort(a,1) %按第一維(列)升序排列(所有列獨立排序)m=sort(a,2) %按第二維(行)升序排列(所有行獨立排序)n=sortrows(a,1) %按第一列升序排列(一行視為一個記錄)p=sortrows(a,2) %按第二列升序排列(一行視為一個記錄)3.9 微分方程數(shù)值解及數(shù)值積分MATLAB求定積分的函數(shù)有quad、quadl和dblquad(用于二重積分)等,它們使用的數(shù)值方法分別是自適應遞歸Simpson公式、自適應遞歸Lobatlo公式和自適應遞歸Newton-Cotes公式和。例40

數(shù)值積分

3.9 微分方程數(shù)值解及數(shù)值積分例40

數(shù)值積分(續(xù))step1:定義積分公式的m文件esin.mfunctiony=esin(t)y=exp(-0.5*t).*sin(t+pi/6);step2:輸入操作命令

s=quad('esin',0,3*pi)s8=quadl('esin',0,3*pi)

sf=int('exp(-0.5*t)*sin(t+pi/6)',…0,3*pi)s=0.90084083649438s8=0.90084078582242sf=0.9008407878188861909532363292383.10求解優(yōu)化問題優(yōu)化問題可以歸結(jié)為求目標函數(shù)的極值問題。優(yōu)化問題分為兩大類:無約束最優(yōu)化問題,形如min(f(x));約束最優(yōu)化問題,形如min(f(x))s.tG(x)≤0。其中f(x)是多元實值函數(shù),稱為目標函數(shù);G(x)為向量值函數(shù)。優(yōu)化的方法很多,MATLAB采用的有單純形法、BTGS擬牛頓法、非線性最小二乘法等。3.10求解優(yōu)化問題例41

一元函數(shù)的極值(5pi/4,pi/4)f='2*exp(-x)*sin(x)';fplot(f,[08])

xmin=fminbnd(f,2,5),x=xmin;

ymin=eval(f)

xmax=fminbnd(['-'f],0,3),x=xmax;ymax=eval(f)

xmin=3.9270ymin=-0.0279

xmax=0.7854ymax=0.64483.10求解優(yōu)化問題例41

一元函數(shù)的極值(續(xù))4MATLAB的符號計算功能4.1符號計算入門4.2符號矩陣的創(chuàng)建4.3符號矩陣的操作和運算4.4因式分解、展開和化簡4.5符號微積分4.6求解符號代數(shù)方程組4.7求解符號微分方程4.8積分變換4.9直接調(diào)用Maple函數(shù)4.10符號函數(shù)計算器4.1符號計算入門MATLAB以Maple內(nèi)核為計算引擎,將符號運算集成到它的數(shù)值運算環(huán)境中。MATLAB包含兩個相關的工具箱:基本符號工具箱和擴展符號工具箱?;痉柟ぞ呦涮峁?00多個MATLAB函數(shù),方便用戶調(diào)用Maple內(nèi)核,包括調(diào)用Maple的線性代數(shù)工具包。擴展符號工具箱則允許用戶調(diào)用Maple所有的非圖形工具包和編程特性,以及用戶自定義過程。4.1符號計算入門用戶可以通過編寫M文件來對Maple函數(shù)和Maple環(huán)境進行直接操作。符號工具箱引入了符號對象;而數(shù)值運算中的數(shù)據(jù)被稱為數(shù)值對象。符號工具箱重載了MATLAB中的許多數(shù)值計算函數(shù),故使用方便。獲取符號函數(shù)的在線幫助用helpsym/function或mhelpfunction。清除maple空間用mapleclear或maplerestart命令。4.1符號計算入門1創(chuàng)建符號變量和符號表達式:例44

sym('x'),rho=sym('(1+sqrt(5))/2')f=rho^2-rho-1,fs=simplify(f)

symsabc;symsdereal

ans=xrho=(1+sqrt(5))/2f=(1/2+1/2*5^(1/2))^2-3/2-1/2*5^(1/2)

fs=04.1符號計算入門2符號對象和數(shù)值對象之間的轉(zhuǎn)換:例45rho=sym('(1+sqrt(5))/2');a=double(rho)b=sym((1+sqrt(5))/2,'r')digits(5);c=sym((1+sqrt(5))/2,'d')a=1.6180b=7286977268806824*2^(-52)c=1.61804.1符號計算入門注意:

1)符號計算中出現(xiàn)的數(shù)字也都是當作符號處理的;

2)符號表達式對空格很敏感,請不要在字符間亂加修飾性空格符;

3)

為了得到最簡結(jié)果,可能要多次使用命令simplify和simple。

4)

數(shù)值對象不能參與符號運算,符號對象不能參與數(shù)值運算。

5)換識別不同數(shù)據(jù)對象的指令有:class,isa,whos等。4.1符號計算入門3確定符號表達式中自由變量的規(guī)則:

1)只對除i和j以外的單個小寫英文字母進行搜索;

2)默認x是首選變量;

3)其余小寫字母被選中為自由變量的次序是,在字母表中,靠x距離近的優(yōu)先;在x之后的優(yōu)先。命令findsys可對表達式中的自由符號變量或指定數(shù)目的獨立自由變量自動認定。4.2符號矩陣的創(chuàng)建sym指令字符串輸入法:同列字符串長度相同數(shù)值矩陣轉(zhuǎn)換為符號矩陣例46

A=sym('[1/(a+x),sin(x);...1,exp(x)]')B=['[1/(a+x),sin(x)]';...'[1,exp(x)]']C=[11.5;22.5],D=sym(C)4.3符號矩陣的操作和運算

符號矩陣的操作和運算(包括數(shù)組運算和矩陣運算)與數(shù)值矩陣的操作和運算雷同。下面僅舉例介紹符號函數(shù)特有的復合函數(shù)和反函數(shù)。例47

symsxyztuv;h=x^t;p=exp(-y/u);

fz=compose(h,p,x,y,z),fi=finverse(exp(u-2*v),u)

fz=exp(-z/u)^tfi=2*v+log(u)4.4因式分解、展開和化簡例48a=sym('(s+1)/(s^2+5*s+6)');b=factor(a),symsx;a=sym((x+1)^3);c=expand(a)a=-1/4*x*exp(-2*x)+3/16*exp(-2*x);d1=collect(a,exp(-2*x)),d2=collect(a,'x')a=x^3-6*x^2+11*x-6;e=horner(a)a=sym('sin(x)^2+3*x+cos(x)^2-5');b=sym('(1-a^2)/(1-a)');A=[a,b];simplify(A);simple(A)

4.4因式分解、展開和化簡例48b=(s+1)/(s+3)/(s+2)c=x^3+3*x^2+3*x+1d1=(-1/4*x+3/16)*exp(-2*x)d2=-1/4*x*exp(-2*x)+3/16*exp(-2*x)e=-6+(11+(-6+x)*x)*xans=[-4+3*x,a+1]ans=[-4+3*x,a+1]注:因式操作僅針對矩陣中的元素進行。4.5符號微積分例49

求導數(shù)

y=sym('sin(a*x)');a=diff(y),b=diff(y,2)c=diff(y,'x',2),d=diff(y,'a',1)

a=cos(a*x)*ab=-sin(a*x)*a^2c=-sin(a*x)*a^2d=cos(a*x)*x4.5符號微積分例50

求jacobian行列式

4.5符號微積分例50

求jacobian行列式(續(xù))

symsrlf;x=r*cos(l)*cos(f);y=r*cos(l)*sin(f);z=r*sin(l);J=jacobian([x;y;z],[rlf])

detJ=simple(det(J))

J=[cos(l)*cos(f),-r*sin(l)*cos(f),-r*cos(l)*sin(f)][cos(l)*sin(f),-r*sin(l)*sin(f),r*cos(l)*cos(f)][sin(l),r*cos(l),0]

detJ=-cos(l)*r^2

4.5符號微積分例51

求極限

symsxn;limit((1+x/n)^n,n,inf)limit(1/x,x,0,'left')ans=exp(x)

ans=-inf4.5符號微積分例52

積分

symsxkreal;f=exp(-(k*x)^2);

int(f,x,-inf,inf)

ans=signum(k)/k*pi^(1/2)4.5符號微積分例53

多重積分

symsxyzF2=int(int(int(x^2+y^2+z^2,…

z,sqrt(x*y),x^2*y),…y,sqrt(x),x^2),x,1,2);VF2=vpa(F2,10) VF2=224.92153574.5符號微積分例54

級數(shù)求和

s1=symsum(x^2,x,0,10)s2=symsum(x^k,k,0,inf)s1=385s2=-1/(x-1)4.5符號微積分例55

Taylor級數(shù)展開

symsx;f=sym('sin(x)*exp(-x)');ft=taylor(f,x,6,0),pretty(ft)t=-2:0.05:2;y=subs(f,x,t);plot(t,y,'--r');holdon;ezplot(ft,[-22])

ft=x-x^2+1/3*x^3-1/30*x^5235x~-x~+1/3x~-1/30x~4.5符號微積分例55

Taylor級數(shù)展開(續(xù))

4.6求解符號代數(shù)方程組符號運算中,可以使用“\”來求解線性方程組。但它同時也提供了一個功能強大的指令solve,能解一般線性代數(shù)方程組、非線性方程組和超越方程組。當方程組不存在符號解,且又無其它自由參數(shù)時,solve給出數(shù)值解。使用solve時,要求未知數(shù)的個數(shù)和方程的個數(shù)一致。4.6求解符號代數(shù)方程組例56用solve解方程

s=solve('2*x^2=(x-1)'),n=double(s),s=vpa(n,10)s=[1/4+1/4*i*7^(1/2)][1/4-1/4*i*7^(1/2)]n=0.2500+0.6614i0.2500-0.6614is=[.25000+.6614378278*i][.25000-.6614378278*i]4.6求解符號代數(shù)方程組例57用solve解方程組

S=solve('a*u^2+v^2','u-v=1','a,u')S.a,S.uS=a:[1x1sym]u:[1x1sym]ans=-v^2/(v^2+2*v+1)ans=v+14.7求解符號微分方程例58

一階微分方程(默認t為自變量)

ag=dsolve('Dy=1+y^2')as=dsolve('Dy=1+y^2','y(0)=1')

ag=tan(t+C1)as=tan(t+1/4*pi)

4.7求解符號微分方程例59一階非線性微分方程

x=dsolve('(Dx)^2+x^2=1',...

'x(0)=0')

x=[sin(t)][-sin(t)]4.7求解符號微分方程例60高階微分方程

y=dsolve('D2y=cos(2*x)-y',...'y(0)=1','Dy(0)=0','x');y=simplify(y)

y=-2/3*cos(x)^2+4/3*cos(x)+1/34.7求解符號微分方程例61微分方程組

[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)4.8積分變換積分變換及其相應的離散變換,即Laplace變換、Fourier變換、z變換、DFT(FFT)等,是理論研究和工程實現(xiàn)領域中的重要計算工具。符號工具箱提供了相應的函數(shù)來做這些變換及其逆變換。另外,符號工具箱也提供了超過50個的特殊數(shù)學函數(shù)。用戶需要時可用helpmfunlist來查找。在此不做介紹。4.8積分變換例62積分變換symsxtskz;F=fourier(exp(-x^2),x,t)f=simplify(ifourier(F))L=laplace(t^5,t,s),l=ilaplace(L)Z=ztrans(x^k/'k!',k,z),z=iztrans(Z)F=pi^(1/2)*exp(-1/4*t^2)f=exp(-x^2)L=120/s^6l=t^5Z=exp(1/z*x)z=x^n/n!4.9直接調(diào)用Maple函數(shù)例63

多項式的最大公約數(shù)和最小公倍數(shù)

mapleclear;symsxy;[n,d]=numden((x^3-y^3)/(x^2-y^2))g=maple('gcd',n,d),l=collect(maple('lcm',n,d))n=x^3-y^3d=x^2-y^2g=-y+xl=x^4+y*x^3-y^3*x-y^44.9直接調(diào)用Maple函數(shù)例64

二維Taylor展開

maple('readlib(mtaylor)');maple('mtaylor(sin(x^2+y^2),[x=0,y=0],8)')

x^2+y^2-1/6*x^6-1/2*y^2*x^4-1/2*y^4*x^2-1/6*y^64.10符號函數(shù)計算器MATLAB符號工具箱提供了兩個圖示化函數(shù)計算器:taylortool和funtool。它們的功能和使用方法在啟動后的窗口中一目了然,這里不作繁述。4.10符號函數(shù)計算器4.10符號函數(shù)計算器5MATLAB的可視化功能5.1基本繪圖入門5.2三維繪圖5.3立體的可視化5.4符號函數(shù)的圖形顯示5.5其它圖形繪制5.6圖象5.7圖形窗功能介紹5.8句柄圖形5.1

基本繪圖入門數(shù)據(jù)可視化是研究科學、認識世界不可缺少的手段。人們很難直接感受一大堆數(shù)據(jù)的含義,而數(shù)據(jù)圖形則能使人們用視覺器官直接感受到數(shù)據(jù)的許多內(nèi)在本質(zhì)。MATLAB不僅在計算方面無與倫比,而且在數(shù)據(jù)可視化方面也有上佳表現(xiàn)。MATLAB能可以二維、三維乃至四維的圖形表現(xiàn)數(shù)據(jù)。通過對圖形線型、渲染、色彩、光線、視角等品性的處理,把計算數(shù)據(jù)的特征表現(xiàn)得淋漓盡致。5.1

基本繪圖入門MATLAB圖形系統(tǒng)建立在一組“圖形對象”基礎之上,它的核心是圖形句柄。MATLAB提供有兩個層面的繪圖指令:一組是直接對圖形句柄進行操作的底層指令,它們靈活多變,數(shù)據(jù)表現(xiàn)能力強;一組是建立在底層指令基礎上的高層指令,它們簡單明了,易學易用。另外,MATLAB也能處理不同格式的圖形圖象,制作簡單動畫。至于更專業(yè)的圖象處理,可以使用圖象處理工具箱。5.1

基本繪圖入門1MATLAB生成一個圖形的基本步驟:5.1

基本繪圖入門按上述步驟生成的圖形如下所示:5.1

基本繪圖入門2常用畫線指令:5.1

基本繪圖入門3常用畫線指令使用舉例(一):5.1

基本繪圖入門3常用畫線指令使用舉例(二):5.1

基本繪圖入門4“線型-標記-顏色”字符串的取值:5.1

基本繪圖入門5常用坐標設置和圖形標注命令:5.1

基本繪圖入門6常用坐標設置和圖形標注命令使用舉例:5.1

基本繪圖入門7標注中TeX字符串的使用:圖形標注中可以使用特殊格式的特殊字符。描述這種特殊格式的字符串符合TeX規(guī)范。這些字符串由修飾符引導,修飾符的默認作用范圍是字符串的結(jié)尾,也可以用{}顯式定義。常用的修飾符有:^(上標);_(下標);\bf(粗體);\it(斜體);\rm(正常);\fontsize{fontsize}(字體大小)等。5.1

基本繪圖入門7標注中TeX字符串的使用:5.1

基本繪圖入門8常用非英文字母的TeX格式字符串:

5.1

基本繪圖入門例

二維圖形對象操作x=linspace(-3,3,100);y1=sin(x*pi)+4;y2=x.^2;plot(x,[y1;y2]);xlabel('x');ylabel('y');text(-2.6,7,'\leftarrowx^2','fontsize',16);text(-1.2,5.1,'sin(x\pi)+4\rightarrow',...'fontname','courier',...%設置text字體屬性'fontangle','italic',...%設置text字體傾斜屬性'fontsize',14); %設置text字體大小屬性legend('sin(x\pi)+4','x^2',0); %添加圖例

holdon; %設置繪圖方式為保持

5.1

基本繪圖入門例

二維圖形對象操作xf=linspace(-2,2,100);y1f=sin(xf*pi)+4;y2f=xf.^2;%從最左邊開始,按逆時針方向在y1f和y2f上形成多邊形并填充fill([xffliplr(xf)],[y1f,fliplr(y2f)],'r');text(-1.2,2,'areabetweentwofunctions');axis([-330inf]); %設置坐標范圍%設置坐標刻度,并在刻度標簽上標注交點坐標(cx1,cy)和(cx2,cy)set(gca,'YTick',0:9);set(gca,'YTickLabel','0|1|2|3|cy|5|6|7|8|9');set(gca,'XTick',-3:3);set(gca,'XTickLabel',{'-3''cx1''-2''0''1''cx2''3'})

5.1

基本繪圖入門例65

二維雙坐標繪圖plotyy函數(shù)的使用:已知,分別繪制A=200,α=0.05,β=1,f=0.2和A=0.8,α=0.5,β=2,f=2時y的圖形,t=0:0.01:20;A1=200;alf1=0.05;bt1=1;f1=0.2;A2=0.8;alf2=0.5;bt2=2;f2=2;y1=A1*exp(-alf1*t).*sin(2*pi*f1*t+bt1);y2=A2*exp(-alf2*t).*sin(2*pi*f2*t+bt2);%用plot方式繪制雙y軸曲線,并返回坐標盒和繪制曲線的句柄[AX,H1,H2]=plotyy(t,y1,t,y2,'plot');5.1

基本繪圖入門例65二維雙坐標繪圖(續(xù))

5.2三維繪圖1三維線圖例66寶石項鏈

t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,'b-d');view([-82,58]);boxon;5.2三維繪圖例66寶石項鏈(續(xù))5.2三維繪圖2三維曲面圖形

1)基本指令

5.2三維繪圖2三維曲面圖形

2)

常用函數(shù)的使用說明

5.2三維繪圖例66Sinc函數(shù)表示的空間曲面

[X,Y]=meshgrid(-8:.5:8);R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;

surf(X,Y,Z,'FaceColor','interp','EdgeColor','none','FaceLighting','phong');daspect([551]);axistight;view(-50,30);

camlightleft5.2三維繪圖例66Sinc函數(shù)表示的空間曲面(續(xù))

5.2三維繪圖例67三維插值

x=rand(100,1)*16-8;y=rand(100,1)*16-8;r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;

xlin=linspace(min(x),max(x),33);

ylin=linspace(min(y),max(y),33);[X,Y]=meshgrid(xlin,ylin);Z=griddata(x,y,z,X,Y,'cubic');mesh(X,Y,Z);axistight;holdon;plot3(x,y,z,'.','MarkerSize',15)5.2三維繪圖例67三維插值(續(xù))5.2三維繪圖例68透視

[X0,Y0,Z0]=sphere(30);

X=2*X0;Y=2*Y0;Z=2*Z0;

surf(X0,Y0,Z0);shadinginterp;holdon,mesh(X,Y,Z);

colormap(hot),hiddenoff;axisequal;axisoff;holdoff5.2三維繪圖例68透視(續(xù))5.2三維繪圖例69利用NaN對圖形進行鏤空處理

P=peaks(30);P(18:20,9:15)=NaN;

surfc(P);

colormap(summer)light('position',[50,-10,5])lightingflatmaterial([0.9,0.9,0.6,15,0.4])

5.2三維繪圖例69利用NaN對圖形進行鏤空處理(續(xù)

溫馨提示

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

評論

0/150

提交評論