(完整版)第二講Matlab編程與作圖_第1頁(yè)
(完整版)第二講Matlab編程與作圖_第2頁(yè)
(完整版)第二講Matlab編程與作圖_第3頁(yè)
(完整版)第二講Matlab編程與作圖_第4頁(yè)
(完整版)第二講Matlab編程與作圖_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二講Matlab編程與作圖第一部分 Matlab程序設(shè)計(jì)初步Matlab除了指令行操作的直接交互外,作為一種高級(jí)應(yīng)用軟件還提供了自己的編程語(yǔ)言。通過(guò)編寫 Matlab程序,可以更加方便地調(diào)用Matlab提供的各種功能強(qiáng)大的函數(shù)庫(kù),使得程序能完成復(fù)雜的運(yùn)算處理大量的數(shù)值數(shù)據(jù)。1、M文件簡(jiǎn)介Matlab提供了豐富的編程語(yǔ)言, 使得用戶可以將一連串的命令寫入文件,然后使用簡(jiǎn)單的函數(shù)來(lái)執(zhí)行這些命令。 文件被保存為文本文件,后綴為 .m,比如說(shuō) dblquad.m,因此 Matlab的程序通常被稱為 M文件。M文件是一個(gè)文本文件,可以使用各種文本編輯器對(duì)它進(jìn)行編輯和修改,比如 Windows操作系統(tǒng)自帶的記事本,也可以用 Matlab內(nèi)建的M文件編輯器。M文件分為兩類, 一類稱為腳本 (Scripts),類似于批處理文件,相當(dāng)于將在 Matlab命令窗口中執(zhí)行的一系列指令放在一個(gè)文件中,當(dāng)在命令窗口調(diào)用該文件名時(shí),則按順序執(zhí)行其中的命令集。例2.1:編寫求 10!的程序。n=10;s=1;fork=1:ns=s*k;enddisp(s) %disp:MATLAB中的命令,表示只顯示結(jié)果,不顯示變量名。另一類M文件稱為函數(shù)(Function),它可以接受輸入變量,并將運(yùn)算結(jié)果送至輸出變量,類似于數(shù)學(xué)中的函數(shù) y=f(x)。函數(shù)M文件的基本結(jié)構(gòu):functionf=fact(n)函數(shù)定義行%Computeafactorialvalue.計(jì)算階乘的值%FACT(N)returnsthefactorialofN, 幫助文檔%usuallydenotedbyN!%Putsimply,FACT(N)isPROD(1:N), 注釋f=prod(1:n); 函數(shù)體x2x1例2.2:編寫分段函數(shù) f(x) 1 -1<x132xx1%myfun1.mfunctiony=myfun1(x)y=(x.^2).*(x>1)+(x>-1&x<=1)+(3+2*x).*(x<=-1);注意:1.函數(shù)名與變量名的命名法則相同,要求以字母開頭,后接字母或下劃線; 2.函數(shù)名與保存的文件名最好一致。2、控制流所有的計(jì)算機(jī)編程語(yǔ)言都提供了控制程序流執(zhí)行程序的語(yǔ)法,Matlab也不例外。所有的控制流語(yǔ)法都以 end結(jié)尾。⑴for循環(huán)語(yǔ)句語(yǔ)法:for循環(huán)變量 =數(shù)組指令組;end解釋:對(duì)于循環(huán)變量依次取數(shù)組中的值, 循環(huán)執(zhí)行指令組直到循環(huán)變量遍歷數(shù)組。 數(shù)組最常用的形式是 初值:步長(zhǎng):終值 。例 2.3:構(gòu)造 Hilbert矩陣functionH=hilbert(n)H=zeros(n,n);fori=1:nforj=1:nH(i,j)=1/(i+j-1);endend⑵while循環(huán)語(yǔ)法:while條件式指令組;end解釋:當(dāng)條件式滿足,循環(huán)執(zhí)行指令組直到條件式不滿足。使用while語(yǔ)句要注意避免出現(xiàn)死循環(huán)。例 2.4:利用迭代公式 xk11(xk a)求 a近似值, 要求誤差不超過(guò)指2 xk定精度。 [Sqrt.m]functionx1=Sqrt(a,tol)%y=Sqrt(a,tol)%用牛頓迭代法求正數(shù) a的算術(shù)平方根%tol為容許誤差x0=0; %初始值x1=a/2;whileabs(x1-x0)>tolx0=x1;x1=(x0+a/x0)/2;end⑶分支語(yǔ)句TOC\o"1-5"\h\z語(yǔ)法:if條件表達(dá)式 1指令組 1;[elseif條件表達(dá)式 2指令組 2;][······· ][else指令組k;]end解釋:如果條件表達(dá)式 1滿足,則執(zhí)行指令組 1,且結(jié)束該語(yǔ)句;否則檢查條件表達(dá)式 2,若滿足則執(zhí)行指令組 2,且結(jié)束該語(yǔ)句;若所有的條件都不滿足,則執(zhí)行指令組 k,并結(jié)束該語(yǔ)句。例2.5:用條件語(yǔ)句編寫例 2.2的分段函數(shù) [myfun2.m]⑷開關(guān)語(yǔ)句語(yǔ)法:switch分支變量case值1指令組 1;case值2指令組 2;otherwise指令組k;end解釋:若分支變量的值取值 1,則執(zhí)行指令組 1,且結(jié)束該語(yǔ)句,若分支變量的值取值 2,則執(zhí)行指令組 2,且結(jié)束該語(yǔ)句,······若分支變量不取所列出的值,則執(zhí)行指令組 k。⑸其它常用指令input指令提示用戶從鍵盤輸入數(shù)值、字符串或表達(dá)式,并接收該輸入,語(yǔ)法為:user_entry=input(‘message’)user_entry=input(‘message’,’s’)pause指令使程序運(yùn)行暫停,語(yǔ)法為pause:暫停執(zhí)行程序,等待用戶按任意鍵繼續(xù)。pause(n):使程序暫停 n秒后繼續(xù)執(zhí)行。例 2.6:forn=1:4x=-1:0.1:1;y=x.^n;plot(x,y)pauseendreturn指令結(jié)束return指令所在函數(shù)的執(zhí)行,返回到主調(diào)函數(shù)或者命令窗口。break指令中斷執(zhí)行,用在循環(huán)語(yǔ)句內(nèi)表示跳出循環(huán)。error(’message’) 顯示出錯(cuò)信息,終止程序執(zhí)行。4、其它一些有用的函數(shù)fcnchk函數(shù)驗(yàn)證函數(shù)f=fcnchk(fun),fun可以是由字符串表示的函數(shù)表達(dá)式,(這時(shí)返回一個(gè)inline函數(shù)),也可以是函數(shù)句柄,或是函數(shù)名字符串。f=fcnchk(fun,‘ vectorized’),生成向量化函數(shù),例如用 .*代替*舉例將intfzero.m文件中的語(yǔ)句 f=inline(fun);換成f=fcnchk(fun);nargin,nargout函數(shù)中輸入?yún)?shù)或輸出參數(shù)的個(gè)數(shù)。%注釋語(yǔ)句find尋找數(shù)組中非零元素對(duì)應(yīng)的下標(biāo)。S=find(A),[I,J]=find(A)

取整函數(shù) round(x),ceil(x),floor(x),fix(x)例 2.7:編寫用二分法求函數(shù)零點(diǎn)的程序。 [bisection.m]兩端切斷function[x,N]=bisection(fun,a,b,tol)%x=bisection(fun,a,b,tol)%二分法求方程的根ifnargin<3,error('輸入?yún)?shù)不足 ');endifnargin<4,tol=1e-6;endifnargin<4,tol=1e-6;end%缺省精度f(wàn)=fcnchk(fun);');iff(a)*f(b)>0,error(end');N=0;%記錄二分次數(shù)whileabs(b-a)>tolx=(a+b)/2;N=N+1;iff(x)==0returnelseiff(x)*f(a)<0b=x;elsea=x;endend

x=(a+b)/2;Fk2,k3,4,L,并驗(yàn)證極例 2.8:求 Fibonacci數(shù)列: F1F21,FkFk2,k3,4,L,并驗(yàn)證極限Fk1 5。Fk1 2編寫求Fibonacci 數(shù)列的函數(shù) [fib,m]:functionx=fib(n)x=ones(1,n);ifn<=2,return;endfork=3:nx(k)=x(k-2)+x(k-1);end編寫求 Fibonacci數(shù)列第 n項(xiàng)的函數(shù) [fibn.m]functionf=fibn(n)遞歸方法ifn<=2,f=1;遞歸方法elsef=fibn(n-1)+fibn(n-2);%end驗(yàn)證極限 Fk 1 5:n=2;x0=(1+sqrt(5))/2;L=[];whileabs(fibn(n)/fibn(n-1)-x0)>1e-8L=[L,fibn(n)/fibn(n-1)];

n=n+1;end第二部分 Matlab作圖1、曲線圖plot(x,y)作出以數(shù)據(jù) (x(i),y(i))為節(jié)點(diǎn)的折線圖,其中 x,y為同維數(shù)的向量。?plot(x,y,s)其中 s是由顏色、標(biāo)記、線型參數(shù)組成的字符串顏色標(biāo)記線型bblue.point-solidggreenocircle:dottedrredxx-mark-.dashdotccyan+plus--dashedmmagenta*star(none)nolineyyellowssquarekblackddiamondwwhitevtriangle(down)^triangle(up)<triangle(left)>triangle(right)p pentagramh hexagramplot(x1,y1,s1,x2,y2.s2,?)在同一個(gè)坐標(biāo)系中作出由向量對(duì)(x1,y1),(x2,y2),?為節(jié)點(diǎn)的折線。例:在同一坐標(biāo)系中作出函數(shù) yx3x1和yx0.2sin(5x)在區(qū)間[-1,2]上的圖形。holdon(off)保持(釋放)圖形窗口polar(theta,rho)作以( theta,rho)為坐標(biāo)的極坐標(biāo)圖形, theta,rho為同維數(shù)的向量例:作出四葉玫瑰線 4sin2的圖形。fplot(fun,[a,b])作出函數(shù) fun在區(qū)間 [a,b]上的圖形。plot3(x,y,z)作空間曲線的圖形, x,y,z為同維向量。例:作出曲線 xtsint,ytcost,zt的圖形。subplot(m,n,k)將圖形窗口分成 mn個(gè)子圖形窗口,將當(dāng)前操作定位在第 k個(gè)子圖形窗口。2、曲面圖[X,Y]=meshgrid(x,y)生成以數(shù)組 x,y為坐標(biāo)的網(wǎng)格矩陣mesh(X,Y,Z)繪制網(wǎng)面圖, X、Y、Z是同維矩陣surf(X,Y,Z)繪制曲面圖,與 mesh用法類似。22例:作出曲面 zxexy在2x2,2y2上的圖形ezmesh(fun)輕松繪出二元函數(shù) fun的曲面圖(easytousemes)h繪圖區(qū)域?yàn)?[2,2,2,2]ezmesh(fun,[xmin,xmax,ymin,ymax])在指定區(qū)域繪圖ezmesh(fun,?,’circ’)繪圖區(qū)域?yàn)閳A域上機(jī)練習(xí)1、設(shè) x為一個(gè)長(zhǎng)度為 n的數(shù)組,編程求下列均值和標(biāo)準(zhǔn)差1n 1n2 2xni1xi,s n1[i1xi2nx],n1m2、求滿足 ln(1n)100的最小m值。n010633、分別用 for和while循環(huán)結(jié)構(gòu)編寫程序,求出 K 3i。并考慮i12一種避免循環(huán)語(yǔ)句的程序設(shè)計(jì),比較不同算法的運(yùn)行時(shí)間。4、求出所有的“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。 例如,153是一個(gè)“水仙花數(shù)” ,因?yàn)?53135333。5、求 1000之內(nèi)的所有“完數(shù)”。所謂“完數(shù)”是指一個(gè)數(shù)恰好等于它的所有因子之和,例如, 6是完數(shù),因?yàn)?6=1+2+3。6、一球從 100米高處落下,每次落地后反彈跳回原高度的一半,再落下。求該球在第 10次落地時(shí), 共經(jīng)過(guò)了多少米?第 10次反彈多高?7、猴子吃桃問題。猴子第 1天摘下若干桃子,當(dāng)即吃掉一半,還不過(guò)癮,又多吃了一個(gè)。第 2天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第 10天早上想再吃時(shí),只剩下一個(gè)桃子了。問第 1天共摘下多少桃子?8、假定某天的氣溫變化記錄如下表,試作圖描述這一天的氣溫變化規(guī)律。時(shí)刻t(h)0123456789101112溫度T(℃)15141414141516182022232528時(shí)刻t(h)131415161718192021222324溫度T(℃)3132312927252422201817169、作出下列函數(shù)圖像⑴曲線yx2sin(x2x2),2x2(要求分別使用 plot或fplot完成)22⑵橢圓xy149⑶拋物面 zx2y2,x3,y3⑷曲面zx43x2y22x2y2x2y6,x3,3y13⑸空間曲線 xsint,ycost,z

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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)論