數(shù)學(xué)實驗3-matlab編程._第1頁
數(shù)學(xué)實驗3-matlab編程._第2頁
數(shù)學(xué)實驗3-matlab編程._第3頁
數(shù)學(xué)實驗3-matlab編程._第4頁
數(shù)學(xué)實驗3-matlab編程._第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 數(shù)學(xué)實驗數(shù)學(xué)實驗 理學(xué)院數(shù)學(xué)學(xué)科理學(xué)院數(shù)學(xué)學(xué)科 李換琴李換琴 信息信息11、12、13班上機時間安排班上機時間安排 第第7周周日周周日(10月月16日日)14:00-15:50 第第9周周六周周六(10月月29日日)14:00-15:50 第第11周周六周周六(11月月12日日)10:00-11:50 第第13周周日周周日(11月月27日日)14:00-15:50 第第14周周六周周六(12月月3日日)14:00-15:50 信息信息14、15、16班上機時間安排班上機時間安排 第第7周周日周周日(10月月16日日)16:00-17:50 第第9周周六周周六(10月月29日日)16:00-1

2、7:50 第第11周周六周周六(11月月12日日)12:00-13:50 第第13周周日周周日(11月月27日日)16:00-17:50 第第14周周六周周六(12月月3日日)16:00-17:50 醫(yī)電醫(yī)電1113班班和生基碩和生基碩11班班 第第7周周日周周日(10月月16日日)12:00-13:50 第第9周周六周周六(10月月29日日)12:00-13:50 第第11周周六周周六(11月月12日日)8:00-9:50 第第13周周日周周日(11月月27日日)12:00-13:50 第第14周周六周周六(12月月3日日)12:00-13:50 學(xué)博軍學(xué)博軍11班上機時間安排班上機時間安排

3、 第第7周周日周周日(10月月16日日)14:00-15:50 第第9周周六周周六(10月月29日日)14:00-15:50 第第11周周六周周六(11月月12日日)10:00-11:50 第第13周周日周周日(11月月27日日)14:00-15:50 第第14周周六周周六(12月月3日日)14:00-15:50 MATLAB語言編程語言編程介紹介紹 vMATLABMATLAB中各種命令可以完成許多單一的任務(wù),對中各種命令可以完成許多單一的任務(wù),對 于某些較為復(fù)雜的問題,僅靠現(xiàn)有的命令或函數(shù)于某些較為復(fù)雜的問題,僅靠現(xiàn)有的命令或函數(shù) 來解決,往往是難以達到目的來解決,往往是難以達到目的 。為此

4、,要運用。為此,要運用 MATLABMATLAB編程語言編制程序,形成編程語言編制程序,形成M-M-文件。文件。 v程序是使計算機完成各項運算的命令集,運行一程序是使計算機完成各項運算的命令集,運行一 個編制好的程序,計算機會從第一條命令行開始個編制好的程序,計算機會從第一條命令行開始 ,一行接一行地執(zhí)行相應(yīng)的命令,直到終止。,一行接一行地執(zhí)行相應(yīng)的命令,直到終止。 v程序編寫調(diào)試完成后,需要存盤,形成永久性文程序編寫調(diào)試完成后,需要存盤,形成永久性文 件,可以隨時對它進行調(diào)用或修改。件,可以隨時對它進行調(diào)用或修改。 v文件名以字母開頭,但不能用專用變量名,如文件名以字母開頭,但不能用專用變量

5、名,如 pi,ans,epspi,ans,eps等。等。 程序結(jié)構(gòu)程序結(jié)構(gòu) 程序一般包含程序一般包含: a=input(請輸入數(shù)組請輸入數(shù)組 an= ); m,n=size(a); M=a(1); for i=2:n if M n2. v省略格式:省略格式: for i=n1:n2這里這里step=1. v例例1:求:求n個奇數(shù)和:個奇數(shù)和:s=1+3+5+(2n-1) n=input(please input n=); s=0; for i=1:n s=s+(2*i-1); fprintf(i=%.0f, s=%.0fn,i,s); end 程序程序aa1 v例例2:求階乘:求階乘:p=12

6、 3 n=n! n=input(請輸入請輸入 n= ); p=1; for i=1:n p=p*i; fprintf( i=%.0f, p=%.0fn ,i,p); end aa2.m n例例3:求:求e:e=1+1+1/2!+1/3!+1/n! n=input(請輸入請輸入 n= ); p=1;e=1; for i=1:n p=p*i; p1=1/p; e=e+p1; fprintf( i=%.0f, p=%.0f, e=%.8f n ,i,p,e); end aa3.m 例例4 A. , ji 1 j)A(i, 53 寫出矩陣寫出矩陣 試編程試編程 矩陣,矩陣,是一個是一個設(shè)設(shè) A m=3

7、; n=5; for i = 1:m for j = 1:n H(i,j) = 1/(i+j); end end H 例例5 數(shù)列極限數(shù)列極限 動態(tài)顯示動態(tài)顯示 MATLAB程序:程序: hold on % 圖形迭加圖形迭加 axis(0,100,2,3); % 設(shè)置坐標軸設(shè)置坐標軸 grid % 加坐標網(wǎng)格加坐標網(wǎng)格 for n=1:90 % 循環(huán)操作循環(huán)操作 an=(1+1/n)n; % 計算數(shù)列值計算數(shù)列值 plot(n,an,r*); % 畫出坐標點畫出坐標點 pause(0.05); % 暫停暫停0.05秒秒 fprintf(n=%d an=%.4fn,n,an); % 顯示坐標位置

8、顯示坐標位置 end n n n ) 1 1(lim 例例6 導(dǎo)彈打擊過程仿真導(dǎo)彈打擊過程仿真 設(shè)設(shè)A(0,0)為一導(dǎo)彈發(fā)射點,發(fā)現(xiàn)位于為一導(dǎo)彈發(fā)射點,發(fā)現(xiàn)位于B(0,100)處處 一架敵機沿水平方向逃離,隨即發(fā)射一枚導(dǎo)彈一架敵機沿水平方向逃離,隨即發(fā)射一枚導(dǎo)彈 予以打擊,現(xiàn)已知導(dǎo)彈時刻對準敵機,且速率予以打擊,現(xiàn)已知導(dǎo)彈時刻對準敵機,且速率 為飛機速率的兩倍(設(shè)飛機速度為為飛機速率的兩倍(設(shè)飛機速度為1)。)。 試編程模擬導(dǎo)彈打擊敵機試編程模擬導(dǎo)彈打擊敵機 的動態(tài)過程,并實時給出的動態(tài)過程,并實時給出 飛機和導(dǎo)彈的位置坐標。飛機和導(dǎo)彈的位置坐標。 若要在敵機飛行距離不超若要在敵機飛行距離不超

9、 過過60時(我方空域)將其時(我方空域)將其 擊落,導(dǎo)彈的速率應(yīng)提高擊落,導(dǎo)彈的速率應(yīng)提高 到多少?到多少? A B MATLAB程序:程序: k=0; A=0,0; %導(dǎo)彈初始位置導(dǎo)彈初始位置 B=0,100; %飛機初始位置飛機初始位置 v=1; dt=1; %離散時間改變量離散時間改變量 d=100; %相距距離相距距離 while d0.5 plot(A(1),A(2),r); %畫導(dǎo)彈位置畫導(dǎo)彈位置 hold on plot(B(1),B(2),b*); %畫飛機位置畫飛機位置 pause(0.2); k=k+1; B=B+v*dt,0; %飛機移動位置飛機移動位置 e=B-A;

10、%導(dǎo)彈指向飛機向量導(dǎo)彈指向飛機向量 d=norm(e); e0=e/d; %取向量方向(單位化)取向量方向(單位化) A=A+2.0*v*dt*e0; %導(dǎo)彈追擊位置導(dǎo)彈追擊位置 fprintf(k=%.0f A(%.2f,%.2f) B(%.2f,100) d=%.2fn,k ,A(1),A(2),B(1),d); end A B M-文件中條件循環(huán)命令文件中條件循環(huán)命令(while命令命令) v格式:格式: while (condition is true) commands; end v作用:作用:當條件成立時,執(zhí)行命令集當條件成立時,執(zhí)行命令集 commands,直到條件不成立直到條件

11、不成立. n例例7:求和:求和:s=1+2+n3000 n s=0;k=1; while s+k3000 s=s+k; fprintf( k=%.0f, s=%.0fn ,k,s); k=k+1; end aa4.m n例例8:求:求e:e=1+1+1/2!+1/3!+ (1/n!=1.0e-8 p=p*i; r=1/p; e=e+r; fprintf( i=%.0f, r=%.9f, e=%.9f n ,i,r,e); i=i+1; end aa5.m M-文件中選擇控制命令文件中選擇控制命令(if命令命令) v單項選擇控制單項選擇控制 v格式:格式: if (condition is tr

12、ue) commands; end v作用:若條件成立,則執(zhí)行命令集作用:若條件成立,則執(zhí)行命令集 commands. 否則,不執(zhí)行。否則,不執(zhí)行。 n例例9:求:求n個實數(shù)中最大的數(shù)個實數(shù)中最大的數(shù)M. a=input(請輸入數(shù)組請輸入數(shù)組 an= ); m,n=size(a); M=a(1); for i=2:n if M B vgreater velseif A 0 z=1; elseif x=0 z=0; else z=-1; end y=x2*z aa7.m Switch語句語句 Switch語句用于實現(xiàn)多語句用于實現(xiàn)多 重選擇,其格式為:重選擇,其格式為: switch 表達式表達

13、式 case 數(shù)值數(shù)值1 模塊模塊1 case 數(shù)值數(shù)值2 模塊模塊2 . otherwise . end x=input(成績=) switch fix(x/10) case 10,9 grade=A case 8 grade=B case 7 grade=C otherwise grade=D end Break 語句語句 Break語句的格式為:語句的格式為: break; 用于立即跳出包含該用于立即跳出包含該 break語句的各種循語句的各種循 環(huán)語句環(huán)語句while和和for 在循環(huán)語句中使用的在循環(huán)語句中使用的 break語句一般應(yīng)和語句一般應(yīng)和if 語句配合使用語句配合使用 例如

14、:例如: while 條件條件1 . if 條件條件2 break; end end Return語句語句 Return語句終止當前命令的執(zhí)行,并且返回語句終止當前命令的執(zhí)行,并且返回 到調(diào)用函數(shù)或者等待鍵盤輸入指令。到調(diào)用函數(shù)或者等待鍵盤輸入指令。 用用M-文件定義函數(shù)文件定義函數(shù) v格式格式 function y1,y2=funname(x,y,a,n) v其中:其中: function 為關(guān)鍵字;為關(guān)鍵字; y1,y2,為輸出列表;為輸出列表; funname為自定義的函數(shù)名;為自定義的函數(shù)名; (x,y,a,n,)為函數(shù)參數(shù),用來傳遞相為函數(shù)參數(shù),用來傳遞相 關(guān)數(shù)值關(guān)數(shù)值. v存盤時,

15、要求用存盤時,要求用funname作為函數(shù)名作為函數(shù)名. v 例例12:建立符號函數(shù):建立符號函數(shù)sgn(x) function sn=sgn(x) if x0 sn=1; elseif x=0 sn=0; else sn=-1; end 以以sgn作為文件名存盤,即建立了函數(shù)作為文件名存盤,即建立了函數(shù)。 v調(diào)用:調(diào)用: 在命令區(qū)執(zhí)行在命令區(qū)執(zhí)行 : sn=sgn(10)或或sn=sgn(-2) n例例13:建立計算:建立計算(a+b)n,(a-b)n的函數(shù)的函數(shù) function p,q=fun1(a,b,n) p=(a+b).n; q=(a-b).n; fun1.m 例例14編制程序,從

16、鍵盤輸入編制程序,從鍵盤輸入a,b,n,計算計算(a+b)n,(a- b)n aa8.m a=input(a=);b=input(b=);n=input(n=); p,q=fun1(a,b,n); fprintf(a+b)n=%.4f,(a-b)n=%.4fn,p,q) function f=grad(x) switch fix(x/10) case 10,9 grade=A case 8 grade=B case 7 grade=C otherwise grade=D end 例例15 編寫一個編寫一個function 函數(shù),調(diào)用該函數(shù)函數(shù),調(diào)用該函數(shù) ,可以將考試分數(shù),可以將考試分數(shù) 值化

17、為值化為“A” ”B” “C” ”D”等級值等級值. v例例15:用二分法求函數(shù)用二分法求函數(shù)x2-2=0的正實根的正實根. 0)()(,2 , 1 , , 2)( 2 bfafbaxxf :2/ )()1bac ; ),| )(|(0)( ifcgrcfcf 或或 ; 0)()( elseif cb afcf ; elseca 1). gotostop,er, )2否則否則輸出根。輸出根。 abif 輸入初值輸入初值:erbaxf誤差限誤差限 , ),( 2/ )(bac ?0)( cf ?0)()( cfaf 2/ )(bac ?|erab cb ca 輸出:迭代次數(shù)輸出:迭代次數(shù)k,方程

18、的近似根方程的近似根c. No No No Yes Yes Yes 二分法求根程序:二分法求根程序: a=1;b=2; er=1.0e-8; f=inline(x.2-2); k=1; c=(a+b)/2; while abs(b-a)er if abs(f(c)=0 fprintf(k=%.0f,r=%.8fn,k,r); break; end if f(a)*f(c)er if abs(f(c)=0 fprintf(k=%.0f,r=%.8fn,k,r); break; end if f(a)*f(c)0 b=c; else a=c; end c=(a+b)/2; fprintf(k=%.

19、0f,c=%.8fn, k,c); k=k+1; end function y=f (x) y=x2-2; v 每門課程考試閱卷完畢每門課程考試閱卷完畢, ,任課教師都要對各班的任課教師都要對各班的 考試成績進行統(tǒng)計考試成績進行統(tǒng)計, ,統(tǒng)計內(nèi)容包括統(tǒng)計內(nèi)容包括: :全班人數(shù)全班人數(shù), ,總總 得分得分, ,平均得分平均得分, ,不及格的人數(shù)及不及格的人數(shù)及9090分分( (包括包括9090分分 ) )以上的人數(shù)以上的人數(shù). .請編制程序解決這一問題請編制程序解決這一問題, ,并自給并自給 一組數(shù)據(jù)驗證程序的正確性一組數(shù)據(jù)驗證程序的正確性. .要求要求: :使用者在提示使用者在提示 下通過鍵盤

20、輸入學(xué)生成績下通過鍵盤輸入學(xué)生成績, ,計算機自動處理后計算機自動處理后, ,顯顯 示需要的結(jié)果示需要的結(jié)果. . v 課后習(xí)題任選課后習(xí)題任選2 2題題. . 實驗內(nèi)容實驗內(nèi)容 首先由計算機隨機產(chǎn)生一個首先由計算機隨機產(chǎn)生一個 1,100 之間的一之間的一 個整數(shù),然后由用戶猜測所產(chǎn)生的這個數(shù)。根據(jù)個整數(shù),然后由用戶猜測所產(chǎn)生的這個數(shù)。根據(jù) 用戶猜測的情況給出不同的提示,如果猜測的數(shù)用戶猜測的情況給出不同的提示,如果猜測的數(shù) 大于產(chǎn)生的數(shù),則顯示大于產(chǎn)生的數(shù),則顯示 “High” ,小于則顯示小于則顯示 “ Low ” ,等于則顯示等于則顯示 “You won!”,同時退,同時退 出游戲。用戶最多有出游戲。用戶最多有 7 次機會。次機會。 3. 編寫程序?qū)崿F(xiàn)猜數(shù)游戲編寫程序?qū)崿F(xiàn)猜數(shù)游戲 Fibonacci數(shù)組元素滿足數(shù)組元素滿足Fibonacci規(guī)則:規(guī)則: 4. 編寫程序解決下列問題編寫程序解決下列問題 );, 2 , 1( , 12 kaaa kkk . 1 21 aa其其中中 (1)用循環(huán)語句形成前)用循環(huán)語句形成前20個分量的數(shù)組;個分量的數(shù)組; (2)求該數(shù)組中第一個大于)求該數(shù)組中第一個大于10000的數(shù)的

溫馨提示

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

評論

0/150

提交評論