




已閱讀5頁,還剩58頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
E-mail: Tel:49936260,數 學 實 驗,MATALAB編程與作圖,MATALAB控制流,MATALAB作圖,M文件,2.1 M文件編寫初步,本質:就是將一些指令預先在M文件中編輯好,然后在需要時將M文件調出來執行即可。,M文件的分類:一類為簡單的腳本M文件;一類為函數M文件。,腳本M文件就是就是一連串常用指令的組合,可在指令窗口中直接 執行。, 函數M文件的開頭一行需要有一個函數名稱,然后用小括弧包括 需要的輸入參數;函數名稱前可以有等號,在此等號的左方是它的 輸出參數,MATLAB的內部函數是有限的,有時為了研究某一個函數的各種性態,需要為MATLAB定義新函數,為此必須編寫函數文件. 函數文件是文件名后綴為M的文件,這類文件的第一行必須是一特殊字符function開始,格式為: function 因變量名=函數名(自變量名) 函數值的獲得必須通過具體的運算實現,并賦給因變量.,1. 函數M文件, 單擊MATALAB窗口里的New-Mfile圖標, 輸入代碼:,function z=fun(x) z=x(1)*2+x(2)*2-2*x(1)*x(2)+6*x(1)-6*x(2), 單擊FileSave,把文件保存在Work文件夾下, 在指令窗口中輸入如下指令即可看到運行結果。 fun(2,3),例2 定義函數 f(x1,x2)=100(x2-x12)2+(1-x1)2,function f=fun(x) f=100*(x(2)-x(1)2)2+(1-x(1)2,1.建立M文件:,2. 可以直接使用函數fun.m,例如:計算 f(1,2), 只需在Matlab命令窗口鍵入命令: fun(1 2),2.2 MATALAB程序設計初步,MATALAB提供了四種控制程序流結構: for、while循環結構; ifelseend分支結構; switchcase結構; trycatch結構。,1. for、while循環結構,1.1 for語句,for循環:允許一組命令以固定的和預定的次數重復 for 變量=array(初始值:增量:終止值) 運算指令(commands) end,注1 增量默認值為1,也可自己定義增量值,增量值可小于0。當增量值大于零時,程序將在變量大于終止值時終止;當增量小于零時,程序將在變量小于終止值時結束。,for n=1:10,x(n)=sin(n*pi/10);,end x,單循環語句:,for n=2:6,x(n)=2*x(n-1);,end x,x(1)=1;,s=0; for i=1:100000 s=s+1/2i+1/3i; end s,多重嵌套循環語句:,for m=1:5 for n=1:5 H(m,n)=m+n end end H,1.2 while語句,與for循環以固定次數求一組命令相反,while循環以不定的次數求一組語句的值. while 表達式(expression) 循環體commands end 只要在表達式(expression)里的所有元素為真,就執行while和end語句之間的命令串commands,執行完成后再判斷表達式是否為真,若不是則跳出循環體,向下繼續執行。,s=0; i=0; while s=10000 i=i+1; s=s+i; end i,例2設銀行年利率為11.25%。將10000元錢存入銀行,問多長時間會連本帶利翻一番?,money=10000;,years=0;,while money20000,years=years+1;,money=money*(1+11.25/100);,end years,1.3 ifelseend分支結構,1)有一個選擇的一般形式是: if 邏輯表達式(expression) 執行語句commands end 如果在表達式(expression)里的所有元素為真,就執 行if和end語句之間的命令串commands.,先建立M文件f.m定義函數f(x),再在Matlab命令窗口輸入f(2),f(-1)即可。,function f=f(x) if x1 f=x2+1 End if x=1 f=2*x end,2) 有多個選擇的一般形式是: if 邏輯表達式 執行語句1 else if 邏輯表達式 執行語句2 else if 邏輯表達式 執行語句3 else if else 執行語句 end end,function f=fun2(x) if x1 f=x2+1 else if x=0 f=x3 else f=2*x end end,1.3 trycatch結構,try語句用來檢測程序代碼是否會產生錯誤,一旦錯誤發生,MATALAB會立即跳入到相應的catch語句中去。,try statement1 %命令塊statement1被執行。若正確,則跳出此結構。 catch statement2 %當命令塊statement1出現執行錯誤則執行命令塊則statement2。 end,輸入矩陣A、B的值,執行上面的程序,當A的列數不等于B的行數時,程序就會發現這個錯誤,并打印消息 *Error cxd1 A*B 。,例如:function cxd1(A,B) try X=A*B catch disp*Error cxd1 A*B end,E-mail: Tel:49936260,數 學 建 模,第六章 作 圖,2.3 MATLAB圖形繪制,2.3.1 二維曲線圖形,Matlab作圖是通過描點、連線來實現的,故在畫一個曲線圖形之前,必須先取得該圖形上的一系列的點的坐標(即橫坐標和縱坐標),然后將該點集的坐標傳給Matlab函數畫圖.,基本命令為: plot(X,Y,S),可以用下面的語句直接繪制出多條的曲線: plot(X,Y1,X,Y2,X,Yn),參數S的各種選項,注1 上表中的選項可以進行組合。例如:若想繪制紅色的點劃線且每個轉折點上用五角星表示,則選相應適用怎樣的組合形式?,r-.pentagram,x=-pi:0.05:pi; y=sin(tan(x)-tan(sin(x) plot(x,y),x=0:0.05:2*pi; y=sin(x); z=cos(x); plot(x,y,b,x,z,r.-),幾點說明:,1、 若X,Y都為向量,則分別表示點集的橫坐標和縱坐標,例如 plot(X,Y)-畫實線,S曲線的性質(線性、粗細、顏色等)。,2、 若X向量,Y為矩陣,則將在同一坐標系下繪制m條曲線,每一行和X的關系將繪制出一條曲線。注意,要求Y矩陣的列數應該等于向量X的長度。,例:x=0:0.1:2; A=sin(pi*x);0.5+0.5*x; plot(x,A) %2條不同的 曲線,3、 若X,Y都為矩陣,且假設X和Y的行、列數相同,則將繪制出X矩陣每行和Y矩陣對應行之間關系的曲線。,例:A=1 4 2;0 -3 4;0 4 3; B=1 0 0 ;0 1 0;0 0 1; plot(A,B) %對應點的連線,符號函數(顯函數、隱函數和參數方程)畫圖,(1) ezplot,ezplot(x(t),y(t),tmin,tmax) 表示在區間tminttmax繪制參數方程 x=x(t),y=y(t)的函數圖,ezplot(f(x),a,b) 表示在axb繪制顯函數f=f(x)的函數圖,ezplot(f(x,y),xmin,xmax,ymin,ymax) 表示在區間xminxxmax和 yminyymax繪制 隱函數f(x,y)=0的函數圖,例1 在0,pi上畫y=cosx的圖形,解 輸入命令 ezplot(sin(x),0,pi),解 輸入命令 ezplot(cos(t)3,sin(t)3,0,2*pi),解 輸入命令 ezplot(exp(x)+sin(x*y)=0,-2,0.5,0,2),2.3.2 圖形處理,1subplot函數,subplot(m,n,p) 該命令將當前圖形窗口分成mn個繪圖區,即每行n個,共m行,區號按行優先編號,且選定第p個區為當前活動區。,【例】 在一個圖形窗口中同時繪制正弦、余弦、正切曲線,x=linspace(0,pi,60); y=sin(x);z=cos(x);w=tan(x); subplot(1,3,1); plot(x,y); subplot(1,3,2); plot(x,z); subplot(1,3,3); plot(x,w),2. 分隔線控制和圖形標注,MATALAB的默認狀態下是不畫分隔線,它的疏密取決于坐標刻度。,調用格式: grid on 畫出分隔線 grid off 不畫分隔線,例如:x=1:90; y=sin(x); plot(x,y); grid on,3. 圖形標注,1)坐標軸名label,給相應的坐標軸x,y,z加標注,只要調用相應的函數 xlabel,ylabel,zlabel,以函數xlabel為例,其調用格式為:,xlabel(text),1)“text”為要添加的標注文本,2)書寫圖名title,(給圖形加標題),其調用格式為:,title(text),注:title命令要寫到plot命令之后,否則不起作用;特殊字符串是區分大小的。,實例:t=0:0.2:2*pi; plot(t,sin(t),o,t,cos(t),*); xlabel(x),ylabel(y); title(sin(x)和cos(x)曲線),4. 特殊二維圖形,1)極坐標圖,其調用格式為:polar(theta,rho,s),例 試用極坐標繪制函數,theta=0:0.1:2*pi; rho=5*sin(4*theta/3); polar(theta,rho,rdiamond),2)散點圖(與plot類似,但只有數據點),例 繪制函數y=sinx的散點圖,x=1:40; y=sin(x); scatter(x,y),其調用格式為:scatter(x,y,c,s)c是指散點的大小,3)直方圖(顯示數據的分布規律),其調用格式為:hist(y)使用10個等距離分布的區間來對向量y的分布進行統計,并返回每個區間上含有y中元素的個數。,Y=randn(15000,2); hist(Y),4)階梯圖形 函數stairs(x,y)可以繪制階梯圖形,x=-2.5:0.25:2.5; y=exp(-x.*x); stairs(x,y),5)條形圖形 函數bar(x,y)可以繪制條形圖形,如下列程序段將繪制條形圖形 x=-2.5:0.25:2.5; y=exp(-x.*x); bar(x,y),6)填充圖形 fill(x,y,c)函數用來繪制并填充二維多邊圖形,x和y為二維多邊形頂點坐標向量。字符 c 規定填充顏色。 下述程序段繪制一正方形并以黃色填充:,x=0 1 1 0 0; y=0 0 1 1 0; fill(x,y,y) x=0:0.025:2*pi; y=sin(3*x); fill(x,y,k),Matlab系統可用向量表示顏色,通常稱其為顏色向量。基本顏色向量用r g b表示,即RGB顏色組合;以RGB為基本色,通過 r,g,b在01范圍內的不同取值可以組合出各種顏色。,x=0:0.025:2*pi; y=sin(3*x); fill(x,y,0.3 0.4 .6),4)平面等值線圖:contour (x,y,z,n) 繪制n個等值線的二維等值線圖,解: X,Y= meshgrid(-2:0.2:2,-2:0.2:3); Z=X.*exp(-X.2-Y.2); contour(X,Y,Z);,2.3.3 三維圖形,1. 空間曲線,2. 空間曲面,plot3(x,y,z,s),空 間 曲 線,1、 一條曲線,t=0:0.1:2*pi; x=t.3.*sin(3*t).*exp(-t); y=t.3.*cos(3*t).*exp(-t); z=t.2; plot3(x,y,z),plot3(x,y,z),2、多條曲線,例 畫多條曲線觀察函數Z=(X+Y)2,(這里meshgrid(x,y)的作用是產生一個以向量x為行、向量y為列的矩陣),其中x,y,z是都是m*n矩陣,其對應的每一列表示一條曲線.,解 x=-3:0.1:3;y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; plot3(X,Y,Z),空 間 曲 面,1、網格圖,所謂網格圖,是指把相鄰的數據點連接起來相成的網狀面。,mesh(x,y,z,c),例 繪peaks的網格圖,解:x,y,z=peaks; mesh(x,y,z),peaks函數用于生成高斯型分布的數據,其參數為生成數據矩陣的維數,2、曲面圖,所謂曲面圖,就是把網格圖表面的網格為成的小片區域(補片)用不同的顏色填充形成的彩色表面。,說明:在繪制三維圖形之前,應該先調用meshgrid()函數生成網格數據x和y,這樣可以按函數公式用點運算的方式計算出z矩陣,之后就可以用函數進行三維圖形繪制。,X,Y=meshgrid(x,y); Z=f(x,y); Surf(x,y,z),例 繪peaks的曲面圖,解:x,y,z=peaks; surf(x,y,z),例1 繪z=sinx+cosy的曲面圖,解:x,y=meshgrid(0:0.5:2*pi,0:0.4:2*pi); z=sin(x)+cos(x); surf(x,y,z),解:x,y=meshgrid(0:31);n=2;D0=200; D=sqrt(x-16).2+(y-16).2); z=1./(1+D.(2*n)/D0); surf(x,y,z),在圖形上加格柵、圖例和標注,定制坐標,圖形保持,分割窗口,縮放圖形,改變視角,圖形處理,動 畫,1、在圖形上加格柵、圖例和標注,(1)grid on: 加格柵在當前圖上 grid off: 刪除格柵,(2)xlabel(string): 在當前圖形的x軸上加圖例string,ylabel(string): 在當前圖形的y軸上加圖例string,zlabel(string): 在當前圖形的z軸上加圖例string,title(string): 在當前圖形的頂端上加圖例string,例 繪制z=sinh(x)+cosy的圖形,并加注圖例“自變量 X”、“自變量Y”、“函數z”,”三維示意圖“ 并加格柵.,解:x,y=meshgrid(0:0.5:2*pi); z=sinh(x)+cos(y); surf(x,y,z); grid on; xlabel(自變量x); ylabel(自變量y); zlabel(函數z); title(三維圖形示意圖),(3)gtext(string),命令gtext(string)用鼠標放置標注在現有的圖上. 運行命令gtext(string)時,屏幕上出現當前圖形,在 圖形上出現一個交叉的十字,該十字隨鼠標的移動移動, 當按下鼠標左鍵時,該標注string放在當前十交叉的位 置.,例 在區間0,2*pi畫sin(x),并分別標注“sin(x)” ”cos(x)”.,解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(sin(x);gtext(cos(x),2、定制坐標,axis(xmin xmax ymin ymax zmin zmax),例 在區間0.005,0.01顯示sin(1/x)的圖形。,解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis(0.005 0.01 1 1),定制圖形坐標,將坐標軸返回到自動缺省值,axis auto,3、圖形保持,(1) hold on hold of,例 將z=sin(x)+cos(y)、w=cos(x)+tan(y)畫出在同一屏幕上。,保持當前圖形, 以便繼續畫圖到當前圖上,釋放當前圖形窗口,x,y=meshgrid(0:0.5:2*pi,0:0.4:2*pi); z=sin(x)+cos(x); w=cos(x)+tan(y); surf(x,y,z); hold on surf(x,y,w),(2) figure(h),例 區間0,2*pi新建兩個窗口分別畫出y=sin(x); z=cos(x)。,新建h窗口,激活圖形使其可見,并把它置于其它圖形之上,x=linspace(0,2*pi,100); y=sin(x);z=cos(x); plot(x,y); title(sin(x); pause figure(2); plot(x,z); title(cos(x); pause,5、縮放圖形,zoom on,單擊鼠標左鍵,則在當前圖形窗口中,以鼠標點中的點為中心的圖形放大2倍;單擊鼠標右鍵,則縮小2倍,例 縮放y=sin(x)的圖形,zoom off,為當前圖形打開縮放模式,關閉縮放模式,x=linspace(0,2*pi,30); y=sin(x); plot(x,y) zoom on,6. 改變視角view,(1)view(a,b) 命令view(a,b)改變視角到(a,b),a是方位角,b為仰角。缺省視角為(-37.5,30)。,例 畫出曲面Z=sinx+cosy在不同視角的網格圖.,view用空間矢量表示的,三個量只關心它們的比例,與數值的大小無關,x軸view(1,0,0),y軸view(0,1,0),z軸view(0,0,1)。,(2)view(x,y,z),X,Y=meshgrid(0:0.5:2*pi,0:0.3:2*pi); Z=sin(X)+cos(Y); subplot(2,2,1); mesh(X,Y,Z) subplot(2,2,2);mesh(X,Y,Z);view(50,-34) subplot(2,2,3);mesh(X,Y,Z);view(-60,70) subplot(2,2,4);mesh(X,Y,Z);view(0,1,1),特殊的三維圖形函數,1、空間等值線圖: contour 3(x,y,z,n),其中n表示等值線數。,例 山峰的三維和二維等值線圖。,解 x,y,z=peaks; subplot(1,2,1) contour3(x,y,z,16,s) subplot(1,2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 激勵學習熱情的商務英語試題答案
- 立訊崗前培訓試題及答案
- 風力發電場建設項目社會穩定風險評估與風險評估模型創新報告
- 母嬰產品市場2025年消費升級背景下品牌可持續發展研究報告
- 深入探討樂理考試試題及答案
- 急診分診本科試題及答案
- 教師反思與教育改革的實施路徑試題及答案
- 研究2025年家具行業設計考試中的項目提案技巧試題及答案
- 情感識別在智能客服技術中的應用:用戶需求與市場潛力分析報告
- 教育學綜合試題及答案
- 《中電聯團體標準-220kV變電站并聯直流電源系統技術規范》
- 橋梁博士畢業設計電子版
- MOOC 犯罪心理學-西南政法大學 中國大學慕課答案
- 家族信托與家族財富傳承
- 杭港地鐵施工培訓課件
- 豐富多彩的課間活動課件
- 藍色卡通風太陽系八大行星知識天文知識科普宣傳
- 電磁感應與電磁能量轉化實驗
- 面部整骨培訓課件
- 小班兒歌:水珠寶寶
- 全國中學語文青年教師教學展示活動一等獎《變形記》教學展示課件
評論
0/150
提交評論