版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、表達(dá)式和運(yùn)算符 命令文件(程序文件) 程序設(shè)計(jì)中的流程控制 函數(shù)文件的編寫(xiě)格式, ,數(shù)學(xué)實(shí)驗(yàn)第二章,表達(dá)式由變量、運(yùn)算符、函數(shù)、數(shù)字組成 球坐標(biāo)變換,表達(dá)式和運(yùn)算符,用賦值語(yǔ)句創(chuàng)建變量 變量名=數(shù)據(jù) 變量名=表達(dá)式,x=R*cos(theta)*cos(fai); y=R*cos(theta)*sin(fai); z=R*sin(theta);,緯度 經(jīng)度,例2.2 格林威治天文臺(tái)建于1675年,其經(jīng)度為零,緯度為北緯510。計(jì)算格林威治天文臺(tái)在地心直角坐標(biāo)系中的坐標(biāo)并在球面上標(biāo)記,X,Y,Z=sphere(24); mesh(X,Y,Z),hold on fai=0; theta=51*pi
2、/180; x0=cos(theta)*cos(fai); y0=cos(theta)*sin(fai); z0=sin(theta); plot3(x0,y0,z0,ro,linewidth,2) view(124,30),例2.3 四邊形柱面繪圖原理和方法。,設(shè)四邊形頂點(diǎn)為(-1, -1), (1, -1), (1, 1), (-1, 1). 設(shè)柱面高為1,創(chuàng)建Z坐標(biāo)矩陣,創(chuàng)建柱面的X坐標(biāo)和Y矩陣,cylinder(R,N)創(chuàng)建單位高度繞Z軸旋轉(zhuǎn)曲面,R為母線,N表示圓圈上點(diǎn)數(shù),N缺省默認(rèn)值為 20。 Cylinder %單位高度二十邊形柱面 x,y,z=cylinder(1,1,4);
3、mesh(x,y,z) %單位高度四邊形柱面 x,y,z=cylinder(1,0,3); mesh(x,y,z) %單位高度的三角形錐面,使用cylinder繪柱面,+ 加 - 減 * 乘 .* 點(diǎn)乘 / 右除 ./ 點(diǎn)右除 左除 . 點(diǎn)左除 矩陣冪 . 點(diǎn)冪,1 .算術(shù)運(yùn)算符,2.關(guān)系運(yùn)算符 大于 = 大于等于 = 等于 = 不等于,3.邏輯運(yùn)算符 R=6400; S0=4*pi*R*R; S=2*pi*R*R*d/(R+d); S/S0*100,命令文件MATLAB命令的有序集合。 文件執(zhí)行對(duì)文件中命令進(jìn)行批處理,即從第一 條命令開(kāi)始按順序執(zhí)行,直到最后一條命令。如果 中間某條命令出錯(cuò),
4、則中斷并輸出錯(cuò)誤信息,M文件分為命令文件和函數(shù)文件兩種,在編輯窗口中編寫(xiě); 保存并對(duì)文件命名; 命令窗口鍵入文件名運(yùn)行; 觀察運(yùn)行結(jié)果; ,條件控制; 循環(huán)控制; 錯(cuò)誤控制;終止運(yùn)行控制,條件控制有選擇地運(yùn)行程序塊 1. if / elseif 語(yǔ)句 例2 .8 判潤(rùn)年程序,程序設(shè)計(jì)中的流程控制,year=input(input year:=); n1=year/4; n2=year/100; n3=year/400; if n1=fix(n1) f(1)=1;f(2)=1; for k=3:n f(k)=f(k-1)+f(k-2); end f(n),f(44)=701408733,1,1,
5、2,3,5,8,13,21,,例2.11 程序功能如下:把邊長(zhǎng)為2以原點(diǎn)為中心的正方形旋轉(zhuǎn)pi/24,將其壓縮(r=0.89),重復(fù)24次并繪圖,xy=-1 -1;1 -1;1 1;-1 1;-1 -1; A=cos(pi/24) -sin(pi/24); %創(chuàng)建正交矩陣 sin(pi/24) cos(pi/24); x=xy(:,1);y=xy(:,2); %提取坐標(biāo)數(shù)據(jù) line(x,y),pause(1) %畫(huà)線并暫停一秒 for k=1:24 xy=.89*xy*A; %旋轉(zhuǎn)并壓縮 x=xy(:,1);y=xy(:,2); line(x,y),pause(1) end,例 利用幀動(dòng)畫(huà)方
6、法演示馬鞍面旋轉(zhuǎn)過(guò)程。,M = moviein(24); x,y=meshgrid(-6:.5:6); z=x.2-y.2; %創(chuàng)建馬鞍面坐標(biāo)數(shù)據(jù) AZ=-30; for k=1:24 mesh(x,y,z),axis off %繪圖 colormap(0 0 1),view(AZ,20) %旋轉(zhuǎn)15O M(:,k)=getframe; %幀設(shè)計(jì) AZ=AZ+15; end movie(M,2) %幀播放,2. while循環(huán) 將循環(huán)體中語(yǔ)句循環(huán)執(zhí)行直到條件不成立為止。 語(yǔ)法: while 條件表達(dá)式 可執(zhí)行語(yǔ)句 end,條件表達(dá)式一般由變量、數(shù)字、邏輯運(yùn)算、關(guān)系運(yùn) 算符和一般運(yùn)算符組成,以判
7、斷循環(huán)的進(jìn)行和停止; 只要表達(dá)式的值(邏輯值)結(jié)果為正確(非0),循環(huán)繼 續(xù);直到表達(dá)式值為0,循環(huán)停止。,程序設(shè)計(jì)中的循環(huán)控制,例2.14 3n + 1 問(wèn)題.,n=input(input n=); %輸入數(shù)據(jù) while n=1 r=rem(n,2); %求n/2的余數(shù) if r = =0 n=n/2 %第一種操作 else n=3*n+1 %第二種操作 end end,對(duì)任一自然數(shù)n,按如下法則進(jìn)行運(yùn)算:若n為偶數(shù), 則將n除2;若n為奇數(shù),則將n乘3加1。將運(yùn)算結(jié)果按 上面法則繼續(xù)運(yùn)算, 重復(fù)若干次后結(jié)果最終是1.,n=5 16, 8, 4, 2, 1,程序設(shè)計(jì)中的流程控制,3. co
8、ntinue 命令,通常用于 for 或 while 循環(huán)語(yǔ)句中,與 if 語(yǔ)句一起使用,跳過(guò)本次循環(huán),去執(zhí)行下一輪循環(huán) 4. break命令 通常用于for或while循環(huán)語(yǔ)句中,與if語(yǔ)句一起使用,中止本次循環(huán),跳出最內(nèi)層循環(huán) If 條件表達(dá)式,break, end 5. error(message) 顯示文本 message,并中斷程序執(zhí)行 If 條件表達(dá)式, error(message), end,程序設(shè)計(jì)中的流程控制,紅、綠兩隊(duì)從相距100公里的地點(diǎn)同時(shí)出發(fā)相向行軍 紅隊(duì)速度為10(公里/小時(shí))綠隊(duì)速度為8(公里/小時(shí)) 開(kāi)始時(shí),通訊員騎摩托從紅隊(duì)出發(fā)為行進(jìn)中的兩隊(duì) 傳遞消息。摩托車
9、的速度為60(公里/小時(shí))往返于兩隊(duì) 之間. 每遇一隊(duì),立即折回駛向另一隊(duì).當(dāng)兩隊(duì)距離小 于0.2公里時(shí),摩托車停止。計(jì)算通訊員駕駛摩托車跑 了多少趟(從一隊(duì)駛向另一隊(duì)為一趟)。,例2.15 摩托車問(wèn)題,將紅隊(duì)、綠隊(duì)和摩托車假設(shè)為A、B、C三個(gè)點(diǎn). A點(diǎn)初始位置A=0, 速度va=10 (運(yùn)動(dòng)向右); B點(diǎn)初始位置B=100, 速度vb=8(運(yùn)動(dòng)向左); C點(diǎn)初始位置C=0, 速度vc=60 (f=1表示運(yùn)動(dòng)方向) 當(dāng)C向右運(yùn)動(dòng)時(shí), C、B相遇時(shí)間: tk= (B A)/(8+60) 當(dāng)C向左運(yùn)動(dòng)時(shí),A、C相遇時(shí)間: tk= (B A)/(60+10) 利用相遇時(shí)間tk、及時(shí)計(jì)算A, B的最新
10、位置 當(dāng) (B A)0.2 時(shí)程序結(jié)束。,相遇問(wèn)題的數(shù)學(xué)模型,while (B-A)0.2 if f= =1 tk=(B-A)/(vb+vc); else tk=(B-A)/(vc+va); end A=A+va*tk;B=B-vb*tk; plot(A,0,r.,B,0,g.),pause(1) f=-f;k=k+1; end k,who Your variables are: A f tk vb B k va vc,A=0; B=100; va=10;vb=8;vc=60; f=1;k=0; plot(A,0,ro,B,0,go),hold on,function 返回變量列表函數(shù)名(輸入
11、變量列表) %注解說(shuō)明 輸入變量檢測(cè),輸出變量檢測(cè) 函數(shù)體,函數(shù)文件的編寫(xiě),function Y=young(n) if nargin=0,n=3;end Y=eye(n);Y(:,1)=ones(n,1); for k=3:n Y(k,2:k-1)=Y(k-1,1:k-2)+Y(k-1,2:k-1); end,例2.18 楊輝三角形,函數(shù)內(nèi)所有變量是局部變量,既不影響其他M文件 中同名變量,也不被其他M文件中同名變量所影響 函數(shù)文件中的輸出變量要等于某個(gè)確定的表達(dá)式,函數(shù)文件的第一行必須按特定格式書(shū)寫(xiě),函數(shù)文件的編寫(xiě),輸入/輸出 變量檢測(cè)命令:nargin 、 nargout 當(dāng)函數(shù)文件被用
12、戶調(diào)用時(shí)(程序執(zhí)行時(shí)),nargin返回函數(shù)被調(diào)用時(shí)輸入變量的個(gè)數(shù)。 nargout返回當(dāng)函數(shù)被調(diào)用時(shí)輸出變量的個(gè)數(shù)。,例2.19 設(shè)地球半徑6400km,以150經(jīng)差繪三維地球。,function earthface() R=6400; theta,fai=meshgrid(-90:15:90,-180:15:180); theta=theta*pi/180;fai=fai*pi/180; X=R*cos(theta).*cos(fai); Y=R*cos(theta).*sin(fai); Z=R*sin(theta); colormap(0 0 1) mesh(X,Y,Z),axis o
13、ff,特例之一:無(wú)輸入無(wú)輸出變量的函數(shù)文件,函數(shù)文件的編寫(xiě),球函數(shù)的圖形: 拉普拉斯方程的解,記勒讓德多項(xiàng)式,令,球諧函數(shù),令,在球坐標(biāo)系數(shù)繪球諧函數(shù)圖,function sphefun() t=linspace(0,pi,40);s=linspace(0,2*pi,60); theta,fai=meshgrid(t,s); x=cos(theta);w=sqrt(1-x.2); P31=3*(5*x.2-1)/2; YR=w.*P31.*cos(fai); X=YR.*sin(theta).*cos(fai); Y=YR.*sin(theta).*sin(fai); Z=YR.*cos(th
14、eta); surf(X,Y,Z),axis off,例2.24 Hanoi問(wèn)題(遞歸算法),有A、B、C三個(gè)塔柱。柱A上n個(gè)有孔圓盤(pán),由上而下由小到大疊放。要將柱A上圓盤(pán)移到柱C上,并仍按同樣順序疊放。移動(dòng)圓盤(pán)過(guò)程中,不允許大圓盤(pán)壓小圓盤(pán),可將圓盤(pán)移至A,B,C中任何一柱上。,漢諾塔:漢諾塔(又稱河內(nèi)塔)問(wèn)題是源于印度一個(gè)古老傳說(shuō)的益智玩具。大梵天創(chuàng)造世界的時(shí)候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤(pán)。大梵天命令婆羅門把圓盤(pán)從下面開(kāi)始按大小順序重新擺放在另一根柱子上。并且規(guī)定,在小圓盤(pán)上不能放大圓盤(pán),在三根柱子之間一次只能移動(dòng)一個(gè)圓盤(pán)。,問(wèn)題分析:n張盤(pán)片,A、
15、B、C三根柱子,將A做為開(kāi)始塔柱,C為目標(biāo)塔柱,B為中間塔柱。要列出整個(gè)轉(zhuǎn)移的操作過(guò)程,應(yīng)用遞歸技術(shù)。 將A上的n-1個(gè)盤(pán)轉(zhuǎn)移到B上 將A上第n號(hào)盤(pán)轉(zhuǎn)移到C上 將B上的n-1個(gè)盤(pán)轉(zhuǎn)移到C上。h(n)=2h(n-1)+1, h(n)=2n-1 第一步是n-1個(gè)盤(pán)問(wèn)題(A開(kāi)始, C中間, B目標(biāo)); 第二步是1個(gè)盤(pán)問(wèn)題; 第三步是n-1個(gè)盤(pán)問(wèn)題(B開(kāi)始, A中間, C目標(biāo))。,將三步操作按次序編寫(xiě)函數(shù)文件,第一步操作和第三步操作需要調(diào)用函數(shù)本身,即自己調(diào)用自己。,if nargin=1, A= A;B= B;C= C;end if n=1 disp(strcat(No,int2str(n),:,A
16、, - ,C) else hanoi(n-1,A,C,B); disp( strcat(No,int2str(n),:,A, - ,C) hanoi(n-1,B,A,C); end,遞歸技術(shù)實(shí)現(xiàn)的關(guān)鍵是設(shè)置邊界條件(即一個(gè)盤(pán)的情況)。程序運(yùn)行結(jié)果表明,三個(gè)盤(pán)的漢諾塔問(wèn)題需要七步操作。,function hanoi(n,A,B,C) %n-圓盤(pán)數(shù),A-開(kāi)始,B-中間,C-目標(biāo),No1: A - C No2: A - B No1: C - B No3: A - C No1: B - A No2: B - C No1: A - C,No1: A - B No4: A - C No1: B - C N
17、o2: B - A No1: C - A No3: B - C No1: A - B No2: A - C No1: B - C,hanoi(3),hanoi(4),No1: A - B No2: A - C No1: B - C No3: A - B No1: C - A No2: C - B,數(shù)據(jù)文件的輸入方法,對(duì)于大型矩陣,用文本文件錄入數(shù)據(jù),并用load命令將數(shù)據(jù)載入。具體使用格式為,load(filename.txt) 或load filename.txt,其中,filename是文件名,如data.txt。如果數(shù)據(jù)文件上載成功,則文件名就成為變量名。,例 某數(shù)學(xué)課成績(jī)由三部分構(gòu)成:
18、平時(shí)10%,期中30%,期末60%。一個(gè)行政班學(xué)生成績(jī)數(shù)據(jù)如下,將成績(jī)輸入數(shù)據(jù)文件,按成績(jī)構(gòu)成比例計(jì)算每位同學(xué)的最后成績(jī),并統(tǒng)計(jì)出各分?jǐn)?shù)段的人數(shù)及百分比。,用記事本將成績(jī)錄入,存為文本文件datas.txt 將該文件拷貝到MATLAB 工作目錄(work)下; 在命令窗口用命令load datas.txt將數(shù)據(jù)文件裝入內(nèi)存,處理數(shù)據(jù)程序如下:,score=0.1*datas(:,1)+0.3*datas(:,2)+0.6*datas(:,3); N=length(score); %統(tǒng)計(jì)總?cè)藬?shù),II=find(score=60 fensu=F0,F1,F2,F3,F4 %顯示各分?jǐn)?shù)段人數(shù) format bank
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 財(cái)務(wù)調(diào)查報(bào)告范文
- 會(huì)計(jì)賬簿教學(xué)課件
- 家庭教育的角色與責(zé)任
- 中職崗位體驗(yàn)報(bào)告范文
- 新員工培訓(xùn)與崗位晉升
- 單位申請(qǐng)報(bào)告格式范文
- 查新報(bào)告范文
- 2025年嘉峪關(guān)貨運(yùn)從業(yè)資格證怎么考試
- 演講節(jié)目實(shí)踐報(bào)告范文
- 2025年南寧貨車從業(yè)資格證考什么
- 混凝土強(qiáng)度評(píng)定表(自動(dòng)計(jì)算)
- 公安內(nèi)勤培訓(xùn)課件
- 《5.1.2 弧度制》教學(xué)設(shè)計(jì)、導(dǎo)學(xué)案、同步練習(xí)
- 人教版七年級(jí)上冊(cè)音樂(lè)期末試卷合集(8套有答案)
- ADS射頻電路設(shè)計(jì)與仿真從入門到精通
- 喀什草湖鎮(zhèn)發(fā)展規(guī)劃方案
- 河道綜合整治規(guī)劃方案
- 民宿集體管理方案
- 食品工程原理課程設(shè)計(jì)說(shuō)明書(shū)-水冷卻牛奶的列管式換熱器
- 仲裁與訴訟比較分析
- 語(yǔ)文一年級(jí)全冊(cè)單元試卷及期末分類復(fù)習(xí)綜合試卷(含答案)
評(píng)論
0/150
提交評(píng)論