數(shù)學(xué)實(shí)驗(yàn)第二章_第1頁
數(shù)學(xué)實(shí)驗(yàn)第二章_第2頁
數(shù)學(xué)實(shí)驗(yàn)第二章_第3頁
數(shù)學(xué)實(shí)驗(yàn)第二章_第4頁
數(shù)學(xué)實(shí)驗(yàn)第二章_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1/33 表達(dá)式和運(yùn)算符表達(dá)式和運(yùn)算符 命令文件命令文件( (程序文件程序文件) ) 程序設(shè)計(jì)中的流程控制程序設(shè)計(jì)中的流程控制 函數(shù)文件的編寫格式函數(shù)文件的編寫格式 數(shù)學(xué)實(shí)驗(yàn)第二章第二章 2/33 表達(dá)式表達(dá)式由變量、運(yùn)算符、函數(shù)、數(shù)字組成由變量、運(yùn)算符、函數(shù)、數(shù)字組成 球坐標(biāo)變換球坐標(biāo)變換 表達(dá)式和運(yùn)算符表達(dá)式和運(yùn)算符 用賦值語句創(chuàng)建用賦值語句創(chuàng)建變量變量 變量名變量名=數(shù)據(jù)數(shù)據(jù) 變量名變量名=表達(dá)式表達(dá)式 coscosRx sincosRy sinRz x=R*cos(theta)*cos(fai); y=R*cos(theta)*sin(fai); z=R*sin(theta); 緯度緯

2、度 經(jīng)度經(jīng)度 3/22 通信衛(wèi)星覆蓋地球表面積通信衛(wèi)星覆蓋地球表面積 RhS 2 R=6400;h=5400; S=2*pi*R*h S = 2.1715e+008 h R d dR d RS 2 2 R=6400;d=20200; S=2*pi*R*R*d/(R+d) S = 1.9544e+008 常數(shù)和變量常數(shù)和變量 4/33 例例2.2 格林威治天文臺建于格林威治天文臺建于1675年年, 其經(jīng)度為零其經(jīng)度為零,緯度為北緯緯度為北緯510。計(jì)算計(jì)算 格林威治天文臺在地心直角坐標(biāo)格林威治天文臺在地心直角坐標(biāo) 系中的坐標(biāo)并在球面上標(biāo)記系中的坐標(biāo)并在球面上標(biāo)記 X,Y,Z=sphere(24)

3、; mesh(X,Y,Z),hold on fai=0; theta=51*pi/180; x0=cos(theta)*cos(fai); y0=cos(theta)*sin(fai); z0=sin(theta); plot3(x0,y0,z0,ro,linewidth,2) view(124,30) 5/33 例例2.3 四邊形柱面繪圖原理和方法。四邊形柱面繪圖原理和方法。 設(shè)四邊形頂點(diǎn)為設(shè)四邊形頂點(diǎn)為(-1, -1), (1, -1), (1, 1), (-1, 1). 設(shè)柱面設(shè)柱面 高為高為1,創(chuàng)建創(chuàng)建Z坐標(biāo)矩陣坐標(biāo)矩陣 11111 00000 Z 創(chuàng)建柱面的創(chuàng)建柱面的X坐標(biāo)和坐標(biāo)和Y

4、矩陣矩陣 11111 11111 X 11111 11111 Y -1 0 1 -1 0 1 0 0.5 1 6/33 cylinder(R,N)創(chuàng)建單位高度繞創(chuàng)建單位高度繞Z軸旋轉(zhuǎn)曲面,軸旋轉(zhuǎn)曲面,R 為母線為母線,N表示圓圈上點(diǎn)數(shù)表示圓圈上點(diǎn)數(shù),N缺省默認(rèn)值為缺省默認(rèn)值為 20。 Cylinder % %單位高度二十邊形柱面單位高度二十邊形柱面 x,y,z=cylinder(1,1,4); mesh(x,y,z) % %單位高度四邊形柱面單位高度四邊形柱面 x,y,z=cylinder(1,0,3); mesh(x,y,z) % %單位高度的三角形錐面單位高度的三角形錐面 使用使用cyli

5、nder繪柱面繪柱面 7/33 + 加加 - 減減 * 乘乘 .* 點(diǎn)乘點(diǎn)乘 / 右除右除 ./ 點(diǎn)右除點(diǎn)右除 左除左除 . 點(diǎn)左除點(diǎn)左除 矩陣冪矩陣冪 . 點(diǎn)冪點(diǎn)冪 1 .算術(shù)運(yùn)算符算術(shù)運(yùn)算符2.關(guān)系運(yùn)算符關(guān)系運(yùn)算符 小于小于 大于大于 = 大于等于大于等于 = 等于等于 = 不等于不等于 3.邏輯運(yùn)算符邏輯運(yùn)算符 R=6400; S0=4*pi*R*R; S=2*pi*R*R*d/(R+d); S/S0*100 10/33 命令文件命令文件MATLAB命令的有序集合。命令的有序集合。 文件執(zhí)行文件執(zhí)行對文件中命令進(jìn)行批處理,即從第一對文件中命令進(jìn)行批處理,即從第一 條命令開始按順序執(zhí)行,直

6、到最后一條命令。如果條命令開始按順序執(zhí)行,直到最后一條命令。如果 中間某條命令出錯,則中斷并輸出錯誤信息中間某條命令出錯,則中斷并輸出錯誤信息 M文件分為文件分為命令文件命令文件和函數(shù)文件兩種和函數(shù)文件兩種 在編輯窗口中編寫在編輯窗口中編寫; 保存并對文件命名;保存并對文件命名; 命令窗口鍵入文件命令窗口鍵入文件 名運(yùn)行;名運(yùn)行; 觀察運(yùn)行結(jié)果;觀察運(yùn)行結(jié)果; 11/33 條件控制條件控制; 循環(huán)控制循環(huán)控制; 錯誤控制錯誤控制;終止運(yùn)行控制終止運(yùn)行控制 條件控制條件控制有選擇地運(yùn)行程序塊有選擇地運(yùn)行程序塊 1. if / elseif 語句語句 例例2 .8 判潤年程序判潤年程序 程序設(shè)計(jì)中

7、的流程控制 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 13/33 例例2.11 程序功能如下程序功能如下:把邊長為把邊長為2以原點(diǎn)為中心的正以原點(diǎn)為中心的正 方形旋轉(zhuǎn)方形旋轉(zhuǎn)pi/24,將其壓縮將其壓縮( (r=0.89),),重復(fù)重復(fù)24次并繪圖次并繪圖 xy=-1 -1;1 -1;1 1;-1 1;-1 -1; A=cos(pi/24) -s

8、in(pi/24); %創(chuàng)建正交矩陣創(chuàng)建正交矩陣 sin(pi/24) cos(pi/24); x=xy(:,1);y=xy(:,2); %提取坐標(biāo)數(shù)據(jù)提取坐標(biāo)數(shù)據(jù) line(x,y),pause(1) %畫線并暫停一秒畫線并暫停一秒 for k=1:24 xy=.89*xy*A; %旋轉(zhuǎn)并壓縮旋轉(zhuǎn)并壓縮 x=xy(:,1);y=xy(:,2); line(x,y),pause(1) end -1-0.500.51 -1 -0.5 0 0.5 1 14/33 例例 利用幀動畫方法演示馬鞍面旋轉(zhuǎn)過程。利用幀動畫方法演示馬鞍面旋轉(zhuǎn)過程。 M = moviein(24); x,y=meshgrid(

9、-6:.5:6); z=x.2-y.2; %創(chuàng)建馬鞍面坐標(biāo)數(shù)據(jù)創(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)旋轉(zhuǎn)15O axis square M(:,k)=getframe; %幀設(shè)計(jì)幀設(shè)計(jì) AZ=AZ+15; end movie(M,2) %幀播放幀播放 15/33 2. while循環(huán)循環(huán) 將循環(huán)體中語句循環(huán)執(zhí)行直到條件不成立為止將循環(huán)體中語句循環(huán)執(zhí)行直到條件不成立為止。 語法語法: while 條件表達(dá)式條件表達(dá)式 可執(zhí)行語句可執(zhí)行語句 end 條件表達(dá)式一般

10、由變量、數(shù)字、邏輯運(yùn)算、關(guān)系運(yùn)條件表達(dá)式一般由變量、數(shù)字、邏輯運(yùn)算、關(guān)系運(yùn) 算符和一般運(yùn)算符組成,以判斷循環(huán)的進(jìn)行和停止算符和一般運(yùn)算符組成,以判斷循環(huán)的進(jìn)行和停止; 只要表達(dá)式的值只要表達(dá)式的值(邏輯值邏輯值)結(jié)果為正確結(jié)果為正確(非非0),循環(huán)繼循環(huán)繼 續(xù);直到表達(dá)式值為續(xù);直到表達(dá)式值為0,循環(huán)停止。,循環(huán)停止。 程序設(shè)計(jì)中的循環(huán)控制 16/33 例例2.14 3n + 1 問題問題. n=input(input n=); %輸入數(shù)據(jù)輸入數(shù)據(jù) while n=1 r=rem(n,2); %求求n/2的余數(shù)的余數(shù) if r = =0 n=n/2 %第一種操作第一種操作 else n=3*n

11、+1 %第二種操作第二種操作 end end 對任一自然數(shù)對任一自然數(shù)n,按如下法則進(jìn)行運(yùn)算按如下法則進(jìn)行運(yùn)算:若若n為偶數(shù)為偶數(shù), 則將則將n除除2;若若n為奇數(shù)為奇數(shù),則將則將n乘乘3加加1。將運(yùn)算結(jié)果按將運(yùn)算結(jié)果按 上面法則繼續(xù)運(yùn)算上面法則繼續(xù)運(yùn)算, 重復(fù)若干次后結(jié)果最終是重復(fù)若干次后結(jié)果最終是1. n=5 16, 8, 4, 2, 1 程序設(shè)計(jì)中的流程控制 17/33 3. continue 命令命令 通常用于通常用于 for 或或 while 循環(huán)語句中循環(huán)語句中,與與 if 語句一起使語句一起使 用用,跳過本次循環(huán)跳過本次循環(huán),去執(zhí)行下一輪循環(huán)去執(zhí)行下一輪循環(huán) 4. break命令

12、命令 通常用于通常用于for或或while循環(huán)語句中循環(huán)語句中,與與if語句一起使用語句一起使用,中中 止本次循環(huán)止本次循環(huán),跳出最內(nèi)層循環(huán)跳出最內(nèi)層循環(huán) If 條件表達(dá)式,條件表達(dá)式,break, end 5. error(message) 顯示文本顯示文本 message,并中斷程序執(zhí)行,并中斷程序執(zhí)行 If 條件表達(dá)式條件表達(dá)式, error(message), end 程序設(shè)計(jì)中的流程控制 18/33 紅紅、綠兩隊(duì)從相距綠兩隊(duì)從相距100公里的地點(diǎn)同時出發(fā)相向行軍公里的地點(diǎn)同時出發(fā)相向行軍 紅隊(duì)速度為紅隊(duì)速度為10(公里公里/小時小時)綠隊(duì)速度為綠隊(duì)速度為8(公里公里/小時小時) 開始

13、時開始時,通訊員騎摩托從紅隊(duì)出發(fā)為行進(jìn)中的兩隊(duì)通訊員騎摩托從紅隊(duì)出發(fā)為行進(jìn)中的兩隊(duì) 傳遞消息。摩托車的速度為傳遞消息。摩托車的速度為60(公里公里/小時小時)往返于兩隊(duì)往返于兩隊(duì) 之間之間. 每遇一隊(duì)每遇一隊(duì),立即折回駛向另一隊(duì)立即折回駛向另一隊(duì).當(dāng)兩隊(duì)距離小當(dāng)兩隊(duì)距離小 于于0.2公里時公里時,摩托車停止。計(jì)算通訊員駕駛摩托車跑摩托車停止。計(jì)算通訊員駕駛摩托車跑 了多少趟了多少趟(從一隊(duì)駛向另一隊(duì)為一趟從一隊(duì)駛向另一隊(duì)為一趟)。 例例2.15 摩托車問題摩托車問題 19/33 將紅隊(duì)、綠隊(duì)和摩托車假設(shè)為將紅隊(duì)、綠隊(duì)和摩托車假設(shè)為A、B、C三個點(diǎn)三個點(diǎn). . A點(diǎn)初始位置點(diǎn)初始位置A=0, 速

14、度速度va=10 (運(yùn)動向右運(yùn)動向右); B點(diǎn)初始位置點(diǎn)初始位置B=100, 速度速度vb=8(運(yùn)動向左運(yùn)動向左); C點(diǎn)點(diǎn)初始位置初始位置C=0, 速度速度vc=60 (f=1表示表示運(yùn)動運(yùn)動方向方向) ) 當(dāng)當(dāng)C向右運(yùn)動時向右運(yùn)動時, C、B相遇時間相遇時間: tk= (B A)/(8+60) 當(dāng)當(dāng)C向左運(yùn)動時向左運(yùn)動時,A、C相遇時間相遇時間: tk= (B A)/(60+10) 利用相遇時間利用相遇時間tk、及時計(jì)算、及時計(jì)算A, B的最新的最新位置位置 當(dāng)當(dāng) (B A)0.2 if f= =1 tk=(B-A)/(vb+vc); else tk=(B-A)/(vc+va); end

15、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 21/33 function 返回返回變量列表變量列表函數(shù)名函數(shù)名(輸入輸入變量列表變量列表) %注解說明注解說明 輸入變量檢測輸入變量檢測,輸出變量檢測輸出變量檢測 函數(shù)體函數(shù)體 函數(shù)文件的編寫函數(shù)文件的編寫 函數(shù)內(nèi)所有變量是局部變量,既不

16、影響其他函數(shù)內(nèi)所有變量是局部變量,既不影響其他M文件文件 中同名變量,也不被其他中同名變量,也不被其他M文件中同名變量所影響文件中同名變量所影響 函數(shù)文件中的輸出變量要等于某個確定的表達(dá)式函數(shù)文件中的輸出變量要等于某個確定的表達(dá)式 函數(shù)文件的第一行必須按特定格式書寫函數(shù)文件的第一行必須按特定格式書寫 22/33 輸入輸入/輸出輸出 變量檢測命令變量檢測命令:nargin 、 nargout 當(dāng)函數(shù)文件被用戶調(diào)用時當(dāng)函數(shù)文件被用戶調(diào)用時(程序執(zhí)行時程序執(zhí)行時) nargin返回函數(shù)被調(diào)用時輸入變量的個數(shù)。返回函數(shù)被調(diào)用時輸入變量的個數(shù)。 nargout返回當(dāng)函數(shù)被調(diào)用時輸出變量的個數(shù)。返回當(dāng)函數(shù)

17、被調(diào)用時輸出變量的個數(shù)。 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 楊輝三角形楊輝三角形 23/33 例例2.19 設(shè)設(shè)地球半徑地球半徑6400km, ,以以150經(jīng)差繪三維地球。經(jīng)差繪三維地球。 function earthface() R=6400; theta,fai=meshgrid(-90:15:90,-180:15:180); theta=theta*pi/180;fai=f

18、ai*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 off 特例之一:無輸入無輸出變量的函數(shù)文件特例之一:無輸入無輸出變量的函數(shù)文件 15 函數(shù)文件的編寫函數(shù)文件的編寫 24/33 1 2 n ABC 例例2.24 Hanoi問題問題( (遞歸算法遞歸算法) 有有A、B、C三個塔柱。柱三個塔柱。柱A上上n個有孔圓盤,由上而下個有孔圓盤,由上而下 由小到大疊放。要將柱由小到大疊放。要將柱A上圓盤移到柱上圓盤移到柱C上,并仍按同

19、上,并仍按同 樣順序疊放。移動圓盤過程中,不允許大圓盤壓小圓樣順序疊放。移動圓盤過程中,不允許大圓盤壓小圓 盤,可將圓盤移至盤,可將圓盤移至A,B,C中任何一柱上。中任何一柱上。 25/33 問題分析:問題分析:n張盤片,張盤片,A、B、C三根柱子三根柱子 將將A做為開始塔柱做為開始塔柱,C為目標(biāo)塔柱為目標(biāo)塔柱,B為中間塔柱為中間塔柱。要要 列出整個轉(zhuǎn)移的操作過程,應(yīng)用遞歸技術(shù)。列出整個轉(zhuǎn)移的操作過程,應(yīng)用遞歸技術(shù)。 將將A上的上的n-1個盤轉(zhuǎn)移到個盤轉(zhuǎn)移到B上上 將將A上第上第n號盤轉(zhuǎn)移到號盤轉(zhuǎn)移到C上上 將將B上的上的n-1個盤轉(zhuǎn)移到個盤轉(zhuǎn)移到C上上。 第一步是第一步是n-1個盤問題個盤問

20、題(A開始,開始, C中間,中間, B目標(biāo)目標(biāo)); 第二步是第二步是1個盤問題;個盤問題; 第三步是第三步是n-1個盤問題個盤問題(B開始,開始, A中間,中間, C目標(biāo)目標(biāo))。 將三步操作按次序編寫函數(shù)文件,第一步操作和第三將三步操作按次序編寫函數(shù)文件,第一步操作和第三 步操作需要調(diào)用函數(shù)本身,即自己調(diào)用自己。步操作需要調(diào)用函數(shù)本身,即自己調(diào)用自己。 26/33 if nargin=1, A= A;B= B;C= C;end if n=1 disp(strcat(No,int2str(n),:,A, - ,C) else hanoi(n-1,A,C,B); disp( strcat(No,i

21、nt2str(n),:,A, - ,C) hanoi(n-1,B,A,C); end 遞歸技術(shù)實(shí)現(xiàn)的關(guān)鍵是設(shè)置邊界條件(即一個盤遞歸技術(shù)實(shí)現(xiàn)的關(guān)鍵是設(shè)置邊界條件(即一個盤 的情況)。程序運(yùn)行結(jié)果表明,三個盤的漢諾塔的情況)。程序運(yùn)行結(jié)果表明,三個盤的漢諾塔 問題需要七步操作。問題需要七步操作。 function hanoi(n,A,B,C) %n-圓盤數(shù)圓盤數(shù),A-開始開始,B-中間中間,C-目標(biāo)目標(biāo) 27/33 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

22、: A - C No1: B - C No2: 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 28/33 數(shù)據(jù)文件的輸入方法數(shù)據(jù)文件的輸入方法 對于大型矩陣,用文本文件錄入數(shù)據(jù),并用對于大型矩陣,用文本文件錄入數(shù)據(jù),并用load命命 令將數(shù)據(jù)載入。具體使用格式為令將數(shù)據(jù)載入。具體使用格式為 load(filename.txt) 或或load filena

23、me.txt 其中,其中,filename是文件名,如是文件名,如data.txt。如果數(shù)據(jù)文件。如果數(shù)據(jù)文件 上載成功,則文件名就成為變量名。上載成功,則文件名就成為變量名。 例例 某數(shù)學(xué)課成績由三部分構(gòu)成:平時某數(shù)學(xué)課成績由三部分構(gòu)成:平時10%,期中,期中 30%,期末,期末60%。一個行政班學(xué)生成績數(shù)據(jù)如下。一個行政班學(xué)生成績數(shù)據(jù)如下 編號編號平時成績平時成績期中成績期中成績期末成績期末成績 1 99 98 97 2 89 95 93 29/33 將成績輸入數(shù)據(jù)文件,按成績構(gòu)成比例計(jì)算每位同學(xué)將成績輸入數(shù)據(jù)文件,按成績構(gòu)成比例計(jì)算每位同學(xué) 的最后成績,并統(tǒng)計(jì)出各分?jǐn)?shù)段的人數(shù)及百分比。的

24、最后成績,并統(tǒng)計(jì)出各分?jǐn)?shù)段的人數(shù)及百分比。 用記事本將成績錄入用記事本將成績錄入, ,存為文存為文 本文件本文件datas.txt 將該文件拷貝到將該文件拷貝到MATLAB 工工 作目錄作目錄( (work)下下; ; 在 命 令 窗 口 用 命 令在 命 令 窗 口 用 命 令 l o a d datas.txt將數(shù)據(jù)文件裝入內(nèi)存將數(shù)據(jù)文件裝入內(nèi)存 30/33 處理數(shù)據(jù)程序如下:處理數(shù)據(jù)程序如下: score=0.1*datas(:,1)+0.3*datas(:,2)+0.6*datas(:,3); N=length(score); %統(tǒng)計(jì)總?cè)藬?shù)統(tǒng)計(jì)總?cè)藬?shù) II=find(score=60 F 4 = l e n g t h ( I I ) ; fansu=F0,F1,F2,F3,F4 %顯示各分?jǐn)?shù)段人數(shù)顯示各分?jǐn)?shù)段人數(shù) format bank R=fansu/N %顯示各百分比顯示各百分比 31/33 牟合方蓋的幾何圖形牟合方蓋的幾何圖形 繪制柱面繪制柱面x2 + y2 = R2與柱面與柱面x2 + z2 =R2所圍立體在所圍立體在x-y 平面上半部分

溫馨提示

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

評論

0/150

提交評論