Matlab-2014軟件教程(完美版)_第1頁
Matlab-2014軟件教程(完美版)_第2頁
Matlab-2014軟件教程(完美版)_第3頁
Matlab-2014軟件教程(完美版)_第4頁
Matlab-2014軟件教程(完美版)_第5頁
已閱讀5頁,還剩147頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGEPAGE1Matlb軟件錄1、Mtlb幫助的使用...32、Mtlb數(shù)據(jù)輸入與類型..43、Mtlb中的M文件及程序調(diào)試..124、Mtlb繪圖命令...175、Mtlb在高等數(shù)學(xué)中的應(yīng)用..346、Mtlb在線性代數(shù)中的應(yīng)用..607、Mtlb數(shù)據(jù)處理...679、評(píng)價(jià)方法...8210、預(yù)測(cè)方法..971、蒙特卡洛方法...1012、智能算法..12213、分形...12914、iulink初步...13415、Mtlb在概統(tǒng)計(jì)中的應(yīng)用.147參考文獻(xiàn)...151作為和MathmaticMple并列的三大數(shù)學(xué)軟件其強(qiáng)項(xiàng)就是其強(qiáng)大的矩陣計(jì)算以及仿真能力。要知道Matlb的由來就是Matix+bortory=Matlab,所以這個(gè)軟件在國(guó)內(nèi)也被稱作《矩陣實(shí)驗(yàn)室。每次Mathoks發(fā)布Matlb的同時(shí)也會(huì)發(fā)布仿真工具Simulink。在歐美很大公司在將產(chǎn)品投入實(shí)際使用之前都會(huì)進(jìn)行仿真試驗(yàn),他們所主要使用的仿真軟件就是SimulinkMatlb提供自己的編譯器全面兼容C以及otrn兩大語言。所以Matlb是工程師,科研工作者手上最好的語言,最好的工具和環(huán)境。Matlb已經(jīng)成為廣大科研人員的最值得信賴的助手和朋友!目前MTAB產(chǎn)品族可以用來進(jìn)行:-數(shù)值分析-數(shù)值和符號(hào)計(jì)算-工程與科學(xué)繪圖-控制系統(tǒng)的設(shè)計(jì)與方針-數(shù)字圖像處理-數(shù)字信號(hào)處理-通訊系統(tǒng)設(shè)計(jì)與仿真-財(cái)務(wù)與金融工程...Simulink是基于MAB的框圖設(shè)計(jì)環(huán)境,可以用來對(duì)各種動(dòng)態(tài)系統(tǒng)進(jìn)行建模、分析和仿真它的建模范圍廣泛可以針對(duì)任何能夠用數(shù)學(xué)來描述的系統(tǒng)進(jìn)行建模例如航空航天動(dòng)力學(xué)系統(tǒng)衛(wèi)星控制制導(dǎo)系統(tǒng)通訊系統(tǒng)船舶及汽車等等其中了包括連續(xù)、離散,條件執(zhí)行,事件驅(qū)動(dòng),單速率、多速率和混雜系統(tǒng)等等。Simulink提供了利用鼠標(biāo)拖放的方法建立系統(tǒng)框圖模型的圖形界面,而且Simulink還提供了豐富的功能塊以及不同的專業(yè)模塊集合,利用Simulnk幾乎可以做到不書寫一行代碼完成整個(gè)動(dòng)態(tài)系統(tǒng)的建模工作。1、Mtlb幫助的使用11ephlp幫助總覽hlpelun關(guān)于基本函數(shù)的幫助信息hlpexp指數(shù)函數(shù)xp的詳細(xì)信息1.2lkfor指令當(dāng)要查找具有某種功能但又不知道準(zhǔn)確名字的指令時(shí)hlp的能力就不夠了lookfor可以根據(jù)用戶提供的完整或不完整的關(guān)鍵詞,去搜索出一組與之相關(guān)的指令。lookforintgl%查找有關(guān)積分的指令lookforourier%查找能進(jìn)行傅里葉變換的指令1.3文本式的助文件在Matlb中關(guān)于一個(gè)函數(shù)的幫助信息可以用doc命令以超文本的方式給出如docdocdocdocigig求矩陣的特征值和特征向量1.4pdf幫助件可從MathWoks網(wǎng)站上下載有關(guān)的pdf幫助文件。網(wǎng)站地址:HYPERLINK/http://ww.mathwoks.cm/2、Mtlb數(shù)據(jù)輸入與類型2.1Mlab中的量MTAB程序中的基本數(shù)據(jù)單元稱為陣列(Ara)是一個(gè)分為行與列的數(shù)據(jù)集合。變量被看作是只有一行一列的陣列。MTAB語言不需要對(duì)變量進(jìn)行事先聲明,也不需要指定變量類型它會(huì)自動(dòng)根據(jù)所賦予變量的值或?qū)ψ兞克M(jìn)行的操作來確定變量的類型。其命名規(guī)則為:(1)變量名的大小寫是敏感的。(2)變量的第一個(gè)字符必須為英文字母,而且不能超過31個(gè)字符。(3)變量名可以包含下劃線、數(shù)字,但不能為空格符、標(biāo)點(diǎn)。(4)命名變量時(shí)可以取一個(gè)容易記憶并且能表達(dá)出其含義的名稱,如匯率,可以定義為xhng_te。對(duì)于變量作用域,默認(rèn)情況是局部變量,用global定義全局變量,而且全局變量常用大寫的英文字母表示。TLAB預(yù)定義的變?nèi)缦卤硭荆篴ns預(yù)設(shè)的計(jì)算結(jié)果的變量名psATLAB定義的正的極小值=2.2204e16pi內(nèi)建的π值inf∞值,無限大NaN無法定義一個(gè)數(shù)目i或j虛數(shù)單位i=j=√1nagin函數(shù)輸入?yún)?shù)個(gè)數(shù)nagout函數(shù)輸出參數(shù)個(gè)數(shù)alax最大的正實(shí)數(shù)203alin最小的正實(shí)數(shù)202flops浮點(diǎn)運(yùn)算次數(shù)注1:在定義變量時(shí)要盡量與避免與這些名字相同,以免改變它們的值,如果已經(jīng)改變可以通過clear變量名來恢復(fù)它初始值也可以通過重新啟動(dòng)TLAB恢復(fù)這些值。注2:數(shù)字的輸入輸出格式。所有數(shù)據(jù)均按EEE浮點(diǎn)標(biāo)準(zhǔn)的長(zhǎng)型格式存儲(chǔ)。輸入格式沿用了C語言的風(fēng)格和規(guī)則;輸出格式使用foat數(shù)據(jù)格式命令控制,只影響在屏幕上的顯示結(jié)果,不影響內(nèi)部的存儲(chǔ)和運(yùn)算。2.2向及其算1、向量的生成①命令窗口直接輸入,使用[],元素之間空格、逗號(hào)或者分號(hào)隔。②使用冒號(hào)表達(dá)式基本形式為x=x0:sp:xn其中xn為尾元素值限而不一定是尾元素的值。當(dāng)step1時(shí)可省略步長(zhǎng)。③生成線性等分向量,使用linspae函數(shù)。Ylinspa(x1,x2,n)④生成對(duì)數(shù)等分向量,使用logspae函數(shù)。Ylospe(x1,x2,n)2、向量的基本運(yùn)算PAGEPAGE6數(shù)加(減、數(shù)乘、點(diǎn)積(dot函數(shù)、叉積(ross函數(shù)、混合積dot(,crossb,))2.3矩及其算1、簡(jiǎn)單矩陣的輸入(1)要直接輸入矩陣時(shí),矩陣一行中的元素用空格或逗號(hào)分隔;矩陣行與行之間用分號(hào)隔離,整個(gè)矩陣放在方括號(hào)[]”里。A[1,2,3;4,5,6;7,8,9]說明:指令執(zhí)行后,矩陣A被保存在Matlb的工作空間中,以備后用。如果用戶不用lr指令清除它,或?qū)λM(jìn)行重新賦值,那么該矩陣會(huì)一直保存在工作空間中,直到本次指令窗關(guān)閉為止。(2)矩陣的分行輸入,此時(shí)回車鍵作為分行標(biāo)志,A[1,2,34,5,67,8,9](3)使用M文件創(chuàng)建大矩陣,當(dāng)矩陣維數(shù)非常大時(shí),可以創(chuàng)建m文件,在m文件中輸入數(shù)據(jù)或者導(dǎo)出數(shù)據(jù)文件。2、矩陣的基本運(yùn)算①矩陣的四則運(yùn)算其中乘法運(yùn)算要注意相乘的雙方有相鄰公共維除法分為左除“\”\B=inv()*B和右除”/(A/B=A*invB))需要計(jì)算逆矩陣)②矩陣的逆運(yùn)算。inv函數(shù)。③矩陣的冪運(yùn)算。^。④矩陣的指數(shù)運(yùn)算。xp返回每個(gè)元素的指數(shù)值,xp[,D]=EG()ndEXPM(X)=V*dia(xpdiagD))/V,xp1expx)1)⑤矩陣的對(duì)數(shù)運(yùn)算。logm⑥矩陣的特征值函數(shù)。ig和igs適合于大型稀疏方陣)⑦矩陣的奇異值函數(shù)。svd([U,S,V]=SV(),X=U*S*V)和svds⑧矩陣的條件數(shù)函數(shù)on(矩陣A的條件數(shù)等于A的范數(shù)與A的逆的范數(shù)的乘積c=ond(A,p等價(jià)于normA,p)*norminv(A),pondst1范數(shù)的條件數(shù)的估計(jì)值,rond⑨特征值的條件數(shù)函數(shù)。odig([,D,s]=ondi(A)等價(jià)于[,D]=i(A;sPAGEPAGE7ondi(A;)⑩范數(shù)函數(shù)no(1-范數(shù)即列范數(shù)矩陣的各列絕對(duì)值之和的最大值2范數(shù):所有元素的平方和開根號(hào)默認(rèn);無窮范數(shù):即行范數(shù),矩陣各行的絕對(duì)值之和的最大值,nost矩陣的2范數(shù)的估計(jì)值)其他還有秩函數(shù)ank跡函數(shù)tae零空間函數(shù)nul(又稱為核空,Xnull(),則A*0X*X=正交空間函數(shù)othB=oth(),則B*B=ee(rank()))偽逆數(shù)pinv等。3、特殊向量和特殊矩陣(1)特殊向量t=[0:0.1:1]%產(chǎn)生從0到10的行向量,元素之間間隔為0.1t=linsp(n1,2,n)產(chǎn)生n1和n2之間線性均勻分布的n個(gè)數(shù)缺省n時(shí),產(chǎn)生100個(gè)數(shù))t=lospa(n1,2,n)(缺省n時(shí),產(chǎn)生50個(gè)數(shù))在和之間按照對(duì)數(shù)距離等間距產(chǎn)生n個(gè)數(shù)。(2)特殊矩陣i單位矩陣y(,y(,n)可得到一個(gè)可允許的最大單位矩陣而其余處補(bǔ)0,y(siz(a)可以得到與矩陣a同樣大小的單位矩陣。ii所有元素為1的矩陣ons(n),ons(siz()),ons(m,n。iii)所有元素為0的陣os(n),zrosm,n)。iv)空矩陣是一個(gè)特矩陣,這在線性代數(shù)中是不存在的。例如q=[]矩陣q在工作空間之中但它的大小為零過空矩陣的辦法可以刪除矩陣的行與列。例如a:,3=[]表示刪除矩陣a的第3列。v)隨機(jī)數(shù)矩陣PAGEPAGE9and(,n)產(chǎn)生mn矩陣,其中的元素是服從[0,1]上均勻分布的隨數(shù)。andint,n,[in,ax])產(chǎn)生mn矩陣,其中的元素是[min,mx]上隨機(jī)整數(shù)。nond(u,siga,,n)產(chǎn)生mn矩陣,其中的元素是服從均值為mu,標(biāo)準(zhǔn)差為sima的正態(tài)分布的隨機(jī)數(shù)。xpnd(u,,n)產(chǎn)生mn矩陣,其中的元素是服從均值為mu的指數(shù)分布的隨機(jī)數(shù)。poissnd(u,,n)產(chǎn)生mn矩陣其中的元素是服從均值為mu的泊(Poisson)分布的隨機(jī)數(shù)。unfnd(a,b,,n)產(chǎn)生mn矩陣其中的元素是服從區(qū)間[,b]上均分布的隨機(jī)數(shù)。r=vnnd(U,SIGMA,ases)產(chǎn)生ss對(duì)均值向量為MU,協(xié)方差陣為SGMA的多維正態(tài)分布的隨機(jī)數(shù)。vi)隨機(jī)置換andp(n)產(chǎn)生1到n的一個(gè)隨機(jī)全排列。prs(1:n]產(chǎn)生1到n的所有全排列。vii稀疏矩陣稀疏矩陣是指矩陣中零元素很多非零元素很少的矩陣對(duì)于稀疏矩陣只要存放非零元素的行標(biāo)、列標(biāo)、非零元素的值即可,可以按如下方式存儲(chǔ)(非零元素的行地址,非零元素的列地址),非零元素的值。在Matlb中無向圖和有向圖鄰接矩陣的使用上有很大差異。對(duì)于有向圖只要寫出鄰接矩陣直接使用Matlb的命令spase命令就可以把鄰接矩陣轉(zhuǎn)化為稀疏矩陣的表示方式。對(duì)于無向圖,由于鄰接矩陣是對(duì)稱陣,Matlb中只需使用鄰接矩陣的下三角元素,即Matlb只存儲(chǔ)鄰接矩陣下三角元素中的非零元素。稀疏矩陣只是一種存儲(chǔ)格式。Matlb中,普通矩陣使用spase命令變成稀疏矩陣,稀疏矩陣使用full命變成普通矩陣。例1zros5;(1,[2,4])[3,4];(3,[2:4])[13];(5,[1,5])[6,7]bspase()%普通矩陣轉(zhuǎn)化成稀疏矩陣full(b)稀疏矩陣轉(zhuǎn)化成普通矩陣其他一些特殊矩陣如下表所示:函數(shù)功能函數(shù)功能ompan伴隨陣maic魔方陣lleryHihm測(cè)試陣rossr經(jīng)典對(duì)稱特征值測(cè)試陣hdmadHrdmard矩陣toeplitzoplitz矩陣hnklHnkl矩陣pslPsl矩陣hilbHilbet矩陣vndr范德蒙矩陣invhilb反Hilbet矩陣wilkinsonilkinson’s特征值測(cè)矩陣4、矩陣的特殊操作①變維。有兩種方法,使用冒號(hào)()和使用函數(shù)shape使用“”表達(dá)式對(duì)兩個(gè)矩陣進(jìn)行變維操作,需要預(yù)先定義兩個(gè)矩陣的維數(shù)(例如A:,3=[;rshape有兩種形式,分別為rshp(,M,N)和rshp(X,M,,P…)②變向主要函數(shù)如下表所示:函數(shù)功能函數(shù)功能fiplr矩陣左右翻轉(zhuǎn)diag產(chǎn)生或提取對(duì)角陣fipud矩陣上下翻轉(zhuǎn)tril產(chǎn)生下三角fipdim矩陣特定維翻轉(zhuǎn)triu產(chǎn)生上三角Rot90矩陣反時(shí)針90翻轉(zhuǎn)③矩陣的抽取對(duì)角線元素抽取函數(shù)dag(,k)/diag(,k)抽取矩陣X的第k條對(duì)角線的元素向量/使得向量v為所得矩陣的第k條對(duì)角線元素。上三角元素抽取til(,k)和下三角元素抽取tiu(,k)④擴(kuò)展兩種方法:用對(duì)矩陣標(biāo)示塊的賦值命令Xm1:m2,n1:n2)a生成大矩陣,其中m2m1+1必須等于a的行維數(shù),n2n1+1必須等于a的列維數(shù),生成m2n2維的矩陣;利用小矩陣組合生成大矩陣,要嚴(yán)格注意矩陣大小的匹配。(示例:X1:10,1:10)zros10,10),X[X,;X,X])alab中冒號(hào)()的使用方法小結(jié):(1)用于生成向量,:b,一般要求b,否則生成空矩陣。(2如果ba不是整數(shù)時(shí)則向量的最后一位數(shù)為n其中nfix(b)向零取整)(3:c:b表示[,+,…,n*]其中n=fix(b)/)當(dāng)c0且b或者0且ab時(shí)出現(xiàn)空矩陣。(4)A:)以一列的方式顯示A中所有的元素(5)bAi,:)表示將A中第i行存入b中(6)bA:,j)表示將A中第j列存入b中(7)bAj:k)表示將A中第j到第k個(gè)元素存入b中(Matlb中矩陣按列存儲(chǔ))(8)bA:,c:d表示將A中第c列到第d列存入b中,要求,d不能超過A的列數(shù)。(9)當(dāng)矩陣很大時(shí),不知道矩陣的維數(shù),可以使用nd作為矩陣的最后一行或者一列或者最后一個(gè)元素。例如bA1:2,2:nd)獲取矩陣A右上角的元素。2.4數(shù)及其算數(shù)組與矩陣在形式上完全一致只是運(yùn)算與矩陣不同同型矩陣之間的運(yùn)算通常稱為數(shù)組運(yùn)算(矩陣數(shù)組運(yùn)算)1、基本數(shù)組運(yùn)算①四則運(yùn)算。數(shù)組的乘除法是指兩個(gè)同維數(shù)組間對(duì)應(yīng)元素之間的乘除法,運(yùn)算符為.*,./和.\。數(shù)組與常數(shù)之間的運(yùn)算可以加”.”,也可以不加。②冪運(yùn)算。.,對(duì)每個(gè)數(shù)組元素的冪運(yùn)算。③指數(shù)運(yùn)算ep,對(duì)數(shù)運(yùn)算log和開方運(yùn)算srt。2、數(shù)組函數(shù)運(yùn)算只要把運(yùn)算的數(shù)組帶入到函數(shù)中就可以了,通用形式為funae(A)3、數(shù)組的邏輯運(yùn)算和關(guān)系運(yùn)算指令含義函數(shù)名<小于lt小于等于le>大于t大于等于e等于q~=不等于ne&邏輯與nd|邏輯或or~邏輯非not指令含義指令含義xor不相同就取1,否則取0isequl相等取1,否則取0ny只要有非0就取1,否則取0ismmber兩個(gè)矩陣是屬于關(guān)系取1否則取0ll全為1取1,否則為0isempty矩陣為空取1,否則取0isnan為數(shù)NN取1,否則為0islttr是字母取1否則?。梢允亲址﹊sinf為數(shù)inf取1,否則為0isstudent學(xué)生版取1isfinite有限大小元素取1,否則為0isprime質(zhì)數(shù)取1,否則取0ischr是字符串取1,否則為0isrl實(shí)數(shù)取1,否則取0find尋找非零元素坐標(biāo)isspe空格位置取1,否則取0isnumric判斷數(shù)值矩陣isloicl判斷邏輯數(shù)組PAGEPAGE123、Mtlb中的M文件及程序調(diào)試M文件分為兩種一種是腳本文件由一系列Matlb的命令組成可以直接運(yùn)行;一種是函數(shù)文件,必須由其他M文件或者在命令行窗口中調(diào)用執(zhí)行。函數(shù)文件具有一定的通用性,并且可以進(jìn)行遞歸調(diào)用。3.1Mtlb中控制語句(1)if語句有三種形式:if表達(dá)式)語句組A;ndif表達(dá)式)語句組A,else語句組,ndif表達(dá)式1)語句組A,lseif表達(dá)式2)語句組,lse語句組C,end(2)循環(huán)語句whil(表達(dá)式)語句組A,ndfork初值:增量:終值語句組A,nd循環(huán)語句可以結(jié)合bak命令來控制程序的執(zhí)行順序。(3)swith語句switch表達(dá)式標(biāo)量或者字符串)se值1語句組Ase值2語句組B…othewise語句組Nnd用法示例:示例一:輸入數(shù)n,判斷其奇偶性解Matlb程序如下:ninputn?ifm(n,2)0求余數(shù),與mod函數(shù)的區(qū)別,當(dāng)同符號(hào)時(shí)兩者相同,否則不同Avn;lseAodd,nd示例二:求Matlb中的最大實(shí)數(shù)解:Matlb程序如下:x1;whilex~inf,x1x;x2x;%為了獲取更接近rlmx的值,可以改為x1.01xndx1示例三:求Matlb的相對(duì)精度解:matlab程序如下:=1;while1+11=;=/2;nd32腳文件主要特征如下:(1一般由lc,ler命令開始清除掉屏幕和工作空間中原有的變量和圖形以避免其他已執(zhí)行的程序殘留數(shù)據(jù)對(duì)本程序的影響。程序中應(yīng)該添加有注釋。(2接下來是程序的主體,如果文件中有全局變量,則需要使用Globl在程序的起始部分注明。為了提高程序的可讀性,注意語句的縮進(jìn)。(3整個(gè)程序應(yīng)按照Matlab標(biāo)識(shí)符的要求起文件名,擴(kuò)展名為m。示例:列出求素?cái)?shù)的程序解Matlb程序如下:le,lcNinput(N=),x2:N;%列出從2到N的全部自然數(shù)foru2:sqrt(N)依次列出除數(shù)nfindrm(x,u)0x~u;%找到能被u整除而不等于u的數(shù)序號(hào)x(n[];%剔除該數(shù)ndx33函文件函數(shù)文件與腳本文件的區(qū)別:(1由funtion開頭,后跟的函數(shù)名必須與文件名相同;(2有輸入變量和輸出變量,可進(jìn)行變量傳遞;(3除非使用Globl聲明,程序中的變量均為局部變量,運(yùn)行后不保存在工作空間中。示例1:使用函數(shù)文件寫出求素?cái)?shù)的程序解:Matlb程序如下:funtion=qiuprim(N)求出1到N之間的素?cái)?shù),返回素?cái)?shù)組成的向量x2:N;%列出從2到N的全部自然數(shù)foru2:sqrt(N)依次列出除數(shù)nfindrm(x,u)0x~u;%找到能被u整除而不等于u的數(shù)序號(hào)x(n)[];剔除該數(shù)ndx;示例2:寫一個(gè)遞歸函數(shù)求n!解:funtionfftorn)ifn1f1;nd

lsend

ffatorn1*n;3.4函參數(shù)可性Matlb中有兩個(gè)永久變量nin和naout分別記錄調(diào)用該函數(shù)時(shí)的輸入實(shí)參和輸出實(shí)參的個(gè)數(shù)只要在函數(shù)中包含這兩個(gè)變量就可以準(zhǔn)確的知道該函數(shù)文件被調(diào)用時(shí)的輸入輸出參數(shù)個(gè)數(shù),從而決定函數(shù)如何進(jìn)行處理。其他類似的變量還有vraout,vrain。示例1:funtionfut=xmp(,b,)ifnin=1fout;lseifnin2foutb;lseifnin3foutb;nd示例2:funtion[x,,z]xmp(,b,)ifnrout=1x;lseifnrout=2x;b;lseifnrout=3x;b;z;nd

nd示例3:funtionvrtst(rA,arg,vrrin)optain=siz(vrrin,2;可選輸入stdain=nrin-optrgin;標(biāo)準(zhǔn)輸入fpintf(Numberofinputs=%dn,nrin)fpintf('nputsfomindividulaumnts(d:n,...stdain)ifstdain=1fpintf('dn,rA)ndifstdain=2fpintf('dn,rB)ndfpintf('nputspakaedinvarin(d:n,optarin)fork=1:siz(vrrin,2)printf('dn,varrin{k})nd

nd35程調(diào)試M文件編輯器中提供了強(qiáng)大的程序調(diào)試功能,使用方式如同VC程序中的調(diào)試器。在M文件編輯器中的工具欄中有如下程序調(diào)試圖標(biāo):這些圖標(biāo)的使用和菜單Dbug中的一些命令相同。4、Mtlb繪圖命令41維繪命令二維繪圖的基本命令有plotlolosmiloxsmilogy和polar它們的使用方法基本相同其不同特點(diǎn)是在不同的坐標(biāo)中繪制圖形plot命令使用線性坐標(biāo)空間繪制圖形;loglog命令在兩個(gè)對(duì)數(shù)坐標(biāo)空間中繪制圖形;而seilogx或semilogy命令使用x軸(或y軸)為對(duì)數(shù)刻度,另外一個(gè)軸為線性刻度的坐標(biāo)空間繪制圖形;polar使用極坐標(biāo)空間繪制圖形。二維繪圖命令plot為了適應(yīng)各種繪圖需要提供了用于控制線色數(shù)據(jù)點(diǎn)和線型的3組基本參數(shù)。它的使用格式如下:plotx,,‘olor_point_linstyle’)該命令是繪制y對(duì)應(yīng)x的軌跡的命令。y與x均為向量,且具有相同的元素個(gè)數(shù)。用字符串,olor_point_linstle?完成對(duì)上面3個(gè)參數(shù)的設(shè)置。線色:-d,ggen,bbue,wwit,kblack,invisble,y-llow,yan(青色,紫色。數(shù)據(jù)點(diǎn)(圓點(diǎn)(小圓圈(叉號(hào)(加號(hào)(星號(hào)(squae方形,(hxrm六角星,(diamond菱型(pntarm五角星v(下三角(上三角,(左三角,>(右三角。線型:(實(shí)線,(虛線,.(點(diǎn)畫線,:(點(diǎn)線。當(dāng)plot(x,)中的x和y均為n矩陣時(shí),plot命令將繪制n條曲線。plott,x1,x2,x3在同一坐標(biāo)軸內(nèi)同時(shí)繪制三條曲線。如果多重曲線對(duì)應(yīng)不同的x軸向量繪制,可用命令plott1,x,2,x2,3,x3)式中x1對(duì)應(yīng)t1x2應(yīng)t2等等在這種情況下t1t2和t3可以具有不同的元素個(gè)數(shù),但要求x1x2和x3必須分別與t1,2和t3具有相同的元素個(gè)數(shù)。subplot命令使得在個(gè)屏幕上可以分開顯示n個(gè)不同坐標(biāo)系,且可分別在每一個(gè)坐標(biāo)系中繪制曲線。其命令格式如下subplot,,p)該命令將屏幕分成rc個(gè)子窗口而p表示激活第p個(gè)子窗口窗口的排號(hào)是從左到右,自上而下。下面對(duì)幾個(gè)特殊的坐標(biāo)系統(tǒng)進(jìn)行簡(jiǎn)要介紹:①對(duì)數(shù)坐標(biāo)曲線,主要有semilog,smiloy和loglog,前兩個(gè)分別以x坐標(biāo)和y坐標(biāo)為對(duì)數(shù)坐標(biāo),后一個(gè)是雙對(duì)數(shù)坐標(biāo)。例如:x1:0.1*pi:2*p;=sin(x);smilox(x,,'*)x=0:.1:10;smilog(x,10.^x)x=lospae(1,2);lolo(x,xpx),s)ridon②雙縱坐標(biāo)(雙y軸坐標(biāo)系)函數(shù)plotyy,調(diào)用形式為:plot(X1,1,X2,2)plot(X1,1,X2,2,fun)fun可以是plot、semilox、smilogy或lologplot(X1,1,X2,2,fun1,fu2)un1繪制(1,Y1),fun2繪制(2,Y2)③極坐標(biāo)繪圖函數(shù)polar調(diào)用形式為:polarthea,ho)例1:繪制極坐標(biāo)下的平面曲線ab),并討論參數(shù),b,n對(duì)曲線的影響。解Mtlb程序如下:N100;thetlinspae(0,2pi,N;fori=1:2(iinput(a=bi)input(b=ni)input(n=rhoi,:)a(i*os(b(ini)*thta);subplot(1,2,i),polr(thet,ho(i,:);nd幾個(gè)比較漂亮的極坐標(biāo)系下的圖形:(1蝴蝶圖案t=0:0.01:36;fxpos(tpi/2)2*os(4*(tpi/2)sin((t-pi/2/12.^5;pola(t,,r')(2楓葉圖案tpi/2:0.05:1.5*pi;f100./(100+(tpi/2.^8)*2sin(7*t)os(30*t/2;pola(t,,r')在圖形繪制完畢后執(zhí)行如下命令可以再在圖中加入標(biāo)題標(biāo)號(hào)說明和分格線等。這些命令有tile,xlabl,ylab,tx,gxt,legnd等。它們的令格式如下titl(“Myitle”),xlabl(“MyXxisbl”,labl(“Myxisbl”,xlabl({fistline;sondlin})text(x,,xtfornnotation'),text(extfornnotation),ridongxt命令是使用鼠標(biāo)器定位的文字注釋命令。當(dāng)輸入命令后,可以在屏幕上得到一個(gè)光標(biāo)然后使用鼠標(biāo)器控制它的位置按鼠標(biāo)器的左鍵即可確定文字設(shè)定的位置。holdon是圖形保持令,可以把當(dāng)前圖形保持在屏幕上不變,同時(shí)在這個(gè)坐標(biāo)系內(nèi)繪制另外一個(gè)圖形holdon命令是一個(gè)交替轉(zhuǎn)換命令即執(zhí)行一次轉(zhuǎn)變一個(gè)狀(相當(dāng)于holdon、holdo還可以設(shè)置坐標(biāo)軸的范圍,使用命令axis,其格式為:xis(xminxmxminmax])xis(xminxmxminmaxminmaxminx])示例:x=0:.01:pi/;plot(x,tanx),ro')圖形效果如下所示:默認(rèn)情況下橫縱坐標(biāo)軸的范圍是根據(jù)函數(shù)自變量和因變量的值自動(dòng)變化的有時(shí)效果不好,此時(shí)需要設(shè)定橫縱坐標(biāo)軸的范圍:axis([0pi/20]),效果如上右圖所示。解畫圖的Matlb程序如下,畫出的圖見圖1。lc,lerx2*pi:0.1:2*pi;1sin(x);2sin(xpi/32;3os(x);plot(x,1,.-';holdon%圖形保持命令plot(x,2,*-';plot(x,3,'o';hlend(sin($x$),sin($x+fra{pi}{3}$),'os($x$)latx格式顯示st(h,'nteprter,ltex)設(shè)置Intrpretr的屬性值為lat,可以使用數(shù)學(xué)公式xlabl($x$,'nterpter,ltex)latx格式顯示lbl($$,'nterpter,ltex)latx格式顯示圖1解畫圖的Matlb程序如下,畫出的圖形結(jié)果見圖2。lc,lerx2*pi:0.1:2*pi;1sin(x);2sin(xpi/32;3os(x);subplot(3,1,1,plot(x,1,'.',titl(sin($x$),'nterprter,latx)subplot(312,plot(x,2,*')titl(sin($x+fr{pi}{3}$),'nteprter,ltex)lbl($$,'nterpter,ltex)latx格式顯示subplot(313,plot(x,3,-o)titl(os($x$),'nterpter,ltex)latx格式顯示xlabl($x$,'nterpter,ltex)latx格式顯示4.2復(fù)繪圖plot(z):z為復(fù)數(shù)時(shí)當(dāng)于plot(l(z),ima(z));如果是雙變量如plot(t,z),則z中的虛數(shù)部分將丟棄。復(fù)平面中繪出多條曲線,必須使用holdon令,或者把多條曲線的實(shí)部和虛部明確的寫出。即plotal(z1,iag(1,al(2,iag(z2)Matlb中專門用來繪制復(fù)變量函數(shù)圖形的相關(guān)命令是plxapplxgridplxoot,格式如下:z=plxrid(m)%產(chǎn)生(m1*2m+1)的極坐標(biāo)下的復(fù)數(shù)數(shù)據(jù)網(wǎng)格plxmap(z,(z),optionlbound)繪制復(fù)變函數(shù)的圖形,以xy平面為自變量所在的復(fù)平面,以z軸表示變函數(shù)的實(shí)部,顏色表示復(fù)變函數(shù)的虛部。plxroot:畫復(fù)數(shù)的n次函數(shù)曲面plxrootn)畫復(fù)數(shù)n次根的函數(shù)曲面,復(fù)數(shù)為最大半徑為1的圓面plxrootn,m)畫復(fù)數(shù)n次根的函數(shù)曲面,復(fù)數(shù)為最大半徑為1的圓面,(m+1*(2m+)的方陣?yán)?:繪制zxp(0.1i)*t)的復(fù)數(shù)圖形解Matlb程序如下:t=0:0.1:15;zxp(0.1i)*t);subplot(2,2,1)plot(z),puse;%pause可以暫停程序的執(zhí)行通過按任意鍵可使程序繼續(xù)進(jìn)行也可以在pusen中設(shè)置時(shí)間使執(zhí)行結(jié)果出現(xiàn)動(dòng)態(tài)效果。titl(復(fù)數(shù)繪圖plot(z));subplot(2,2,2)plot(t,z),pusetitl(plot(t,z))subplot(2,2,3)pola(nle(z),bs(z);pause;titl(polar(nle(z),bs(z)))subplot(2,2,4)smilox(t,z);titl(smilox(t,z))注:Matlb中使用函數(shù)C=oplxA,B)構(gòu)造復(fù)數(shù)。例2:繪圖=os(xi)的圖形解法一:xpi:0.1:pi;fun@x)os(xi);如果直接使用plot(x,),會(huì)忽略虛部。plot(un(x))解法二:plot(os(xi);例3:繪制z^4的圖形,其中z為復(fù)數(shù)解:zplxrid30);plxmapzz.^4)43顯數(shù),號(hào)數(shù)或隱數(shù)的圖fplotfun,is)繪制由字符串fun指定函數(shù)名的函數(shù)在x軸區(qū)間為lm[xmin,xmx]的函數(shù)圖。若lims=xin,xmx,min,mx]則y軸也被限制。解(1)首先用M文件fun1m定義函數(shù)fx)如下funtion=Aun1(x);ifx1x1;lse=11./x;nd在matlab命令窗口輸入fplot(Afun1,[3,3])就可畫出函數(shù)fx)的圖形。(2)可以使用匿名函數(shù),編寫程序如下fun2@x)x1*x1(11/x)*x1;fplot(un2,[3,3])plotf)繪制符號(hào)函數(shù)或者隱函數(shù)f(x的圖形,x軸的近似范圍為[2,2。zplot(,xminxmx])使用輸入?yún)?shù)來代替默認(rèn)橫坐標(biāo)范圍[2,2zplot函數(shù)的其他格式有:zplot(un2)繪制fun2x,)=0的隱函數(shù)曲線,默認(rèn)x,y的范圍是2,2zplot(un2,xminxmxmin,mx])示例:funtionz=mfunx,,k)建立M文件z=x.^k-.^k-1;在命令窗口中輸入:zplot((x,)mfun(x,,2);解zplot(ot(x))解zplot(x^2+^2/41')例61:同一坐標(biāo)系下繪制曲線x^2+^21和x^2-^21的曲線解:zplot(x^2-^21');holdon;zplot(x^2+^21');olormp[0,0,1]);44三圖形在實(shí)際工程計(jì)算中,最常用的三維繪圖是三維曲線圖、三維網(wǎng)格圖和三維曲面圖3種基本類型與此對(duì)應(yīng)Matlb也提供了一些三維基本繪圖命令如三維曲線命令plot,三維網(wǎng)格圖命令mesh和三維表面圖命令surf。1.三維曲線plot3x,y,通過描點(diǎn)連線畫出曲線這里x,,z都是n維向量分別表示該曲線上點(diǎn)集的橫坐標(biāo)、縱坐標(biāo)、豎坐標(biāo)。例7t=0:0.05:20*pi;xsin(t);=cos(t);zt.*sint).*os(t);plot3x,,z),titl('inein3DSpae')xlabl(X),labl(Y'),zlbl('Z),gidon2.三維網(wǎng)格圖命令sh(x,y,)畫網(wǎng)格曲面。這里x,,z是三個(gè)同維數(shù)的數(shù)據(jù)矩陣,分別表示數(shù)據(jù)點(diǎn)的橫坐標(biāo)縱坐標(biāo)豎坐標(biāo)命令meshx,,z)將該數(shù)據(jù)點(diǎn)在空間中描出并連成網(wǎng)格。解x3:0.1:3;=5:0.1:5;x1ons(siz(')*x;1='*ons(siz(x);[x2,2]meshrid(x,);meshgid函數(shù)生成2D/3D網(wǎng)格矩陣,用于分割空間,在繪制3D網(wǎng)格圖或者表面圖時(shí)都需要調(diào)用該函數(shù)對(duì)生成繪圖時(shí)所用的數(shù)據(jù)。z1(sin(x1.*1)ps)./(x1.*1+ps);z2(sin(x2.*2)ps)./(x2.*2+ps);subplot(1,2,1,meshx1,1,z1)subplot(1,2,2,meshx2,2,z2)例81:繪制兩個(gè)空間相交的平面zx2-1和zx-2解:x3:0.1:3;=-3:0.1:3;[X,]meshridx,);meshX,,X2*Y1)holdonmeshX,,X-Y2)3.表面圖命令suf(x,y,)畫三維表面圖這里x,,z是三個(gè)同維數(shù)的數(shù)據(jù)矩陣分別表示數(shù)據(jù)點(diǎn)的橫坐標(biāo)、縱坐標(biāo)、豎坐標(biāo)。解[x,]meshrid([3:0.2:3]);z(sin(x.*)ps)./(x.*ps);sur(x,,z)4.旋轉(zhuǎn)曲面方法一:使用命令函數(shù)ylindr[X,,]=clindr()這里的r表示構(gòu)成旋轉(zhuǎn)曲面的曲線。解Matlb程序如下。x0:10:600;[X,,]clindr(30*xp(x/400).*sin(x25*pi)/100)130);sur(,Y,Z)方法二:將旋轉(zhuǎn)曲面用參數(shù)方程表示。解因?yàn)檫@里的函數(shù)是隱函數(shù),化成顯函數(shù)后有兩支,必須使用參數(shù)方程,旋轉(zhuǎn)面的參數(shù)方程為畫圖的Matlb程序如下:lpha[0:0.1:2*pi];bet0:0.1:2*pi;x4*os(lpha*ons(siz(bta);=(54*sin(lpha))*os(bta;z(54*sinlpha))*sin(bta;sur(x,,z)或者利用繪制三維隱函數(shù)曲面圖形的命令suf或者zsh,其命令格式如下:zmeshfun)zmeshfun,omain)domain要求是一個(gè)向量,指定x,y軸的范圍zmeshfunx,un,unz)參數(shù)方程繪圖funx(s,t),fun(s,t),ndfunz(s,t)vrthesqua:2π<s<2,2π<t<2.zsur(un)zsur(un,domain)zsur(unx,un,funz)畫圖的Matlb程序也可以寫成x@lpha,bta)4*os(alpha;=@(lpha,bta)(54*sinlpha)*os(bt);z@lpha,bta)54*sinlpha)*sin(bta;zsur(x,,z)對(duì)于形如fx,,z)0的三維隱函數(shù)的圖像沒有現(xiàn)成的函數(shù)可以畫,但可以利用isosufae函數(shù)繪制三角網(wǎng)格圖。例如f@x,,z)x.^2+.^2z.^210;%定義函數(shù)fx^2^2z^210[x,,z]meshridlinspac(4,4,25));設(shè)定格子大小和范圍vl=(x,,z);[p,v]isosuf(x,,z,val,0);%用isosufce得到函數(shù)f0圖形的點(diǎn)和面PAGEPAGE29ptch(fs,p,vrtics,v,fvrtxdta,jt(siz(v,1),fceolor,w,'deolor,flt);用ptch繪制三角網(wǎng)格圖并設(shè)定色彩vie(3;ridon;xisequl5、繪制柱面柱面平行于某個(gè)坐標(biāo)軸方程中不出現(xiàn)某個(gè)坐標(biāo)軸的變量方程表示為(x,)0或者(x,z)0或者(,z)=0示例一:畫出方程z2x2表示的柱面解:方程中的x是自量矩陣,z是因變量則另一個(gè)自變量矩陣為,自變量平面是xoy面,x軸是真正的自變量,y軸是柱面方向。Matlb程序如下:ulinspa(5,5,10);%設(shè)定參數(shù)列向量uvlinspa(5,10,10;%設(shè)定參數(shù)行向量vXu*ons(siz(v));%構(gòu)成自變量矩陣XYons(siz(u))*v;%構(gòu)成自變量矩陣Y2X.^2;%求因變量ZmeshX,,)2示例二:畫出方程x2y1表示的柱面24解:方程整理為顯示函數(shù):y21x2,分別繪制正負(fù)兩個(gè)分量。ler,lculinspa(5,5,10);%設(shè)定參數(shù)列向量uvlinspa(5,10,10;%設(shè)定參數(shù)行向量vX1u*ons(siz(v));%構(gòu)成自變量矩陣X1Y12*sqrt1+X1.^2;%求因變量Y1Y22*sqrt1X1.^2;1ons(siz(u))*v;%求因變量meshX1,1,1,holdonmeshX1,2,1)6.其它二次曲面對(duì)于旋轉(zhuǎn)面如果母線的方程可以表示成關(guān)于旋轉(zhuǎn)軸變量的顯式函數(shù)則可以直接使用Matlb工具箱中的命令ylindr,否則必須把旋轉(zhuǎn)面化成參數(shù)方程,然后使用zmesh或zsurf命令繪圖。對(duì)于其它的二次曲面,如果可以寫成顯函數(shù)直接使用命令zmesh或zsur,否則必須先化成參數(shù)方程。還有一些特殊的繪制函數(shù)如ylind,llipsoid等令。解:(1)x@s,t)3*s(s*os(t);化為參數(shù)方程=@(s,t)*se(s*sin(t);z@s,t)2*tans);zmeshx,,z)(2)x@s,t)3*s(s;=@(s,t)*tans)*os(t);z@s,t)2*tans)*sin(t;zmeshx,,z)(3)zsur((,z).^2,50)直接調(diào)用zsurf(4)x@s,t)3*tans)*os(t);=@(s,t)*tans)*sint);z@s,t)tans);zsur(x,,z)(5)llipsoid(0,0,,3,2sqrt())專門繪制橢球面(6)zsur((x,)x*)(7)x@s,t)3*os(s;=@(s,t)*sin(s);z@s,t)t;zmeshx,,z)7、繪制空間兩曲面的交線示例繪制由水平截面與方程zx22y2構(gòu)成的馬鞍面形成的交線并討論等高線和方向?qū)?shù)(梯度)的意義解水平平面與曲面的交線就是等高線在Matlb中繪制等高線有兩個(gè)命令ontour和ontour3,前者把等高線畫在xoy平面上,后者把等高線畫在一定高度的平面上,使之成為立體的,與所在曲面對(duì)應(yīng)。Matlb程序如下:lc,ler[x,]meshrid(10:.2:10);%確定計(jì)算和繪圖的定義域網(wǎng)格z1(x.^22*.^2)+ps;%第一個(gè)曲面方程input(=(50<50));z2*ons(siz(x);%水平面方程z2,z2必須與x,y具有相同的維數(shù),subplot(1,3,1,meshx,,z1;holdon;msh(x,,z2;%分別畫出兩個(gè)曲面v[10101010100100];xis(v)rid;%確定第一個(gè)分圖的坐標(biāo)系olormp(ra);holdof;r0bs(z1z2<1;%求兩曲面z坐標(biāo)只差小于0.5的網(wǎng)格zzr0.*z2;r0.*;xxr0.*x;%求這些網(wǎng)格上坐標(biāo)值,即交線坐標(biāo)值subplot(1,3,2,plot3xx,,zz,x';%畫出這些點(diǎn)xis(v)rid;%使第二個(gè)分圖取第一個(gè)分圖的坐標(biāo)系puse,subplot(1,3,3);ontour3x,,z1,20;%用等高線命令求出20條不同高度的交線。等高線與方向?qū)?shù)和梯度的概念密切相關(guān),函數(shù)z1在每一點(diǎn)的梯與該處的等高線垂直也就是指向最陡的方向Matlb中求梯度用gadient函數(shù)quiver函數(shù)畫出梯度向量,這兩個(gè)函數(shù)要求在給定的點(diǎn)陣上求梯度和畫梯度向量。Matlb程序如下:[x,]meshrid(10:2:10);z1(x.^22*.^2)+ps;ontourx,,z1,20;holdon;[x,p]=rdientz1,2,2;%以步長(zhǎng)為2求z1的梯度的x,y分量quive(x,,px,p);%繪制梯度向量8、離散點(diǎn)的圖形繪制相關(guān)函數(shù)giddaa,ipSatIntp,sater(sat3)giddaa用來對(duì)離散數(shù)據(jù)進(jìn)行曲面擬合(1)ZI=giddat(x,,z,X,Y)用二元函數(shù)zfx,)的曲面擬合有不規(guī)則的數(shù)據(jù)向量PAGEPAGE32x,,zriddta將返回曲面z在(X,Y處的插值曲面總是經(jīng)過這些數(shù)據(jù)(x,,z)的輸入?yún)ⅲ╔,YI通常是規(guī)則的格(像用命令meshrid生成的一樣XI可以是一行向量,這時(shí)XI指定一有常數(shù)列向量的矩陣。類似地,YI可以是一列向量,它指定一有常數(shù)行向量的矩陣。(2[X,Y,Z]=riddta(x,,z,xi,i)返回的矩陣ZI含義同上同時(shí)返回的矩陣X,YI是由行向量xi與列量i用命令meshrid生成的。(3[X,Y,Z]=riddta(,method)用指定的算法method計(jì)算:?liner:基于三角形的線性插值(缺省算法;?ubic:基于三角形的三次插值;?nrst?:最鄰近插值法;示例:x=nd(10,1)42;y=rnd(10,1)42;z=x.xp(x.^2-.^2);ti=2:.25:2;[xi,i]=meshridti,ti);zi=riddta(x,,z,xi,i);meshxi,i,zi),holdon,plot3(x,,z,o),holdof在新版本的Matlb中,該函數(shù)逐漸被riScttednterp函數(shù)所代替,riScttrdnterp的示例如下:x=nd(10,1)42;y=rnd(10,1)*42;z=x.*xp(x.^2-.^2);F=TiScttrdntepx,,z);ti=2:.25:2;[x,q]=meshrid(ti,ti);qz=(qx,q);計(jì)算指定位置的插值meshqx,q,qz);holdon;plot3x,,z,o';Matlb中繪制散點(diǎn)圖的命令是sate(sater3,命令格式如下:sttrX,,S,C)XY對(duì)應(yīng)散點(diǎn)值S代表標(biāo)記大小C代表顏色值它都可以是向量。sttr3X,,,S,C)示例:A[1.486,3.059,0.1;2.121,4.041,0.1;2.570,3.959,0.1;3.439,4.396,0.1;4.505,3.012,0.1;3.402,1.604,0.1;2.570,2.065,0.1;2.150,1.970,0.1;1.794,3.059,0.2;2.121,3.615,0.2;2.570,3.473,0.2;3.421,4.160,0.2;4.271,3.036,0.2;3.41,1.876,0.2;2.561,2.562,0.2;2.179,2.420,0.2;2.757,3.024,0.3;3.439,3.970,0.3;4.084,3.036,0.3;3.402,2.077,0.3;2.879,3.036,0.4;3.421,3.793,0.4;3.953,3.036,0.4;3.402,2.219,0.4;3.000,3.047,0.5;3.430,3.639,0.5;3.822,3.012,0.5;3.41,2.385,0.5;3.103,3.012,0.6;3.430,3.462,0.6;3.710,3.036,0.6;3.402,2.562,0.6;3.224,3.047,0.7;3.41,3.260,0.7;3.542,3.024,0.7;3.393,2.763,0.7];xA:,1);A(:,2;zA:,3;sttrx,,5,z)散點(diǎn)圖45動(dòng)可視圖形Matlb中的動(dòng)畫命令,oviein,getfae和ovie,用tfrme把Matlb產(chǎn)生的圖形存儲(chǔ)下來,每個(gè)圖形成一個(gè)很大的列向量;再用N行這樣的列保存N幅圖,成為一個(gè)大矩陣movie命令把他們連接起來重放產(chǎn)生動(dòng)畫效果moviin用來預(yù)留存儲(chǔ)空間以加快運(yùn)行的速度。有些情況也需要借助puse命令和循環(huán)語句來實(shí)現(xiàn)點(diǎn)軌跡的動(dòng)態(tài)演示。繪制彗星圖的命令omet或者omet3也可以實(shí)現(xiàn)點(diǎn)的運(yùn)動(dòng)軌跡,不過這種方式速度較快。示例1:xisequl,%把坐標(biāo)設(shè)成相等比例Mmoviin(16;%為變量M預(yù)留16幅圖的存儲(chǔ)空間forj=1:16plot(ftee(j16)));M(:,j)=tfrme;返回當(dāng)前坐標(biāo)軸下的一幀圖像ndmovi(M,30)%以每秒30幀的速度播放M中的圖形示例2:使用omet/comet3繪制彗星圖(1)t=0:.01:2*pi;x=os(2*t.*(os(t)^2);y=sin(2*t).*sin(t).^2ometx,);(2)n10;t=n*pi*0:0.0005:1;xsin(t);=cos(t);plot(x,,'gxissqua;holdon;ometx,,0.01;holdo;示例3:極坐標(biāo)下一個(gè)點(diǎn)沿著圖形移動(dòng)的軌跡0:.01:2*pi;b3;pola(,b*(1os(),*r);holdon;for0:0.05:2*pilafindobj(c,olo,'r';%findobj函數(shù)用來使用特定的屬性獲取圖形句柄la用來清理由函數(shù)句柄指定的圖形所在的坐標(biāo)軸。h2pola(,b*(1-os(),b';st(h2,linstle,.,'makrsize,30);設(shè)置句柄指定函數(shù)圖形的屬性puse0.001)nd示例4普通二維坐標(biāo)下一個(gè)點(diǎn)沿著曲線移動(dòng)的軌跡程序與上面的結(jié)果基本相同。x2*pi:0.1:2*pi;=sin(x);plot(x,,b-';holdonform2*pi:0.05:2*pilafindobj(c,olo,b');la清除當(dāng)前坐標(biāo)軸上面的子對(duì)象hplot(m,sin(m),'r);st(h,'inStle,.,'Makr,*,MrkerSiz,20);puse0.001;nd示例5:普通三維坐標(biāo)下一個(gè)點(diǎn)沿著曲線移動(dòng)的軌跡。解:三維螺旋線坐標(biāo)t1=10*pi*0:1000)/1000;x1os(t1;1sin(t1);z1t1;繪制曲線下面的水平直線t2=0:10)/10;x2x1nd)*1t2);2=1(nd)*(1t2);z2z1nd)*ns(siz(x2);繪制垂直直線t3=t2;z3(t3)*z1nd);x3zrossiz(z3);3x3;繪制曲線上面的水平直線t4=t2;x4t4;4zros(siz(x4);z4=4;繪制曲線x[x1x2x3x];=[1,2,3,4];z[z1,z2z3,z];plot3x,,z,b,linewidth,3)xisoff繪制移動(dòng)的點(diǎn)hlin(Color,[100],Makr,.,MarkrSize,40,ErsMode,xor);nlenth(x);i=1;j=1;while1st(h,xdta,x(i,'dta,(i,zdta,z(i);dwnow使Mtlb暫停目前的任務(wù)序列而去刷新屏幕puse0.0005;f=tfrme(gf;i=i1;j=j1;ifin&j>450bk;nd

nd5、Mtlb在高等數(shù)學(xué)中的應(yīng)用5.0Mtlb中號(hào)表示1、建立符號(hào)變量Matlb提供了sym和sys兩個(gè)建立符號(hào)對(duì)象的函數(shù)1)sm函數(shù),用來建立單個(gè)符號(hào)變量,調(diào)用格式為:符號(hào)變量名sm(?符號(hào)字符串注:符號(hào)字符串可以是常量、變量、函數(shù)或者表達(dá)式。2)sms函數(shù),依次可以定義多個(gè)符號(hào)變量,調(diào)用格式為:sms符號(hào)變量1符號(hào)變量2……符號(hào)變量n注意符號(hào)變量名之間不能使用任何標(biāo)點(diǎn)符號(hào),只能用空格隔開。例如:fsm(os(x)),sm(?sin(x)^20);smsx;fsin(x)os(x),2、建立符號(hào)表達(dá)式利用單引號(hào)來生成表達(dá)式利用sm函數(shù)建立符號(hào)表達(dá)式使用已經(jīng)定義過的符號(hào)變量組成符號(hào)表達(dá)式注意:符號(hào)表達(dá)式包括符號(hào)函數(shù)和符號(hào)方程,區(qū)別在于是否帶有等號(hào)。3、符號(hào)表達(dá)式的運(yùn)算(1四則運(yùn)算四則運(yùn)算分別使用smdd,smsub,smmul和smdiv來實(shí)現(xiàn)加減乘除運(yùn)算,使用smpow實(shí)現(xiàn)冪運(yùn)算(注:6.5以后的版本中已經(jīng)沒有了這些函數(shù),而直接使用+-*/即可)(2提取分子和分母如果符號(hào)表達(dá)式是一個(gè)有理分式或可以展開為有理分式可利用nudn函數(shù)來提取符號(hào)表達(dá)式中的分子或者分母,調(diào)用格式為:[n,d]numdens)[n,d]=numdensm(4/5))turnsn=4ndd=5.[n,d]=numdenx/y+/x)turnsn=x^2+^2,d=*x(3因式分解與展開1)fatos(s分解因式2)xpand(s展開3)ollt(s)合并同類項(xiàng)4)ollt(s,v)按變量v進(jìn)行合并同類項(xiàng)(4符號(hào)表達(dá)式的化簡(jiǎn)1)siplify(S)應(yīng)用函數(shù)規(guī)則對(duì)S進(jìn)行化簡(jiǎn)2)siple(S)進(jìn)行綜合化簡(jiǎn)(5)符號(hào)表達(dá)式與數(shù)值表達(dá)式之間的轉(zhuǎn)換1)利用函數(shù)sm可以將數(shù)值表達(dá)式表示成符號(hào)表達(dá)式2)nuic或者val函數(shù)可以將符號(hào)表達(dá)式轉(zhuǎn)換成數(shù)值表達(dá)式3)函數(shù)digits和vpa配合替換函數(shù)subs行轉(zhuǎn)換。diits函數(shù),diits()函數(shù)設(shè)置有效數(shù)字個(gè)數(shù)為D的近似解精度。vpa函數(shù),Rvp(S)符號(hào)表達(dá)式S在diits函數(shù)設(shè)置下的精度的數(shù)值解。vp(S,D)符號(hào)表達(dá)式S在diits()精度下的數(shù)值解。subs函數(shù),subs(S,NE,OD)4、符號(hào)函數(shù)的相關(guān)運(yùn)算(1)復(fù)合函數(shù)運(yùn)算。opose函數(shù)(2)反函數(shù)運(yùn)算。fivse函數(shù)5、符號(hào)代數(shù)方程求解(1線性方程組的求解,函數(shù)linsolve,slve,可以得到方程的精確解(2多變量的非線性方程的符號(hào)解法,使用函數(shù)fsolve,調(diào)用格式:Xfsolv(?un?,0)Xfsolv(?un?,0,options)options為選擇參數(shù)輸入向量Xfsolv(?un?,0,options,?gdun?,rdun為輸入函數(shù)在X處的偏導(dǎo)數(shù)Xfsolv(?un?,0,options,?gdfun?,P1,P2,…P1,P2為問題定性參數(shù)[X,option]fsolv(fun,X0,…)返回使用的優(yōu)化方法的參數(shù)注意:fun必須使用指定示例:定義一個(gè)函數(shù)funtionF=mfun(x,)F=[2*x(1)-x2)-xp*x(1)x(1)+2*x(2)-xp*x(2)];nd求解該函數(shù):c=1;%定義輸入?yún)?shù)x=solve@x)mfunx,c),[5;5])6、多項(xiàng)式的表示方法(1)多項(xiàng)式的表示方法——轉(zhuǎn)化為向量問題對(duì)于多項(xiàng)式

P(x)0x

1naxn11

.n1x

an用行向量表示:

P[0,1,,n1,n]①系數(shù)向量直接輸入法MTAB自動(dòng)將向量元素按降冪順序分配各系數(shù)值函數(shù)poly2sym可以將向量表示的多項(xiàng)式轉(zhuǎn)化為符號(hào)多項(xiàng)式表示。注:由特征多項(xiàng)式生成的多項(xiàng)式首項(xiàng)系數(shù)一定為1;n階矩陣一般產(chǎn)生n次多項(xiàng)式。③由根創(chuàng)建多項(xiàng)式由函數(shù)ply實(shí)現(xiàn)注若要生成實(shí)系數(shù)多項(xiàng)式則根中的復(fù)數(shù)必定對(duì)應(yīng)共軛;生成的多項(xiàng)式向量包含很小的虛部時(shí)可用rl命令將其過濾掉。(2)多項(xiàng)式的運(yùn)算①多項(xiàng)式求值輸入變量值代入多項(xiàng)式計(jì)算時(shí)以數(shù)組為單元的使用函數(shù)polyva(對(duì)應(yīng)元素計(jì)算);以矩陣須為方陣為計(jì)算單求多項(xiàng)式的值用函數(shù)polyval;②多項(xiàng)式求根兩種方法一種是調(diào)用函數(shù)oos另一種是通過建立多項(xiàng)式的伴隨矩陣再求其特征值的方法得到多項(xiàng)式的所有根(使用ompan和ig函數(shù))③多項(xiàng)式的乘除法運(yùn)算。乘法使用函數(shù)onv(向量卷積,除法使用函數(shù)donv④多項(xiàng)式微分。微分函數(shù)polydr⑤多項(xiàng)式擬合兩種方法一種是由矩陣的除法求解超定方程來進(jìn)行另一種是用擬合函數(shù)polyfit,調(diào)用式為polfit(,,n)和[p,s]polfit(,,n)5.1求限Matlb求極限的命令為limit(xp,x,)limit(xp,)limit(xp)limit(xp,x,,let)limit(xp,x,,riht')其中l(wèi)imit(xp,x,)表示求符號(hào)表達(dá)式xpr關(guān)于符號(hào)變量x趨于a時(shí)的極限,limit(xp)求表示缺變量趨近于0時(shí)的極限。例15求下列表達(dá)式的極限解(1)lc,lersmsxf(3*sinx)x^2*cs(1/x)/(1+os(x)*log(1x);slimit(,x,0)ssimplif(s)(2)cc,cearssxas1=tx+2axax,x,n)s2=tx+2axax,x,n)5.2求數(shù)Matlb的求導(dǎo)數(shù)命令為dif(xp)dif(xp,v)dif(xp,sm(v')dif(xp,n)dif(xp,v,n)dif(xp,n,v)其中dif(xp)表示求表達(dá)式xpr關(guān)于默認(rèn)變量的1階導(dǎo)數(shù),dif(xp,v,n)和dif(xp,n,v都表示求表達(dá)式,xpr關(guān)于符號(hào)變量v的n階導(dǎo)數(shù)。解(1)lc,lersmsx=logxsqrt(x^2);sdif(,x,2)ssimples)對(duì)符號(hào)函數(shù)進(jìn)行化簡(jiǎn)(2)[1,0.5,3.5,6];dadif(a)5.3求元函極值計(jì)算的Matlb程序如下smsxx^36*x^28*x-1;ddif();d_zrosolv(d),d_zro_nm=doubl(d_zro)%變成數(shù)值類型zplot()符號(hào)函數(shù)畫圖5.4求分1.求不定積分Matlb求符號(hào)函數(shù)不定積分的命令為int(xp)int(xp,v)解smsxint(1/1sqrt(1x^2));ptt()%寫成符號(hào)表達(dá)式的形式2.求定積分(1)求定積分的符號(hào)解Matlb求符號(hào)函數(shù)的定積分命令為int(xp,,b)int(xp,v,,b)解smsxint(os(x)*os(2*x),pi/2,pi/2)(2)求定積分的數(shù)值解例20求下列積分的數(shù)值解輸入quadl((t)t3*t.^2+2*t.^3.^(1/3),ps,0.5)得到1.4396。注:quad(函數(shù)使用smpson法,即用二次曲線逼近被積函數(shù),qual采用更高階的逼近方法。它們的調(diào)用方法是:qqudfun,,b,tol)或者qudl(un,,b,tol),fun可以是符號(hào)方程,也可以是匿名函數(shù)。ⅱ)輸入dblquad((x,)sqt(1x.^2-.^2).*(x.^2+.^2<x),0,1,0.5,0.5)得到=0.6028。注Matlb中計(jì)算二重積分的函數(shù)形式為qdblqud(un,xinxmax,min,mx,tol),一般只用于積分區(qū)域?yàn)榫匦蔚那闆r為了使該函數(shù)有時(shí)需要將非矩形區(qū)域化成矩形區(qū)域。示例:計(jì)算二重積分

(x2y2)y積分區(qū)域由x1,x及=0圍成。解:首先繪制積分區(qū)域,Matlb程序如下:le,lcfill([0,1,1,0][0,0,1,],'');holdon%繪制積分區(qū)域fill([0.55,0.6,0.6,0.55,0.5],[0,0,0.6,0.55,],r)%繪制單元條text('x);pus;text(x1);pusetext('=0)按照矩形區(qū)域調(diào)用dblquad函數(shù),程序如下:=dblquad((x.^2+.^2).*(x0),0,1,0,1)求得0.3333(3)輸入fun3@x,,z)z.^2*lo(x.^2+.^2z.^21./(x.^2+.^2z.^21.*(z0...zsqrt1x.^2-.^2);%該語句使用了續(xù)行符...=tiplequad(un3,1,1,-1,1,0,1)三重積分計(jì)算函數(shù)得到=0.1273。Matlb符號(hào)求解的程序如下lc,lersmsrztheta1int(r^2z^2)*,z,^2,sqrt(2r^2);%求最內(nèi)層積分2int(1,r,01);%求中間層的積分int(2,thet,0,2*pi)%求最終的積分結(jié)果ptt()分?jǐn)?shù)線中間顯示的格式numdouble()%把符號(hào)解化成數(shù)值解解法二求數(shù)值解的Matlb程序如下lc,lerf@x,,z)x+z).^2.*(zx.^2+.^2&x.^2+.^2z.^22;triplqud(f,sqrt(2),sqrt2,sqrt(2),sqt(2,0,sqrt(2)求得積分的值為2.4486。注qud與int的區(qū)別int可以求具有解析的不定積分和定積分qud只能求解定積分。5.5求微分程組)1、微分方程組的解析解在MATAB中用D表示導(dǎo)數(shù)例如Dy表示D2y表示??D(0)=5表示?(05等,符號(hào)常微分方程求解通過函數(shù)dsolve實(shí)現(xiàn),調(diào)用格式為:dsolv(?,??,?v)包括微分方程初始條件和指定變量三個(gè)部分求解常微分方程e在初始條件c下的特解,v描述方程中的自變量,省略則默認(rèn)以t為自變量,若沒有初始條件,則獲得通解。例1:求u1u2的通解解:Matlb程序?yàn)椋篸solv(Du1u^2,t')d2ydy例2:求微分方程dx2

429y0dx的特解y(0),y(0)15解:Matlb程序?yàn)椋篸solv(D24*D+29*0,'(00,D(0)15,x)dx2x3y3zdtdt例3:求常微分方程組的通解dy4x5ydtdz4x4y2zdt解:Matlb程序?yàn)椋篬x,,z]dsolv(Dx2*x3*3*z,D4*x5*+3*z,'Dz4*x4*2*z)一階齊次線性常微分方程組和非齊次線性方程組可以直接通過矩陣操作求解。n,A對(duì)于一階齊次線性微分方程組:XX,Xn,A

j)n其解的形式為:0Xt)eA(t0)X000對(duì)于非齊次線性方程組:XXft,Xt)00

解的形式為:0Xt)eA(t0)X0

eA(ts)f(s)s2131例4:X02

X,X(0)2003

1解:smst;a[2,1,3;0,2,1;0,0,2];x0[1;;1]xxpm(*t)*x0ptt(x);化簡(jiǎn)結(jié)果1000

0例5:X21

2X0

,X(0)1321解:smsts;

etost)

1[100;212;321];f[0;0;xps)*os(2*s];x0[0;;1];txint(xpm(*ts)*s,s);%先求不定積分,再計(jì)算定積分的結(jié)果,提高速度xstasubs(tx,st)subs(tx,s,0);xxpm(*t)x0xta;xsimples),ptt(x)simple直接顯示化簡(jiǎn)結(jié)果,simplify顯示化簡(jiǎn)過程,ptty修改顯示格式2、微分方程(組)的數(shù)值解當(dāng)難以求得微分方程的解析解時(shí)可以求其數(shù)值解Matlb中求解微分方程數(shù)值解的方法有以下幾個(gè):od45,od23,od113,od23s,od15s。調(diào)形式如下:[,x]=solvrf,s,x0,options)其中t是自量的值x是函數(shù)值olver表示上述5種求解器的一種‘f是由待解方程寫成的m文件名ts=[t0,tf]示自變量的初值和終值,options用于設(shè)定誤差限,通過函數(shù)options=odst(rltol,t,‘a(chǎn)bstol,a分別設(shè)定相對(duì)誤差和絕對(duì)誤差。不同的函數(shù)代表不同的內(nèi)部算法,od45表示4/5階龍格庫(kù)塔費(fèi)爾貝格算法(RK算法),是解非剛性常微分方程的首選方法,od23采用2/3階RK方法,od113采用多步法效率一般比od45高od15sod23s,od23t,d23tb用來解剛性常微分方程。注1在解n個(gè)未知函數(shù)的的方程組時(shí)x0和xn均為n為向量m文件中的待解方程組應(yīng)以x分量形式寫出;注2使用alab求數(shù)值解時(shí)高階微分方程必須等價(jià)的變換成一階微分方程組。d2x

2dx例1:求解vndrPol剛性微分方程dt210001x)dt

x0的數(shù)值解x(0);x(0)0解:令1x,2=1,則微分方程變?yōu)橐浑A微分方程組:1'y2y2'12)y21();y()0寫成m文件如下所示:funtiond=fun1t,)dzros(2,1;d(1)=(2);d(2)1000*1-(1^2)*(2)-(1);取[t0,t][0,3000],入命令:[t,]od15s('un1,[0,3000],[2,]);plot(t,(:,1,-')1'y23例例2:求解微分方程組y2'133'0.511y21(0),y2(0);3(0)1解:建立方程組的m文件:funtiond=fun2t,)dzros(3,1;初始化d(1)=(2)*(3;d(2)=(1)*(3;d(3)0.51*(1*(2);取t0=0,tf12,Matlab命令如下:[t,]od45(fun2,[012][011])plot(t,(:,1,-,t,(:,2),*,t,(:,3,'+)yyxy例3:求解orz方程

x)x(yzzx(yzzy中,,8/3。解:rho10;bet29;lmd8/3;f@t,Y)[rho*(Y2)-Y1);bet*Y1)Y(2Y(1*Y3;lamd*Y3)Y1)*Y2];方程組必須使用列向量表示[t,]od45(,[0,30],[5,3,17])subplot(2,2,1)plot(t,(:,1,*)x曲線subplot(2,2,2)plot(t,(:,2,X')subplot(2,2,3)plot(t,(:,3,O')subplot(2,2,4)plot3((:,1,(:,2),(:,3)%繪制空間軌跡圖3、邊值問題的Matlb數(shù)值解Matlb中使用bvp4c(bvp5)和bvpinit命令求解常微分方程中的兩點(diǎn)邊值問題,其調(diào)用格式為:sol=bvp4(odefun,fun,solinit,options)solinit=bvpinitx,init,prmeters)該函數(shù)用來給sol提供初始猜測(cè)解。56數(shù)求和Matlb級(jí)數(shù)求和的命令為r=sysu(xp,v)r=sysu(xp,v,a,b)其中xpr為級(jí)數(shù)的通項(xiàng)表達(dá)式,v是求和變量,a和b分別為求和變量的起始點(diǎn)和終止點(diǎn),若沒有指明a和b,a的默認(rèn)值為0,b的默認(rèn)值為v1。無窮數(shù)列的累加稱為級(jí)數(shù)當(dāng)取其前面若干有限項(xiàng)時(shí)得到的是部分和數(shù)列a累加形成的新序列可用sumsum()實(shí)現(xiàn)a的長(zhǎng)度為n則s的長(zhǎng)度也為n即每一個(gè)s(k)是數(shù)組a中前k項(xiàng)的和。注意umsum與sum的區(qū)別,sum(得到的是一個(gè)數(shù),即序列s中最后一項(xiàng)。示例:lc,lerk1:10;1./k.^2;sumsum()ss=sum()例22求如下級(jí)數(shù)的和解(1)smsnf1(2*1)/2^n;s1smsum(1,n,1,inf)(2)smsnf21/n^2;s2smsum(2,n,1,inf)補(bǔ)充一點(diǎn)Matlb求數(shù)組元素乘積的函數(shù)prodA)如果A是一個(gè)m行一列(向量),則這種用法即返回這m個(gè)元素的乘積;如果A是一個(gè)m行n列的矩陣,則A的每一列都被看做一個(gè)m行1列的向量,分別計(jì)算每個(gè)向量中元素的乘積,返回給,因此B是一個(gè)1行n列的數(shù)組。57Mlab求解問題Matlb求解各種形式的極值問題被集成在優(yōu)化工具箱中。下面是優(yōu)化工具箱4.0版本的功能示意圖:47變量描述調(diào)用函數(shù)f線性規(guī)劃目標(biāo)函數(shù)f*X或二次規(guī)劃的目標(biāo)函數(shù)X’*H*+*X中線性項(xiàng)的系數(shù)向量linpro,qudprogfun非線性優(yōu)化的目標(biāo)函數(shù).un必須為行命令對(duì)象或M文件嵌入函數(shù)或MEX文件的名稱fminbnd,fminsrh,fminun,fminon,lsquvfit,lsqnonlin,folattain,minimxH二次規(guī)劃目標(biāo)函數(shù)X’*H*f*X中的二次項(xiàng)的系數(shù)矩陣qudprogA,bA矩陣和b向量分別為線性不等式約束:AX≤b中的系數(shù)矩陣和右端向量linpro,qudpro,folattin,fminon,fminimaxAq,bqAq矩陣和bq向量分別為線性等式約束Aq*Xbq中的系數(shù)矩陣和右端向量linpro,qudpro,folattin,fminon,fminimaxlb,vubX的下限和上限向量linpro,qudpro,folattin,fminon,fminimax,lsqcuvfit,lsqnonlinX0迭代初始點(diǎn)坐標(biāo)除fminbnd外所有函數(shù)1,2函數(shù)最小化的區(qū)間fminbndoptions優(yōu)化選項(xiàng)參數(shù)結(jié)構(gòu)所有優(yōu)化函數(shù)變量描述調(diào)用函數(shù)itflag描述退出條件:xitfl0表示目標(biāo)函數(shù)收斂于xxitfl0表示已達(dá)到函數(shù)評(píng)價(jià)或迭代的最大次數(shù)xitfl0表示目標(biāo)函數(shù)不收斂x由優(yōu)化函數(shù)求的x值所有優(yōu)化函數(shù)feal解x處的目標(biāo)函數(shù)值linpro,qudpro,folattinfminon,fminimax,lsqcuvfitlsqnonlin,fminbndoutput包含優(yōu)化結(jié)果信息的輸出結(jié)構(gòu)itrtions,Aloithm,unCount(函數(shù)評(píng)價(jià)次數(shù))所有優(yōu)化函數(shù)進(jìn)行極值計(jì)算時(shí)有兩種方式,通過命令optimool打開優(yōu)化工具箱GUI求解和使用48PAGEPAGE50上述提供的命令函數(shù)進(jìn)行求解。示例一:使用單純形計(jì)算最小值in

f41

溫馨提示

  • 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. 人人文庫(kù)網(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)論