matlab三邊測量算法橫縱坐標圖解=_第1頁
matlab三邊測量算法橫縱坐標圖解=_第2頁
matlab三邊測量算法橫縱坐標圖解=_第3頁
matlab三邊測量算法橫縱坐標圖解=_第4頁
matlab三邊測量算法橫縱坐標圖解=_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、MATLAB 程序設(shè)計方法程序設(shè)計方法 I命令文件命令文件( (程序文件程序文件) )表達式和運算符表達式和運算符程序設(shè)計中的流程控制程序設(shè)計中的流程控制練習與思考題練習與思考題2/22表達式表達式由變量、運算符、函數(shù)、數(shù)字組成由變量、運算符、函數(shù)、數(shù)字組成球坐標變換球坐標變換表達式和運算符表達式和運算符用賦值語句創(chuàng)建用賦值語句創(chuàng)建變量變量 變量名變量名=數(shù)據(jù)數(shù)據(jù) 變量名變量名=表達式表達式 coscosRx sincosRy sinRz x=R*cos(theta)*cos(fai);y=R*cos(theta)*sin(fai);z=R*sin(theta); 緯度緯度經(jīng)度經(jīng)度3/22例例

2、2.2 格林威治天文臺建于格林威治天文臺建于1675年年,其緯度為北緯其緯度為北緯510。設(shè)地球半徑為設(shè)地球半徑為R=6400(km),試計算格林威治天試計算格林威治天文臺在地心直角坐標系中的坐標文臺在地心直角坐標系中的坐標 R=6400;fai=0; theta=51*pi/180; x=R*cos(theta)*cos(fai);y=R*cos(theta)*sin(fai);z=R*sin(theta);Op=x,y,z Op = 4027.65 0 4973.734/22+ 加加 - 減減 * 乘乘 .* 點乘點乘/ 右除右除 ./ 點右除點右除 左除左除 . 點左除點左除 矩陣冪矩陣

3、冪 . 點冪點冪1 .算術(shù)運算符算術(shù)運算符2.關(guān)系運算符關(guān)系運算符 小于小于 大于大于 = 大于等于大于等于 = 等于等于 = 不等于不等于3.邏輯運算符邏輯運算符 & 與與 (and) | 或或 (or) 非非 (not)表達式和運算符表達式和運算符5/22運算優(yōu)先級運算優(yōu)先級函數(shù)運算函數(shù)運算算術(shù)運算算術(shù)運算關(guān)系運算關(guān)系運算邏輯運算邏輯運算exp()、log()、sin()、abs()、fix()、.、.*、./、*、/、+、;、;、=、=、=&、|表達式表達式 (1+fix(pi)*mod(2,4)+2*32結(jié)果為結(jié)果為ans=26;三角形任意兩邊之和大于第三邊的邏輯表達式

4、三角形任意兩邊之和大于第三邊的邏輯表達式 (A) a+b=c | a+c=b | b+c=a (B) a+b=c | a+c=b | b+cc | a+cb | b+ca (D) a+bc & a+cb & b+ca 6/22命令文件計算機程序主要功能計算機程序主要功能接收數(shù)據(jù)和處理數(shù)據(jù)接收數(shù)據(jù)和處理數(shù)據(jù),并將并將處理后的數(shù)據(jù)完整有效地提供給用戶處理后的數(shù)據(jù)完整有效地提供給用戶例例2.1 將地球模型取為半徑為將地球模型取為半徑為R=6400(km)的球體的球體,計算高度為計算高度為1萬公里的地球同步衛(wèi)萬公里的地球同步衛(wèi)星對地面的覆蓋率星對地面的覆蓋率在在編輯窗口編輯窗口編寫文件

5、編寫文件 planet.m在在命令窗口命令窗口鍵入鍵入 planet結(jié)果顯示結(jié)果顯示: ans = 30.4878R=6400;S0=4*pi*R*R;d=10000;S=2*pi*R*R*d/(R+d);S/S0*1007/22命令文件命令文件MATLAB命令的有序集合。命令的有序集合。 文件執(zhí)行文件執(zhí)行對文件中命令進行批處理,即從第一對文件中命令進行批處理,即從第一條命令開始按順序執(zhí)行,直到最后一條命令。如果條命令開始按順序執(zhí)行,直到最后一條命令。如果中間某條命令出錯,則中斷并輸出錯誤信息中間某條命令出錯,則中斷并輸出錯誤信息M文件分為文件分為命令文件命令文件和函數(shù)文件兩種和函數(shù)文件兩種在

6、編輯窗口中編寫在編輯窗口中編寫;保存并對文件命名;保存并對文件命名;命令窗口鍵入文件命令窗口鍵入文件名運行;名運行;觀察運行結(jié)果;觀察運行結(jié)果;8/22例例2.3直線平行于直線平行于Z Z軸沿軸沿x-y平面上的四邊形移動,形平面上的四邊形移動,形成四邊形柱面。利用矩陣方法繪制四邊形柱面成四邊形柱面。利用矩陣方法繪制四邊形柱面. . 設(shè)四邊形頂點為設(shè)四邊形頂點為(-1, -1), (1, -1), (1, 1), (-1, 1).由于四邊由于四邊形是封閉的圖形,將第五個點設(shè)為第一個點。設(shè)柱面形是封閉的圖形,將第五個點設(shè)為第一個點。設(shè)柱面高為高為1,創(chuàng)建創(chuàng)建Z坐標矩陣坐標矩陣 1111100000

7、Z創(chuàng)建柱面的創(chuàng)建柱面的X坐標和坐標和Y矩陣矩陣 1111111111X 1111111111Y-101-10100.519/22x=-1,1,1,-1,-1; %確定四邊形確定四邊形X坐標坐標y=-1,-1,1,1,-1; %確定四邊形確定四邊形Y坐標坐標X=1;1*x ;Y=1;1*y; %創(chuàng)建創(chuàng)建X和和Y坐標矩陣坐標矩陣Z=0;1*ones(1,5); %創(chuàng)建柱面創(chuàng)建柱面Z坐標矩陣坐標矩陣mesh(X,Y,Z) %繪圖繪圖colormap(0 0 0) %設(shè)定黑色設(shè)定黑色axis off %去掉坐標框架去掉坐標框架按順序錄入以下語句創(chuàng)建程序文件按順序錄入以下語句創(chuàng)建程序文件cylind1.

8、m比較比較cylinder(1,1,4)-101-10100.5110/22例例2.7 成都地理位置成都地理位置: :北緯北緯30o, ,東經(jīng)東經(jīng)104o; ;北京地理位北京地理位置置: :北緯北緯40o, ,東經(jīng)東經(jīng)116o。計算兩城市距離近似值。計算兩城市距離近似值。 由兩城市經(jīng)緯度可計算出地心直角坐標系的坐標由兩城市經(jīng)緯度可計算出地心直角坐標系的坐標P1( (x1,y1,z1) ),P2( (x2,y2,z2) )向徑之間的角度向徑之間的角度 )arccos(2212121Rzzyyxx 球面短程線計算公式球面短程線計算公式 RL輸入經(jīng)緯度數(shù)據(jù)和地球半徑;輸入經(jīng)緯度數(shù)據(jù)和地球半徑;轉(zhuǎn)換兩

9、城市的經(jīng)緯度為地心直角坐標數(shù)據(jù);轉(zhuǎn)換兩城市的經(jīng)緯度為地心直角坐標數(shù)據(jù);提取兩個點的向徑坐標;提取兩個點的向徑坐標;計算向徑間的夾角和短程線長度并輸出計算結(jié)果計算向徑間的夾角和短程線長度并輸出計算結(jié)果。11/22datas=30,104;40,116; % %輸入經(jīng)緯度數(shù)據(jù)輸入經(jīng)緯度數(shù)據(jù)R=6400;theta=datas(:,1)*pi/180; %弧度制轉(zhuǎn)換弧度制轉(zhuǎn)換fai=datas(:,2)*pi/180;x=R*cos(theta).*cos(fai); %直角坐標轉(zhuǎn)換直角坐標轉(zhuǎn)換y=R*cos(theta).*sin(fai);z=R*sin(theta);Op1=x(1),y(1)

10、,z(1); %第一城市坐標第一城市坐標Op2=x(2),y(2),z(2); %第二城市坐標第二城市坐標d=R*acos(Op1*Op2/(R*R) % %計算并顯示距離計算并顯示距離 按順序錄入程序文件按順序錄入程序文件(文件名文件名:distance.m)在命令窗口運行程序在命令窗口運行程序distance,屏幕將顯示屏幕將顯示:d =1563.4212/22條件控制條件控制; 循環(huán)控制循環(huán)控制; 錯誤控制錯誤控制;終止運行控制終止運行控制條件控制條件控制有選擇地運行程序塊有選擇地運行程序塊1. if / elseif 語句語句例例2 .8 判潤年程序判潤年程序程序設(shè)計中的流程控制yea

11、r=input(input year:=);n1=year/4;n2=year/100;n3=year/400;if n1=fix(n1)&n2=fix(n2) disp(是潤年是潤年)elseif n1=fix(n1)&n3=fix(n3) disp(是潤年是潤年)else disp(不是潤年不是潤年)end潤年條件有二潤年條件有二能被能被4整除,但整除,但不能被不能被100整除;整除;能被能被4整除,又整除,又能被能被400整除。整除。13/221. for 循環(huán)循環(huán)語法語法: for 變量變量 =初值初值:步長:終值步長:終值 可執(zhí)行語句可執(zhí)行語句 end程序設(shè)計中的循環(huán)

12、控制例例2.10 裴波拉奇數(shù)列裴波拉奇數(shù)列 n=input(input n:=); f(1)=1;f(2)=1; for k=3:n f(k)=f(k-1)+f(k-2); end f(n)f(44)=70140873314/22例例2.11 程序功能如下程序功能如下:把邊長為把邊長為2以原點為中心的正以原點為中心的正方形旋轉(zhuǎn)方形旋轉(zhuǎn)pi/24,將其壓縮將其壓縮( (r=0.89),),重復重復24次并繪圖次并繪圖 xy=-1 -1;1 -1;1 1;-1 1;-1 -1; A=cos(pi/24) -sin(pi/24); %創(chuàng)建正交矩陣創(chuàng)建正交矩陣 sin(pi/24) cos(pi/24

13、); x=xy(:,1);y=xy(:,2); %提取坐標數(shù)據(jù)提取坐標數(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.500.5115/22例例2.12空間四面體底面是一三角形空間四面體底面是一三角形,將三角形三個頂將三角形三個頂點與四面體頂部的頂點相連接就形成三角形錐面點與四面體頂部的頂點相連接就形成三角形錐面。利利用用MATLAB的幀動畫方法演示一個四面體旋轉(zhuǎn)過程。的幀動畫方法演示

14、一個四面體旋轉(zhuǎn)過程。 M = moviein(16);X,Y,Z=cylinder(1,0,3); %創(chuàng)建四面體坐標創(chuàng)建四面體坐標A=cos(pi/8) -sin(pi/8);sin(pi/8) cos(pi/8);for k=1:16 mesh(X,Y,Z),axis off %繪圖繪圖 colormap(0 0 1),view(-30,40) M(:,k)=getframe; %幀設(shè)計幀設(shè)計 xy=A*X(1,:);Y(1,:); %旋轉(zhuǎn)旋轉(zhuǎn) x=xy(1,:);X=1;0*x; %坐標提取擴充矩陣坐標提取擴充矩陣 y=xy(2,:);Y=1;0*y;endmovie(M,5) %幀播放幀

15、播放 16/222. while循環(huán)循環(huán) 將循環(huán)體中語句循環(huán)執(zhí)行直到條件不成立為止將循環(huán)體中語句循環(huán)執(zhí)行直到條件不成立為止。 語法語法: while 條件表達式條件表達式 可執(zhí)行語句可執(zhí)行語句 end條件表達式一般由變量、數(shù)字、邏輯運算、關(guān)系運條件表達式一般由變量、數(shù)字、邏輯運算、關(guān)系運算符和一般運算符組成,以判斷循環(huán)的進行和停止算符和一般運算符組成,以判斷循環(huán)的進行和停止;只要表達式的值只要表達式的值(邏輯值邏輯值)結(jié)果為正確結(jié)果為正確(非非0),循環(huán)繼循環(huán)繼續(xù);直到表達式值為續(xù);直到表達式值為0,循環(huán)停止。,循環(huán)停止。程序設(shè)計中的循環(huán)控制17/22 例例2.14 3n + 1 問題問題.

16、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+1 %第二種操作第二種操作 endend 對任一自然數(shù)對任一自然數(shù)n,按如下法則進行運算按如下法則進行運算:若若n為偶數(shù)為偶數(shù),則將則將n除除2;若若n為奇數(shù)為奇數(shù),則將則將n乘乘3加加1。將運算結(jié)果按將運算結(jié)果按上面法則繼續(xù)運算上面法則繼續(xù)運算, 重復若干次后結(jié)果最終是重復若干次后結(jié)果最終是1. n=5 16, 8, 4, 2, 1程序設(shè)計中的流程控制18/223. continue 命令命

17、令通常用于通常用于 for 或或 while 循環(huán)語句中循環(huán)語句中,與與 if 語句一起使語句一起使用用,跳過本次循環(huán)跳過本次循環(huán),去執(zhí)行下一輪循環(huán)去執(zhí)行下一輪循環(huán)4. break命令命令通常用于通常用于for或或while循環(huán)語句中循環(huán)語句中,與與if語句一起使用語句一起使用,中中止本次循環(huán)止本次循環(huán),跳出最內(nèi)層循環(huán)跳出最內(nèi)層循環(huán)If 條件表達式,條件表達式,break, end5. error(message)顯示文本顯示文本 message,并中斷程序執(zhí)行,并中斷程序執(zhí)行If 條件表達式條件表達式, error(message), end程序設(shè)計中的流程控制19/22如果一個正整數(shù)如果一

18、個正整數(shù) n 只能被只能被1和它自身整除,則稱這個和它自身整除,則稱這個數(shù)為素數(shù)數(shù)為素數(shù)(或質(zhì)數(shù)或質(zhì)數(shù))。例如:。例如:2、3、5、7、11、例例2.16 用試商法判別素數(shù)用試商法判別素數(shù)n=input(input n:=); for k=2:n-1 if mod(n,k)=0,break,end %中止循環(huán)中止循環(huán)endif k heroinput a:=3input b:=4input c:=8? Error using = hero輸入錯誤輸入錯誤, ,三角形兩邊之和大于第三邊三角形兩邊之和大于第三邊if a+bc | a+cb | b+ca error(輸入錯誤輸入錯誤,三角形兩邊之和大于第三邊三角形兩邊之和大于第三邊)end21/22立方倍積問題實驗。作一立方體立方倍積問題實驗。作一立方體,使其體積等于單位正使其體積等于單位正方體的兩倍方體的兩倍.對邊長取不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論