數(shù)學(xué)建模Matlab基礎(chǔ)ppt課件市公開課金獎市賽課一等獎?wù)n件_第1頁
數(shù)學(xué)建模Matlab基礎(chǔ)ppt課件市公開課金獎市賽課一等獎?wù)n件_第2頁
數(shù)學(xué)建模Matlab基礎(chǔ)ppt課件市公開課金獎市賽課一等獎?wù)n件_第3頁
數(shù)學(xué)建模Matlab基礎(chǔ)ppt課件市公開課金獎市賽課一等獎?wù)n件_第4頁
數(shù)學(xué)建模Matlab基礎(chǔ)ppt課件市公開課金獎市賽課一等獎?wù)n件_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)學(xué)建?!狹ATLAB基礎(chǔ)知識第1頁第1頁主要內(nèi)容一.MATLAB簡介二.MATLAB數(shù)值計算功效四.MATLAB程序設(shè)計三.MATLAB符號運算功效五.MATLAB基本圖形處理功效第2頁第2頁一.MATLAB簡介1、MATLAB長處MATLAB被譽為“巨人肩上工具”。由于使用Matlab編程運算與人進行科學(xué)計算思緒和表示方式完全一致,因此不像學(xué)習(xí)其它高級語言--如Basic、Fortran和C等那樣難于掌握,用Matlab編寫程序如同在演算紙上排列出公式與求解問題,因此又被稱為演算紙式科學(xué)算法語言?!Z言簡樸MATLAB含義是矩陣試驗室(MATRIXLABORATORY),主要用于以便矩陣存取,其基本元素是不必定義維數(shù)矩陣。MATLAB自問世以來,就是以數(shù)值計算稱雄。MATLAB進行數(shù)值計算基本單位是復(fù)數(shù)數(shù)組(或稱陣列),這使MATLAB高度“向量化”。由于它不需定義數(shù)組維數(shù),并給出矩陣函數(shù)、特殊矩陣專門庫函數(shù),使之在求解諸如信號處理、建模、系統(tǒng)辨認(rèn)、控制、優(yōu)化等領(lǐng)域問題時,顯得大為簡捷、高效、以便,這是其它高級語言所不能比擬?!幊倘菀祝矢叩?頁第3頁MATLAB中包括了被稱作工具箱(TOOLBOX)各類應(yīng)用問題求解工具。包括信號處理、圖象處理、控制系統(tǒng)辨識、神經(jīng)網(wǎng)絡(luò)等?!π姶驧ATLAB5.3以后版本中包括了圖形界面編輯GUI,改變了以前單一“在指令窗通過文本形指令進行各種操作”情況?!僮饕员?、MATLAB環(huán)境(1)MATLAB桌面平臺MATLAB桌面平臺主要包括下列工具(見Figure1-1)命令窗口命令歷史窗口當(dāng)前目錄窗口演示工具工作間管理窗口啟動菜單通過新建命令還能夠打開M文獻編輯窗口、圖形窗口、建模窗口、GUI窗口和布署項目(DeploymentProject)窗口。第4頁第4頁Figure1-1MATLAB桌面平臺當(dāng)前目錄窗口工作間管理窗口命令窗口命令歷史窗口演示工具啟動菜單第5頁第5頁(2)MATLAB幫助系統(tǒng)有三種方式取得MATLAB幫助:①通過使用幫助瀏覽器(Figure1-2)②命令窗口help系列。使用方式是在命令行輸入help,help+函數(shù)名,Helpwin或者helpdesk。Figure1-2幫助瀏覽器③使用lookfor函數(shù)。若要查找一個不知其確切名稱函數(shù)名時使用。其它慣用查詢輔助命令:exist變量檢查函數(shù),檢查變量是否存在。what目錄中文獻列表who內(nèi)存變量列表whos內(nèi)存變量詳細(xì)信息which擬定文獻位置第6頁第6頁(3)MATLAB通用命令和技巧命令闡明命令闡明cd顯示或更改工作目錄hold圖形保持開關(guān)dir顯示目錄下文獻disp顯示變量或文字內(nèi)容type顯示文獻內(nèi)容path顯示搜索路徑clear清理內(nèi)存變量save保留內(nèi)存變量到指定文獻clf清除圖形窗口load加載指定文獻變量pack搜集內(nèi)存碎片diary日記文獻命令clc清除工作窗quit退出MATLABecho工作窗信息顯示開關(guān)標(biāo)點定義標(biāo)點定義:含有各種應(yīng)用功效.域訪問符等;區(qū)別行及取消運營顯示等…續(xù)行符,區(qū)別列及函數(shù)參數(shù)分隔符%注釋標(biāo)識()指定運算過程先后順序‘字符串標(biāo)示符[]矩陣定義標(biāo)志等!調(diào)用DOS{}構(gòu)成單元數(shù)組等=賦值運算符第7頁第7頁(4)MATLAB搜索路徑與擴展①搜索路徑對話框。菜單中File/SetPath(見圖Figure1-3)②path命令。比如:path(path,’G:\mymatlabexamples’)③genpath命令。④editpath或pathtool命令。見圖Figure1-3⑤addpath命令擴展目錄。比如:addpathe:\myfiles–end(-begin);Figure1-3路徑設(shè)置

第8頁第8頁二.MATLAB數(shù)值計算功效1、變量MATLAB程序中基本數(shù)據(jù)單元稱為陣列(Array),是一個分為行與列數(shù)據(jù)集合。變量被看做是只有一行一列陣列。MATLAB語言不需要對變量進行事先申明,也不需要指定變量類型,它會自動依據(jù)所賦予變量值或?qū)ψ兞克M行操作來擬定變量類型。其命名規(guī)則為:(1)變量名大小寫是敏感。(2)變量第一個字符必須為英文字母,并且不能超出31個字符。(3)變量名能夠包括下劃線、數(shù)字,但不能為空格符、標(biāo)點。(4)命名變量時能夠取一個容易記憶并且能表示出其含義名稱,如匯率,能夠定義為exchange_rate。對于變量作用域,默認(rèn)情況是局部變量,使用global定義全局變量,并且全局變量慣用大寫英文字母表示。MATLAB預(yù)定義變量下列表所表示:第9頁第9頁ans預(yù)設(shè)計算結(jié)果變量名epsMATLAB定義正極小值=2.2204e-16pi內(nèi)建π值inf∞值,無限大

NaN無法定義一個數(shù)目i或

j虛數(shù)單位i=j=√-1nargin函數(shù)輸入?yún)?shù)個數(shù)nargout函數(shù)輸出參數(shù)個數(shù)realmax最大正實數(shù)21023realmin最小正實數(shù)2-1022flops浮點運算次數(shù)在定義變量時要盡也許與避免與這些名字相同,以免改變它們值,假如已經(jīng)改變,能夠通過clear+變量名來恢復(fù)它初始值,也能夠通過重新開啟MATLAB恢復(fù)這些值。2、數(shù)字變量(1)演算紙式科學(xué)計算方式。輸入數(shù)字運算表示式然后回車即可。(2)數(shù)字輸入輸出格式。所有數(shù)據(jù)均按IEEE浮點原則長型格式存儲。輸入格式沿用了C語言風(fēng)格和規(guī)則;輸出格式使用format+數(shù)據(jù)格式命令控制,只影響在屏幕上顯示結(jié)果,不影響內(nèi)部存儲和運算。第10頁第10頁3、字符串使用單引號設(shè)定后輸入或賦值。如:s=‘matrixlaboratory’,字符串每個字符(包括空格)都是字符數(shù)組一個元素,能夠使用size(變量名)查看字符數(shù)組維數(shù)。在MATLAB中,字符串與字符數(shù)組(矩陣)基本上是等價,都是以陣列形式存儲。函數(shù)char用來生成字符數(shù)組(矩陣)如:s=char(‘M’,’A’,’T’,’L’,’A’,’B’);函數(shù)double能夠?qū)⒆址D(zhuǎn)化為數(shù)值代碼(ASCII碼),函數(shù)cellstr將字符數(shù)組轉(zhuǎn)化為字符串。數(shù)值數(shù)組和字符串之間轉(zhuǎn)換函數(shù)下列表所表示:函數(shù)名功效函數(shù)名功效num2str數(shù)字轉(zhuǎn)化為字符串str2num轉(zhuǎn)換字符串為數(shù)字int2str整數(shù)轉(zhuǎn)化為字符串sprintf將格式數(shù)據(jù)寫為字符串mat2str矩陣轉(zhuǎn)化為字符串sscanf在格式控制下讀字符串第11頁第11頁字符串操作函數(shù)下列表所表示:函數(shù)名功效函數(shù)名功效strcat鏈接串strrep以其它串代替此串strvcat垂直鏈接串strtok尋找串中記號strcmp比較串upper大寫轉(zhuǎn)化strncmp比較前n個字符lower小寫轉(zhuǎn)化findstr在其它串中找此串blanks生成空串strjust證實字符數(shù)組deblank移去串內(nèi)空格strmatch查找也許匹配字符串ischar字符串檢查iscellstr字符串單元陣檢查isletter字母檢查isspace空格檢查hex2num十六進制轉(zhuǎn)雙精度數(shù)值hex2dec十六進制轉(zhuǎn)十進制dec2hex十進制轉(zhuǎn)十六進制bin2dec二進制轉(zhuǎn)十進制dec2bin十進制轉(zhuǎn)二進制base2dec轉(zhuǎn)換B底字符串為十進制dec2base十進制整數(shù)轉(zhuǎn)為B底串stringsstrings函數(shù)幫助用eval函數(shù)實現(xiàn)字符串執(zhí)行功效。如:eval(['M'num2str(1)'=magic(5)'])第12頁第12頁4、單元型變量(cellarrays)(1)單元型變量定義。兩種辦法:賦值語句和cell函數(shù)。比如:A={[13-7;208;051],’Thisisatextstring’,1:4}。賦值時還能夠采用直接對單元型變量中元素直接賦值辦法,實現(xiàn)方式是用cell函數(shù)預(yù)先分派存儲空間,A=cell(1,3),建立一個一行三列單元型變量。單元型變量是一個以任意形式數(shù)組為元素多維數(shù)組。單元型變量引用能夠使用大括號作為下標(biāo)標(biāo)示(顯示所有內(nèi)容)和小括號作為下標(biāo)標(biāo)示(顯示壓縮形式)。(2)相關(guān)函數(shù)函數(shù)功效函數(shù)功效cell生成單元型變量deal輸入輸出處理cellfun對單元型變量中元素作用函數(shù)cell2struct單元型變量轉(zhuǎn)為結(jié)構(gòu)型變量celldisp顯示單元型變量內(nèi)容struct2cell結(jié)構(gòu)型變量轉(zhuǎn)為單元型變量cellplot圖形顯示單元型變量內(nèi)容iscell是否為單元型變量num2cell將數(shù)值數(shù)組轉(zhuǎn)為單元型變量reshape改變單元數(shù)組結(jié)構(gòu)第13頁第13頁5、結(jié)構(gòu)型變量(1)結(jié)構(gòu)型變量類似C語言中結(jié)構(gòu)體,它和單元型變量區(qū)別在于結(jié)構(gòu)型變量是以指針方式來傳遞數(shù)據(jù),并且每一個元素都有一個獨立名字。兩種定義方式,直接賦值定義和由函數(shù)struct定義。結(jié)構(gòu)型變量名=struct(元素名1,元素值1,元素名2,元素值2,…)比如:=‘John’;student.addr=‘123MainStreet’;student.city=‘ZB’;%建立一個名為student結(jié)構(gòu)型變量(2)相關(guān)函數(shù)函數(shù)功效函數(shù)功效struct生成結(jié)構(gòu)型變量rmfield刪除屬性fieldnames得到屬性名isfield判斷是否為結(jié)構(gòu)型變量屬性getfield得到屬性值isstruct判斷是否為結(jié)構(gòu)型變量setfield設(shè)定屬性值第14頁第14頁6、向量及其運算(1)向量生成①命令窗口直接輸入,使用[],元素之間用空格、逗號或者分號隔開。②使用冒號表示式,基本形式為x=x0:step:xn,其中xn為尾元素數(shù)值限,而不一定是尾元素值。當(dāng)step=1時可省略步長。③生成線性等分向量,使用linspace函數(shù)。Y=linspace(x1,x2,n)③生成對數(shù)等分向量,使用logspace函數(shù)。Y=logspace(x1,x2,n)(2)基本運算數(shù)加(減)、數(shù)乘、點積(dot函數(shù))、叉積(cross函數(shù))、混合積dot(a,cross(b,c))第15頁第15頁7、矩陣及其運算(1)矩陣生成①命令窗口直接輸入,使用[],元素之間用空格、逗號或者分號(行與行之間分隔符)隔開。②創(chuàng)建M文獻輸入大矩陣。(2)基本運算①矩陣四則運算。其中乘法運算要注意相乘雙方有相鄰公共維,除法分為左除“\”和右除”/”(需要計算逆矩陣)②矩陣逆運算。Inv函數(shù)。③矩陣冪運算。^。④矩陣指數(shù)運算。expm、expm1、expm2、expm3⑤矩陣對數(shù)運算。logm⑥矩陣特性值函數(shù)。eig和eigs⑦矩陣奇異值函數(shù)。svd和svds⑧矩陣條件數(shù)函數(shù)。cond,condest,rcond第16頁第16頁⑨特性值條件數(shù)函數(shù)。codeig⑩范數(shù)函數(shù)。norm,normest其它尚有秩函數(shù)rank,跡函數(shù)trace,零空間函數(shù)null,正交空間函數(shù)orth,偽逆函數(shù)pinv等(3)矩陣分解函數(shù)①特性值分解,[v,d]=eig(X),[v,d]=eig(X,’nobalance’),[v,d]=eig(A,B),②復(fù)數(shù)特性值對角陣與實數(shù)塊特性值對角陣轉(zhuǎn)化[V,D]=cdf2rdf(V,D),[U,T]=rsf2csf(U,T)③奇異值分解,[U,S,V]=svd(X)④LU分解,lu函數(shù)⑤Chol分解,chol函數(shù)⑥QR分解,qr函數(shù)第17頁第17頁(4)特殊矩陣①空陣[],能夠用clear從內(nèi)存中清除②全0陣zeros,單位陣eye,全1陣ones,隨機陣rand/randn③其它特殊矩陣見下表函數(shù)功效函數(shù)功效compan伴隨陣magic魔方陣galleryHigham測試陣rosser典型對稱特性值測試陣hadamardHardamard矩陣toeplitzToeplitz矩陣hankelHankel矩陣pascalPascal矩陣hilbHilbert矩陣vander范德蒙矩陣invhilb反Hilbert矩陣wilkinsonWilkinson’s特性值測試矩陣(5)矩陣一些特殊操作①變維。有兩種辦法,使用冒號(:)和使用函數(shù)reshape第18頁第18頁使用“:”表示式對兩個矩陣進行變維操作,需要預(yù)先定義兩個矩陣維數(shù);reshape有兩種形式,分別為reshape(X,M,N)和reshape(X,M,N,P…)②變向主要函數(shù)下列表所表示:函數(shù)功效函數(shù)功效fiplr矩陣左右翻轉(zhuǎn)diag產(chǎn)生或提取對角陣fipud矩陣上下翻轉(zhuǎn)tril產(chǎn)生下三角fipdim矩陣特定維翻轉(zhuǎn)triu產(chǎn)生上三角Rot90矩陣反時針90翻轉(zhuǎn)③矩陣抽取對角線元素抽取函數(shù)diag(X,k)/diag(v,k),抽取矩陣X第k條對角線元素向量/使得向量v為所得矩陣第k條對角線元素。上三角元素抽取tril(X,k)和下三角元素抽取triu(X,k)④擴展兩種辦法:利用對矩陣標(biāo)示塊賦值命令X(m1:m2,n1:n2)=a生成大矩陣,其中m2-m1+1必須等于a行維數(shù),n2-n1+1必須等于a列維數(shù),生成m2×n2維矩陣X;利用小矩陣組合生成大矩陣,要嚴(yán)格注意矩陣大小匹配。第19頁第19頁7、數(shù)組及其運算(1)基本數(shù)組運算同型矩陣之間運算通常稱為數(shù)組運算。(矩陣數(shù)組運算)①四則運算。數(shù)組乘除法是指兩個同維數(shù)組間相應(yīng)元素之間乘除法,運算符為”.*”,”./”和”.\”。數(shù)組與常數(shù)之間運算能夠加”.”,也能夠不加。②冪運算。.^,對每個數(shù)組元素冪運算。③指數(shù)運算exp,對數(shù)運算log和開方運算sqrt。(2)數(shù)組函數(shù)運算只要把運算數(shù)組帶入到函數(shù)中就能夠了,通用形式為funname(A)(3)邏輯運算①基本邏輯運算。參見下一頁表格②邏輯關(guān)系函數(shù)運算。參見下一頁表格第20頁第20頁指令含義函數(shù)名<小于lt<=小于等于le>不小于gt>=不小于等于ge==等于eq~=不等于ne&邏輯

與and|邏輯

或or~邏輯

非not指令含義指令含義xor不相同就取1,不然取0isequal相等取1,不然取0any只要有非0就取1,不然取0ismember兩個矩陣是屬于關(guān)系取1,不然取0all全為1取1,不然為0isempty矩陣為空取1,不然取0isnan為數(shù)NaN取1,不然為0isletter是字母取1,不然取0(能夠是字符串)isinf為數(shù)inf取1,不然為0isstudent學(xué)生版取1isfinite有限大小元素取1,不然為0isprime質(zhì)數(shù)取1,不然取0ischar是字符串取1,不然為0isreal實數(shù)取1,不然取0find尋找非零元素坐標(biāo)isspace空格位置取1,不然取0isnumeric判斷數(shù)值矩陣islogical判斷邏輯數(shù)組第21頁第21頁8、多項式運算(1)多項式表示辦法——轉(zhuǎn)化為向量問題對于多項式用下面行向量表示:①系數(shù)向量直接輸入法,MATLAB自動將向量元素按降冪順序分派給各系數(shù)值。函數(shù)poly2sym能夠?qū)⑾蛄勘硎径囗検睫D(zhuǎn)化為符號多項式表示。②特性多項式輸入法,從矩陣求其特性多項式取得,由函數(shù)poly實現(xiàn)。注:由特性多項式生成多項式首項系數(shù)一定為1;n階矩陣普通產(chǎn)生n次多項式。③由根創(chuàng)建多項式,由函數(shù)poly實現(xiàn)。注:若要生成實系數(shù)多項式,則根中復(fù)數(shù)必定相應(yīng)共軛;生成多項式向量包括很小虛部時可用real命令將其過濾掉。(2)多項式運算①多項式求值。輸入變量值代入多項式計算時以數(shù)組為單元使用函數(shù)polyval;以矩陣(必須為方陣)為計算單元求多項式值用函數(shù)polyvalm;第22頁第22頁②多項式求根。兩種辦法,一個是調(diào)用函數(shù)roots,另一個是通過建立多項式伴隨矩陣再求其特性值辦法得到多項式所有根。(使用compan和eig函數(shù))③多項式乘除法運算。乘法使用函數(shù)conv(向量卷積),除法使用函數(shù)deconv④多項式微分。微分函數(shù)polyder⑤多項式擬合。兩種辦法,一個是由矩陣除法求解超定方程來進行,另一個是用擬合函數(shù)polyfit,調(diào)用方式為polyfit(X,Y,n)和[p,s]=polyfit(X,Y,n)第23頁第23頁三.MATLAB符號運算功效早期MATLAB不具備符號運算功效,在1993年Mathworks公司從加拿大滑鐵盧大學(xué)購買了Maple使用權(quán),并在此基礎(chǔ)上,利用Maple函數(shù)庫,開發(fā)了符號計算工具箱(SymbolicToolbox),從此MATLAB便具備了數(shù)值計算、符號計算和圖形處理三大基本功效于一身,稱為在數(shù)學(xué)計算領(lǐng)域功效最強語言。MATLAB實現(xiàn)符號計算功效主要有三種路徑:①調(diào)用MATLAB開發(fā)各種功效函數(shù)進行慣用符號運算,如符號表示式和符號矩陣基本操作,符號矩陣運算,符號微積分,符號線性方程求解,符號微分方程求解,特殊數(shù)學(xué)符號函數(shù)以及符號函數(shù)圖形等。②通過使用函數(shù)maple.m和mpa.m與Maple接口,給一些特殊專業(yè)人員提供以便。③符號函數(shù)計算器(FunctionCalculator)功效。第24頁第24頁1、符號表示式生成符號表示式包括符號函數(shù)和符號方程,區(qū)別在于是否帶有等號。只要在表示式兩端添加分號(’’)就能夠創(chuàng)建一個符號函數(shù)或者符號方程,比如:f=‘log(x)’,g=‘a(chǎn)*x^2+b*x+c=0’,也能夠用函數(shù)sym或syms創(chuàng)建,如f=sym(‘cos(x)’),f=sym(‘sin(x)^2=0’);symsx;f=sin(x)+cos(x),注意syms不用創(chuàng)建符號方程。2、符號與數(shù)值轉(zhuǎn)換慣用辦法是函數(shù)digits和vpa配合替換函數(shù)subs進行轉(zhuǎn)換。digits函數(shù),digits(D)函數(shù)設(shè)置有效數(shù)字個數(shù)為D近似解精度。vpa函數(shù),R=vpa(S)符號表示式S在digits函數(shù)設(shè)置下精度數(shù)值解。vpa(S,D)符號表示式S在digits(D)精度下數(shù)值解。subs函數(shù),subs(S,OLD,NEW)numeric函數(shù),n=numeric(S)將不含自由變量符號表示式轉(zhuǎn)換為數(shù)值形式,效果等同于n=double(sym(S))第25頁第25頁3、符號函數(shù)運算(1)復(fù)合函數(shù)運算。compose函數(shù),其調(diào)用形式下列:compose(f,g)返回f(g(y))compose(f,g,z)返回以z為自變量復(fù)合函數(shù)compose(f,g,x,z)返回f(g(z)),且使得x為f獨立變量compose(f,g,x,y,z)返回f(g(z)),且使得x為f獨立變量,y為g獨立變量,比如若f=cos(x/t),y=sin(y/u),compose(f,g,x,y,z)返回cos(sin(z/u)/t);compose(f,g,x,u,z)返回cos(sin(y/z)/t)。(2)反函數(shù)運算。finverse函數(shù),調(diào)用形式為:g=finverse(f)g=finverse(f,v)返回符號函數(shù)表示式自變量為符號v,當(dāng)f包括不止一個變量時最好使用此型。第26頁第26頁4、符號矩陣創(chuàng)建(1)使用sym函數(shù)直接創(chuàng)建符號矩陣。同直接創(chuàng)建數(shù)值矩陣相同(2)用創(chuàng)建子陣辦法創(chuàng)建符號矩陣。要確保同一列各元素字符串含有相同長度(3)將數(shù)值矩陣轉(zhuǎn)化為符號矩陣。sym(4)符號矩陣索引和修改。同數(shù)值矩陣相同5、符號矩陣運算(1)基本運算。包括加(+)、減(-)、乘(*)、除(/,\)、轉(zhuǎn)置(‘)(2)行列式運算。det(A)(3)符號矩陣逆。inv(A)(4)符號矩陣秩。rank(A)(5)符號矩陣冪運算。^(6)符號矩陣指數(shù)運算.數(shù)組指數(shù)用exp,矩陣指數(shù)用expm(7)符號矩陣分解。包括特性值分解函數(shù)eig,奇異值分解函數(shù)svd,約當(dāng)原則型函數(shù)jordan,三角抽取函數(shù)diag,tril,triu。(8)矩陣空間運算。包括列空間運算colspace,所得結(jié)果列維數(shù)即為秩,零空間運算函數(shù)null(A)-正交基,null(A,’r’)-有理基。第27頁第27頁(9)符號矩陣簡化。因式分解factor(S),大整數(shù)分解factor(sym(‘N’));展開expand(S);同類式合并collect(S)合并同類項,collect(S,v)合并v同冪項;符號簡化simple(S),simplify(S)-簡化符號矩陣每一個元素。分式通分horner-秦九韶型多項式表示式函數(shù)(一個嵌套形式,能夠減少乘法計算次數(shù))6、符號微積分(1)符號極限。limit函數(shù),調(diào)用形式有:limit(F,x,a)F在x→a條件下極限值limit(F,a)計算由findsym(a)返回獨立變量趨向于a極限值limit(F)計算a=0時極限limit(F,x,a,’left’)或limit(F,x,a,’right’)分別求左右極限(2)符號積分。int函數(shù),調(diào)用形式為:int(S)int(S,v)對自變量v不定積分int(S,a,b)計算從a到b定積分,a,b為雙精度或符號數(shù)量int(S,v,a,b)計算對變量v從a到b定積分第28頁第28頁(3)符號累計函數(shù)symsum,調(diào)用形式:symsum(S)計算符號表示式對由findsym函數(shù)返回符號變量不定和。symsum(S,v)symsum(S,a,b)和symsum(S,v,a,b)(4)符號微分和差分微分和差分函數(shù)diff,調(diào)用形式:diff(S),diff(S,’v’)或diff(S,sym(‘v’)),diff(S,n)梯度函數(shù)gradient,調(diào)用形式:[FX,FY]=gradient(F),[FX,FY]=gradient(F,H),H作為各方向點間隔,[FX,FY]=gradient(F,HX,HY),[FX,FY,FZ]=gradient(F),[FX,FY,FZ]=gradient(F,HX,HY,HZ)。多元函數(shù)導(dǎo)數(shù)。jacobian(f,v),計算數(shù)量或向量f對向量vJacobi矩陣,當(dāng)f為數(shù)量時函數(shù)返回f梯度。第29頁第29頁7、符號代數(shù)方程求解(1)線性方程組求解,函數(shù)linsolve,solve,能夠得到方程準(zhǔn)確解(2)非線性方程符號解法,使用函數(shù)fsolve,調(diào)用格式有:X=fsolve(‘fun’,X0)X=fsolve(‘fun’,X0,options)options為選擇參數(shù)輸入向量X=fsolve(‘fun’,X0,options,’gradfun’),gradfun為輸入函數(shù)在X處偏導(dǎo)數(shù)X=fsolve(‘fun’,X0,options,’gradfun’,P1,P2,…)P1,P2為問題定性參數(shù)[X,options]=fsolve(‘fun’,X0,…)返回使用優(yōu)化辦法參數(shù)注:復(fù)雜符號函數(shù)能夠在M文獻中創(chuàng)建8、符號微分方程求解帶微分方程符號解,使用函數(shù)dsolve第30頁第30頁9、符號函數(shù)二維圖(1)符號函數(shù)簡易繪圖函數(shù)ezplot(f),ezplot(f,xmin,xmax),ezplot(f,[xmin,xmax],fig)(2)繪制函數(shù)圖函數(shù)fplot,調(diào)用格式有:fplot(fun,lims)繪制由字符串fun指定函數(shù)名函數(shù)在x軸區(qū)間lims=[xminxmax]函數(shù)圖,fun必須為一個m文獻函數(shù)名或?qū)ψ兞縳可執(zhí)行字符串。fplot(fun,lims,tol)tol<1用來指定相對誤差精度,默認(rèn)值為0.002fplot(fun,lims,n)n>=1指定以至少n+1個點來繪制圖形,默認(rèn)n=1。fplot(fun,lims,’LineSpec’)以指定線型繪制圖形[x,y]=fplot(fun,lims,…)只返回用來繪圖點向量值,不繪出圖形。第31頁第31頁10、圖示化函數(shù)計算器(funtool)第32頁第32頁四.MATLAB程序設(shè)計用MATLAB語言編寫程序,稱為M文獻。M文獻有兩類:命令式文獻和函數(shù)式文獻。命令式文獻:命令行簡樸疊加,沒有輸入?yún)?shù),也不返回輸出參數(shù)。它調(diào)用MATLAB工作域內(nèi)所有數(shù)據(jù),并且產(chǎn)生所有變量都是全局變量,需要用clear或quit清除。函數(shù)式文獻:處理參數(shù)傳遞和函數(shù)調(diào)用問題,有輸入?yún)?shù),可返回輸出參數(shù)。第一句必須以function語句為引導(dǎo)。其中變量除了特殊申明外均為局部變量。編寫函數(shù)式文獻注意事項:(1)文獻名和函數(shù)名保持一致。(2)function后語句定義函數(shù)和輸入輸出參數(shù)在函數(shù)被調(diào)用過程中將按此輸入輸出格式執(zhí)行。(3)要養(yǎng)成良好注釋習(xí)慣。(4)善于將比較大任務(wù)分解成容易處理子任務(wù)。函數(shù)式文獻形式下列:第33頁第33頁function[outarg1,outarg2,…]=fname(inarg1,inarg2,…)%H1commentline%Othercommentlines…executablecode..(return)1、控制語句(1)循環(huán)語句①for循環(huán)。特點是其循環(huán)判斷條件是對循環(huán)次數(shù)判斷,即要預(yù)先設(shè)定好循環(huán)次數(shù)。forv=expressionstatementsendexpression表示為m:n或者m:i:n第34頁第34頁注:for循環(huán)一定要有end作為結(jié)束標(biāo)志。循環(huán)語句中能夠使用分號;預(yù)防出現(xiàn)中間結(jié)果。循環(huán)語句書寫要有層次,增加可讀性。假如m或n有小于1值,結(jié)構(gòu)上合法不過不運行,對于缺乏元素系統(tǒng)會自動添加。循環(huán)語句比較耗時,能不用循環(huán)地方要盡也許避免使用。比如:向量t=[-10135]’,由此生成一個范德蒙矩陣n=max(size(t));forjj=1:nforii=1:na(ii,jj)=t(ii)^(n-jj);endendn=max(size(t));a(:,n)=ones(n,1);forjj=n-1:-1:na(:,jj)=t.*a(:,jj+1);end第35頁第35頁②while循環(huán)。判斷控制能夠是一個邏輯判斷語句,合用性愈加廣泛。格式為:

while(expression)statements;

end假如expression為非零值(真),statements重復(fù)執(zhí)行直到expression為假。(2)選擇語句①if-[elseif]-…-else-end其執(zhí)行環(huán)節(jié)下列:判斷表示式緊跟在關(guān)鍵字if后面,首先被計算。若計算結(jié)果為0,判斷值為假,若為1,則判斷值為真若判斷值為真,則執(zhí)行其后語句,不然跳過。if語句有下面三種格式:第36頁第36頁格式一:if條件語句組

end格式二:if條件語句組1else

語句組2end格式三:if條件1

語句組1elseif條件2

語句組2……elseif條件m

語句組melse

語句組m+1end②switch-case-otherwise語句格式為switch表示式

case值1

語句組1case值2

語句組2……case值m

語句組motherwise

語句組m+1end第37頁第37頁2、人機交互語句(1)echo命令。echo命令可使文獻命令在執(zhí)行時可見,慣用于命令式文獻,有助于程序調(diào)試和演示。格式有:echoon/off,echofileon/off,echofile,echoon/offall(2)用戶輸入提醒命令inputinput命令用于向計算機輸入一個參數(shù),并等待鍵盤輸入。調(diào)用格式:A=input(提醒信息,選項);注:‘s’選項,則允許用戶輸入一個字符串。a=input('a=?');b=input('b=?');c=input('c=?');d=b*b-4*a*c;x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]比如:求一元二次方程a2+bx+c=0根第38頁第38頁(3)請求鍵盤輸入命令keyboard當(dāng)程序碰到此命令時,MATLAB就將暫時停止運營程序并處于等待鍵盤輸入狀態(tài),處理完畢后鍵入“R”程序?qū)⒗^續(xù)執(zhí)行。在M文獻中使用此命令有助于調(diào)試及程序運營中修改變量。(4)等待用戶反應(yīng)命令pause(延遲秒數(shù))暫停程序執(zhí)行,等待用戶按任意鍵后繼續(xù),在程序調(diào)試或看中間結(jié)果時很有用。(5)中斷命令breakbreak語句慣用于循環(huán)語句或條件語句中。(6)命令窗口輸出函數(shù)disp調(diào)用格式:disp(輸出項)注:輸出項為字符串或矩陣。比如:

A='Hello,MATLAB';disp(A)輸出為:Hello,MATLABstr=[‘Thevalueofpi=’num2str(pi)];disp(str);第39頁第39頁(7)格式化輸出函數(shù)fprintf使用辦法同C語言中printf語句,其調(diào)用格式為:fprintf(format,data);比如:fprintf(‘Thevalueofpiis%f\n’,pi);3、函數(shù)變量及變量作用域1)MATLAB語言中變量主要有輸入變量,輸出變量和函數(shù)內(nèi)部變量。輸入變量相稱于函數(shù)入口數(shù)據(jù),是一個函數(shù)操作主要對象,MATLAB提供nargin函數(shù)來控制輸入變量個數(shù)。調(diào)用格式一:Functionc=test(a,b)if(nargin==1)c=det(a);elseif(nargin==2)c=a+b;end調(diào)用格式二:nargin(‘function’)返回函數(shù)輸入變量個數(shù)。第40頁第40頁2)實現(xiàn)不定數(shù)目輸入變量函數(shù)varargin,對函數(shù)一切輸入變量將存儲在以varargin命名單元型變量中。調(diào)用格式:function[out1,out2,...]=fname(varargin)3)函數(shù)inputname,只能在用戶定義M文獻中使用。調(diào)用格式:inputname(inputvarno)inputvarno為輸入變量列表中位數(shù),調(diào)用該函數(shù)后將返回輸入變量列表中指定位數(shù)變量在工作空間中變量名.與輸入變量相應(yīng)尚有輸出變量控制函數(shù)nargout,vargout,使用辦法與輸入變量控制函數(shù)類似。4、子函數(shù)和局部函數(shù)在函數(shù)定義中開頭位置定義函數(shù)為主函數(shù),而在函數(shù)體內(nèi)定義其它函數(shù)為子函數(shù),子函數(shù)只能為主函數(shù)或同一主函數(shù)下其它子函數(shù)所調(diào)用。MATLAB語言把放置在目錄private下函數(shù)稱為局部函數(shù),這些函數(shù)只能由其父目錄中函數(shù)調(diào)用。第41頁第41頁5、程序設(shè)計中輔助函數(shù)1)執(zhí)行函數(shù)函數(shù)名闡明函數(shù)名闡明eval字符串調(diào)用builtin外部價在調(diào)用內(nèi)置函數(shù)evalc執(zhí)行Matlab表示式assignin工作空間中分派變量feval字符串調(diào)用M文獻run運營腳本文獻evalin計算工作空間中表示式feval用于調(diào)用M文獻,該函數(shù)辨認(rèn)不出多組輸入變量,只能為單組輸入變量操作,普通用在以其它函數(shù)名為輸入變量進行操作函數(shù)內(nèi),以實現(xiàn)在程序設(shè)計中對未知函數(shù)操作。調(diào)用格式為:[y1,y2,...yn]=feval(function,x1,x2,...,xn)function能夠是內(nèi)置函數(shù)也能夠是用戶自定義函數(shù)。builtin也用來執(zhí)行函數(shù),但是它執(zhí)行內(nèi)置函數(shù)。evalin能夠?qū)χ付üぷ骺臻g中變量進行操作,調(diào)用格式為:evalin(workspacename,’expression’)assignin用來在指定工作空間中分派變量。第42頁第42頁2)容錯函數(shù)error(‘錯誤信息’)中斷程序運營,顯示錯誤信息。warning(‘錯誤信息’)不中斷程序執(zhí)行,只給出警告信息。try語句段1catch語句段2end錯誤捕獲lasterr,lastwarn,errortrapon/off等函數(shù)3)時間函數(shù)函數(shù)名闡明函數(shù)名闡明now數(shù)值型顯示當(dāng)前時間日期datevec轉(zhuǎn)化為向量形式顯示日期date字符型顯示當(dāng)前日期calendar當(dāng)月日歷表clock向量形式顯示時間和日期weekday當(dāng)前日期相應(yīng)星期表示datenum轉(zhuǎn)化為數(shù)值型格式顯示日期eomday給出指定年月當(dāng)月最后一天datestr轉(zhuǎn)化為字符型格式顯示日期datetick指定坐標(biāo)軸日期表示式cputime以CPU時間方式計時tictoc計時開關(guān)函數(shù)etime計算兩個時刻時間表t=cputime;{需要計時程序段};t=cputime-t;tic;{需要計時程序段};toc;t0=clock;{需要計時程序段};etime(clock,t0)第43頁第43頁6、程序設(shè)計優(yōu)化(1)以矩陣作為操作主體循環(huán)運算是MATLAB語言最大弱點,程序設(shè)計中要盡也許避免使用循環(huán),絕大多數(shù)循環(huán)運算能夠轉(zhuǎn)換為向量運算。(2)數(shù)據(jù)預(yù)定義即使MATLAB語言沒有要求變量使用時必須預(yù)先定義,但是對于未定義變量,假如操作過程中出現(xiàn)越界賦值時,系統(tǒng)將不得不對變量進行擴充,這大大減少了程序運營效率。比如:functionc=test1forii=1:50c(ii)=det(pascal(ii));endfunctionc=test2c=zeros(50,1);forii=1:50c(ii)=det(pascal(ii));endt=0.124126st=0.006310s第44頁第44頁(2)內(nèi)存管理函數(shù)名闡明函數(shù)名闡明clear從內(nèi)存中清除變量及函數(shù)pack重新分派內(nèi)存quit退出MATLABsave把指定變量存到磁盤load從磁盤調(diào)出指定變量pack函數(shù)在一定程度上能夠處理outofmemory錯誤,該函數(shù)將把內(nèi)存中所有使用變量暫存入磁盤,然后再用內(nèi)存中連續(xù)空間存儲這些變量。7、程序調(diào)試(1)M文獻錯誤種類。分語法錯誤和執(zhí)行錯誤兩種。語法錯誤發(fā)生在M文獻程序代碼解釋過程中,普通是由函數(shù)參數(shù)輸入類型有誤或者矩陣運算階數(shù)不符等引起。執(zhí)行錯誤發(fā)生是由于在程序運營過程中,出現(xiàn)溢出或死循環(huán)等引起,由程序本身引起,較難發(fā)覺處理。第45頁第45頁(2)錯誤辨認(rèn)將程序每一步執(zhí)行結(jié)果輸出到命令窗口,檢查運營中間結(jié)果,實現(xiàn)辦法能夠去掉分號,也能夠添加斷點。使用keyboard函數(shù)中斷程序。一些情況下能夠注釋掉函數(shù)頭,變?yōu)槟_本文獻執(zhí)行。使用MATLAB調(diào)試功效。(3)調(diào)試過程dbstop用來在M文獻中設(shè)置斷點,dbstopin<M文獻名>at<行號>dbstatus顯示斷點信息dbtype顯示M文獻文本dbstep從斷點處繼續(xù)執(zhí)行M文獻dbstack顯示M文獻執(zhí)行時調(diào)用堆棧dbup/dbdown實現(xiàn)工作空間切換dbquit退出函數(shù)調(diào)試狀態(tài)第46頁第46頁8、M文獻調(diào)用統(tǒng)計(1)profile函數(shù),調(diào)用格式:通過統(tǒng)計M文獻調(diào)用過程能夠分析執(zhí)行過程中各函數(shù)耗時情況,由此能夠理解文獻執(zhí)行過程中瓶頸問題。profile<優(yōu)化參數(shù)>s=profile(‘status’)顯示當(dāng)前調(diào)用狀態(tài)stats=profile(‘info’)中斷調(diào)用并返回統(tǒng)計結(jié)果(2)調(diào)用統(tǒng)計結(jié)果顯示profilereporttest_eig將統(tǒng)計輸出到test_eig.html文獻中。profileplot將調(diào)用統(tǒng)計結(jié)果顯示為條狀圖9、函數(shù)句柄函數(shù)句柄用來保留函數(shù)相關(guān)信息,尤其是關(guān)于函數(shù)執(zhí)行信息,有下列長處:能夠以便實現(xiàn)函數(shù)間互相調(diào)用。能夠取得函數(shù)加載所有方式。第47頁第47頁拓寬子函數(shù)以及局部函數(shù)使用范圍。能夠提升函數(shù)調(diào)用過程中可靠性。能夠減少程序設(shè)計冗余。能夠提升重復(fù)執(zhí)行效率。函數(shù)句柄能夠與數(shù)組、結(jié)構(gòu)型數(shù)組以及單元型數(shù)組結(jié)合定義數(shù)據(jù)。(1)函數(shù)句柄創(chuàng)建和顯示通過@引導(dǎo)函數(shù)名即可創(chuàng)建相應(yīng)函數(shù)句柄。如:fun_handle=@load函數(shù)句柄內(nèi)容能夠通過函數(shù)functions(函數(shù)句柄)來顯示。函數(shù)句柄實際是一個結(jié)構(gòu)型數(shù)組。(2)函數(shù)句柄調(diào)用和操作通過feval能夠進行函數(shù)句柄調(diào)用,格式為:feval(<函數(shù)句柄>,參數(shù)列表)執(zhí)行以參數(shù)列表為輸入變量函數(shù)句柄所相應(yīng)函數(shù)。函數(shù)句柄與函數(shù)名字符串之間能夠進行轉(zhuǎn)換,函數(shù)為func2str和str2func函數(shù)isa能夠判斷變量是否為函數(shù)句柄。函數(shù)isequal能夠判斷兩函數(shù)句柄是否相同。第48頁第48頁五.MATLAB基本圖形處理功效1、二維圖形繪制二維圖形最慣用函數(shù)是plot,調(diào)用格式有下列三種:(1)plot(Y)假如Y為實向量,則以Y索引坐標(biāo)作為橫坐標(biāo),以Y本身元素作為縱坐標(biāo)。假如Y為復(fù)數(shù)向量,則以該向量實部為橫坐標(biāo),虛部為縱坐標(biāo)。y=rand(100,1);plot(y)x=rand(100,1);z=x+y.*i;plot(z)第49頁第49頁(2)plot(X,Y)此時以X為橫坐標(biāo),Y為縱坐標(biāo)。X和Y要求維數(shù)必須相同。當(dāng)變量X和Y是同階矩陣時,將按照矩陣行或列進行操作。(3)plot(X,Y,s)第三個變量用于設(shè)置圖形顯示屬性。設(shè)置圖形線型、顏色、標(biāo)識等。x=0:0.01*pi:2*pi;y=[sin(x’),cos(x’)];plot([x’,x’],y);x=0:0.01*pi:pi;y=sin(x);z=cos(x);plot(x,y,’--k’,x,z,’-.rd’);第50頁第50頁2、特殊二維圖形函數(shù)(1)特殊坐標(biāo)系二維圖形函數(shù),區(qū)別于均勻單y軸坐標(biāo)系而言,詳細(xì)有對數(shù)坐標(biāo)系、極坐標(biāo)系和雙y軸坐標(biāo)等。①對數(shù)坐標(biāo)曲線,主要有semilogx,semilogy和loglog,前兩個分別以x坐標(biāo)和y坐標(biāo)為對數(shù)坐標(biāo),后一個是雙對數(shù)坐標(biāo)。x=0:.1:10;semilogy(x,10.^x)x=1:0.1*pi:2*pi;y=sin(x);semilogx(x,y,'-*')x=logspace(-1,2);loglog(x,exp(x),'-s')gridon第51頁第51頁②極坐標(biāo)系函數(shù)polar,調(diào)用形式為:polar(theta,rho)或polar(theta,rho,s)③雙縱坐標(biāo)(雙y軸坐標(biāo)系)函數(shù)plotyy,調(diào)用形式為:plotyy(X1,Y1,X2,Y2)plotyy(X1,Y1,X2,Y2,fun)fun能夠是plot、semilogx、semilogy或loglogplotyy(X1,Y1,X2,Y2,fun1,fun2)fun1繪制(X1,Y1),fun2繪制(X2,Y2)注:雙坐標(biāo)繪制圖形調(diào)用過程中,不能夠像前面plot函數(shù)那樣對曲線屬性進行設(shè)置,需要使用句柄圖形控制完畢。x=0:0.01:20;y1=200*exp(-0.05*x).*sin(x);y2=0.8*exp(-0.5*x).*sin(10*x);[AX,H1,H2]=plotyy(x,y1,x,y2,'plot');第52頁第52頁(2)二維特殊函數(shù)圖形函數(shù)名闡明函數(shù)名闡明函數(shù)名闡明area填充繪圖feather矢量圖fplot函數(shù)圖繪制bar條形圖stem離散序列餅狀圖hist直方圖barh水平條形圖fill多邊形填充paretoPareto圖comet彗星圖stairs階梯圖pie餅圖errorbar誤差帶圖contour等高線圖plotmatrix分散矩陣?yán)L制ezplot簡樸繪制函數(shù)圖contourf填充等高線圖ribbon三維圖二維條狀顯示ezpolar簡樸繪制極坐標(biāo)圖scatter散射圖第53頁第53頁2、三維圖形繪制三維圖形最慣用函數(shù)有plot3、網(wǎng)圖函數(shù)以及著色圖等(1)基本繪圖命令①plot3是plot三位擴展,只是增長了一個維數(shù)。調(diào)用格式有:plot3(x,y,z)plot3(X,Y,Z)X,Y,Z是相同階數(shù)矩陣,繪出三矩陣列向量曲線。plot3(X,Y,Z,s)plot3(x1,y1,z1,s1,x2,y2,z2,s2,....)組合圖形以第二種形式為例:[x,y]=meshgrid(-2:0.1:2,-2:0.1:2);z=x.*exp(-x.^2-y.^2);plot3(x,y,z)第54頁第54頁②網(wǎng)圖函數(shù)函數(shù)名闡明函數(shù)名闡明mesh三維網(wǎng)格圖meshc將網(wǎng)格與等高線結(jié)合meshz屏蔽網(wǎng)格圖meshgrid生成

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論