三本數(shù)學實驗課件3.ppt_第1頁
三本數(shù)學實驗課件3.ppt_第2頁
三本數(shù)學實驗課件3.ppt_第3頁
三本數(shù)學實驗課件3.ppt_第4頁
三本數(shù)學實驗課件3.ppt_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、M 文件,大家已熟悉了 MATLAB 命令窗口的一些操作,它簡單,得結果方便.但這個窗口也有不便之處:當需要幾十乃至更多的語句去得到一個結果時,命令窗口的操作將很不方便.一是每一次換行(回車)要執(zhí)行語句,使得窗口很亂,二是當一個命令因為錯誤而執(zhí)行了,與它相關的命令都要重新執(zhí)行一遍,這很麻煩.克服這一缺陷的方法是編制M 文件,這需在Editor窗口進行. Editor窗口的打開:在命令窗口中點 FileNew M-file或直接點擊上面的白色標志,就打開了Editor窗口.如果過去已制作過M 文件,則通過File-Open打開那個文件也打開了Editor窗口. 在Editor窗口,所有的語句當編

2、輯完成后才統(tǒng)一的執(zhí)行,方便應用.,M文件的起名:文件的名字不要用中文、數(shù)字開頭,要用英文字母開頭,而且要保存在默認的地址中,不要保存在個人的文件夾中. 對文件的內容可以做注釋,注釋用”%”即可,在”%”后的內容將不被執(zhí)行. 執(zhí)行方法,點擊標志Debug run或快捷標志或在命令窗口中輸入文件名并按回車,而結果則在命令窗口顯示.,例如 X=1.2 % self variable Y=23.5, % self variable Z=xy-3x+y/5-23 % result 練習: 已知x=4.5,y=67.2,制作文件求 z=xy+xy-1.4x2+2.8y3-123 的值并給予注釋,控制流,當

3、對大量有規(guī)律的數(shù)據處理時,需要用控制流。它們由幾個結構組成,分別介紹如下 if-else-end結構,其一般結構有三種 if 條件表達式 語句體 end 語句的執(zhí)行過程是:首先檢驗條件表達式,滿足了就執(zhí)行語句體,不滿足就不執(zhí)行。,2。 if 條件表達式 語句體 else 語句體 end 3. if 表達式 語句體 elseif 語句體 else 語句體 end 執(zhí)行過程是:遇到第一個滿足條件的執(zhí)行相應的語句體,否則執(zhí)行else后面的語句,而后跳出循環(huán)。,例: 輸入任意的x值,求函數(shù)值y,其中 程序如下 clc x=input(x=) if x=0 y=x+1, else y=x-1, end,

4、例: 輸入任意的x值,求函數(shù)值,其中 程序如下 clc x=input(x=) if x0 y=pi-1, elseif x3 y=2*exp(x)-1, else y=sin(2*x)+34.5-6 end,練習,編制文件對任意的自變量求函數(shù)值,函數(shù)如下,for 循環(huán),結構如下 for x=一維數(shù)組 內容 end 執(zhí)行規(guī)則是:對數(shù)組中的每個元素,內容依次執(zhí)行一次。 如:對n=100分別求,clc n=100; he=0; ji=1; for k=1:n he=he+1/k; ji=ji*k; end he,ji,練習,分別求級數(shù)的前1000項和,while循環(huán),結構如下 while 表達式

5、內容 end 執(zhí)行規(guī)則是:當表達式成立時對內容執(zhí)行,接著再檢查表達式、執(zhí)行,直到表達式不成立才跳出循環(huán)。 例: 3X+1問題(世界難題) 對任意正整數(shù)n, 若n為偶數(shù),則用n/2得另一個正整數(shù);若n為奇數(shù),則用(3n+1)/2得另一個正整數(shù)。如此下去,對任意正整數(shù)最后必然得到1,如35 8 4 2 1。試編程驗證。,clc n=3; while n(end)1 if mod(n(end),2)=0 n=n n(end)/2; else n=n (3*n(end)+1)/2; end end n 另:switch-case語句的用法類似于if-else語句,但一般針對符號變量,這里省略。此外,

6、break語句的作用是中斷循環(huán),continue也類似,return用的少,易出問題,此處略去.,又一個例子:用二分法找出方程2x3-4x2+3x-8=0在(-10,10)內的一個根,精確到10-4. 分析: 連續(xù)函數(shù)f(x)在a,b上若滿足, f(a)f(b)0,則f(x)=0在 (a,b)內必有一根。二分法的原理是求出f(a+b)/2),若 f(a) f(a+b)/2) 0,則這個根在(a, (a+b)/2 )內,反之,在( (a+b)/2 ,b)。反復下去,直到滿足精度后取區(qū)間中點作為根即可,程序如下,clc x=-10,10 f1=2*x(1)3-4*x(1)2+3*x(1)-8 f2

7、=2*x(2)3-4*x(2)2+3*x(2)-8 while abs(x(1)-x(2)1e-4 t=(x(1)+x(2)/2 ft=2*t3-4*t2+3*t-8 if f1*ft0 x(2)=t f2=ft else x(1)=t f1=ft end end t,再一個例子:找出100內的所有質數(shù). 分析:質數(shù)是除了1和自身外不能被其它整數(shù)整除的自然數(shù).反過來,若一個數(shù)不是質數(shù),它必能分解成兩數(shù)之積,而這兩數(shù)中至少有一個小于等于其平方根.據此,編程如下,zhishu=2 3; %the first two primes for m=4:100 flag=1; for n=2:floor(

8、sqrt(m) if mod(m,n)=0 flag=0; break; end end if flag=1 zhishu=zhishu m; end end zhishu,作業(yè): 1(百錢買百雞)買一只大公雞要3塊錢,老母雞要2塊錢,而1塊錢可買3只小雞.今某人100塊錢恰買了100只雞,問他公雞,母雞,小雞各買了幾只? 2 利用e=1+1+1/2!+1/3!+ 求e的近似值,用format long格式顯示高精度. 3 猴子吃桃問題。猴子第一天摘下若干個桃子,當即吃下一半,還不過癮,又多吃了一個,第二天早上又將剩下的桃子吃一半,又多吃一個。以后每天早上都吃了前一天剩下的一半零一個,到第10

9、天早上想再吃時,見只剩下一個。問前面幾天每天有幾個桃子. 4 用二分法找出方程ex-x-4=0在(0,4)內的一個根,精確到10-4. 5 輸入任意兩個正整數(shù),編程求其最小公倍數(shù)與最大公約數(shù)。,自己編函數(shù):有時,我們需要自己編制函數(shù),以便在程序中不斷使用。自己編制方法如下,function 函數(shù)名稱 % 說明。它會在help時顯示 根據自變量計算因變量的內容 要說明的是,將文件保存時,文件名用默認的名稱。 例:求圓面積的函數(shù),function y=yuanmianji(x) % This function is used to computer the area of a cycle if x

10、0 error(x must be positive); end y=pi*x2; 練習:編一個函數(shù),求球的體積,輸入半徑得體積。,二維做圖,命令格式:plot(X,Y,s) .其中X,Y為同維數(shù)值向量,命令分別用X,Y的對應值為橫,縱坐標描點,再將點相連做圖,s是對線型的設置。現(xiàn)在0,2上做正弦函數(shù)圖象,程序為: clc x=2*pi*(0:0.25:1) y=sin(x) plot(x,y) 對線型的設置有-,:,-,o,+,*,默認的是-,顏色的設置略去(線型和顏色可省略). 練習:在0,2上做余弦函數(shù)圖象.,當要同時作出多條函數(shù)的圖象時,命令格式如下: plot(X1,Y1,s1,X2

11、,Y2,s2,) .方法是每三項為一組做曲線,同時繪制多條曲線。 例:在同一坐標系下畫出y=sinx,y=cos2x和y=0.2e0.1xsin(0.5x) 在區(qū)間0,2上的曲線圖,程序如下,x=0:0.1:2*pi; y1=sin(x); y2=cos(2*x); y3=0.2*exp(0.1*x).*sin(0.5*x); plot(x,y1,x,y2,x,y3); 練習:在同一坐標系下畫出 y=cos x,y=sin2x,和y=x/(1+x2)在區(qū)間-10,10上的曲線圖,有時,我們需要給圖形起名字,并給予標注,現(xiàn)分別介紹 title(名字):給圖形起名字的名稱 xlabel(橫軸名):

12、給x軸起橫軸名的名稱 ylabel(縱軸名):給y軸起縱軸名的名稱 gtext(標注):在生成圖形中的任意位置給標注的標注 例:在同一坐標系下畫出y=sinx,y=cos2x,和y=0.2e0.1xcos(0.5x)在區(qū)間0,2上的曲線圖,并給起名字和標注,x=0:0.1:2*pi; y1=sin(x); y2=cos(2*x); y4=0.2*exp(0.1*x).*cos(0.5*x); plot(x,y1,x,y2,x,y4); title(three curves) xlabel(x) ylabel(y) gtext(y=sin(x) gtext(y=cos(2x) 當用copy fi

13、gure可將得到的圖形復制到word中,練習:在同一坐標系下畫出 y=cos x,y=sin2x,和y=x/(1+x2)在區(qū)間-10,10上的曲線圖,并給圖和坐標起名字和標注。,三維曲線的繪制,命令為plot3, 使用方法與plot相似,下面舉例說明 例畫出三維螺旋線x=2cost,y=2sint,z=0.5t,在0,5上的圖形,程序為,t=0:0.1:5*pi; x=2*cos(t); y=2*sin(t); z=0.5*t; plot3(x,y,z) 練習:畫出三維曲線x=2tcost,y=2tsint,z=3t,在1,5上的圖形,并為它標坐標并起名字,空間曲面的繪制 不妨設z為因變量,x

14、, y為自變量。繪制方法是首先在適當?shù)拈]區(qū)間上生成x, y的等距節(jié)點,而后再生成平面上相應矩形區(qū)域內長方形的網格點,命令為meshgrid,算出這些點處的z值,根據x,y,z的值用surf或mesh命令描點相連做圖。 例:在適當區(qū)域內畫出馬鞍面Z=x2-y2的圖形 ,程序為,x=-2:0.1:2; y=-2:0.1:2; X,Y=meshgrid(x,y); Z=X.2-Y.2; surf(X,Y,Z) 也可以給所得曲面添圖名,坐標名,并給圖形進行顏色等處理或給某一點標注,此處略去,想了解的請看有關書籍。 練習:在適當區(qū)域內畫出旋轉拋物面Z=x2+y2的圖形。,有的曲面,在矩形區(qū)域內畫出來很難

15、看,需要在一個圓形區(qū)域上畫,這時可用NaN命令,請看下面例子。 例:在適當圓形區(qū)域內畫出旋轉拋物面Z=x2+y2的圖形。,x=-2:0.1:2; y=-2:0.1:2; X,Y=meshgrid(x,y); Z=X.2+Y.2; ii=find(X.2+Y.24); Z(ii)=NaN; mesh(X,Y,Z) 練習:畫出Z=(4-x2-y2)0.5的圖形。,有時,我們需要在同一個坐標系下畫出多個曲面。這時,可用hold on命令,其意義是后面的曲面不覆蓋前面的曲面,這就意味著同時畫多個曲面。hold off是解除hold on命令。 例:在適當區(qū)域內畫出Z=x2-y2和z=1+x-y的圖形 ,程序為,x=-2:0.1:2; y=-2:0.1:2; X,Y=meshgrid(x,y); Z=X.2-Y.2; Z1=1+X-Y; surf(X,Y,Z) hold on surf(X,Y,Z1) 練習:在適當區(qū)域內畫出Z=x2+y2和z=3-x+y的圖形。,程序的查錯,在編程過程中,難免會發(fā)生錯誤.當錯誤是由程序本身引起

溫馨提示

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

評論

0/150

提交評論