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

下載本文檔

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

文檔簡(jiǎn)介

1、 數(shù)學(xué)實(shí)驗(yàn)數(shù)學(xué)實(shí)驗(yàn) 理學(xué)院數(shù)學(xué)學(xué)科理學(xué)院數(shù)學(xué)學(xué)科 李換琴李換琴 信息信息11、12、13班上機(jī)時(shí)間安排班上機(jī)時(shí)間安排 第第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班上機(jī)時(shí)間安排班上機(jī)時(shí)間安排 第第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班上機(jī)時(shí)間安排班上機(jī)時(shí)間安排

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語(yǔ)言編程語(yǔ)言編程介紹介紹 vMATLABMATLAB中各種命令可以完成許多單一的任務(wù),對(duì)中各種命令可以完成許多單一的任務(wù),對(duì) 于某些較為復(fù)雜的問(wèn)題,僅靠現(xiàn)有的命令或函數(shù)于某些較為復(fù)雜的問(wèn)題,僅靠現(xiàn)有的命令或函數(shù) 來(lái)解決,往往是難以達(dá)到目的來(lái)解決,往往是難以達(dá)到目的 。為此

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

5、名,如 pi,ans,epspi,ans,eps等。等。 程序結(jié)構(gòu)程序結(jié)構(gòu) 程序一般包含程序一般包含: a=input(請(qǐng)輸入數(shù)組請(qǐng)輸入數(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個(gè)奇數(shù)和:個(gè)奇數(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(請(qǐng)輸入請(qǐng)輸入 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(請(qǐng)輸入請(qǐng)輸入 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 寫(xiě)出矩陣寫(xiě)出矩陣 試編程試編程 矩陣,矩陣,是一個(gè)是一個(gè)設(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ù)列極限 動(dòng)態(tài)顯示動(dòng)態(tài)顯示 MATLAB程序:程序: hold on % 圖形迭加圖形迭加 axis(0,100,2,3); % 設(shè)置坐標(biāo)軸設(shè)置坐標(biāo)軸 grid % 加坐標(biāo)網(wǎng)格加坐標(biāo)網(wǎng)格 for n=1:90 % 循環(huán)操作循環(huán)操作 an=(1+1/n)n; % 計(jì)算數(shù)列值計(jì)算數(shù)列值 plot(n,an,r*); % 畫(huà)出坐標(biāo)點(diǎn)畫(huà)出坐標(biāo)點(diǎn) pause(0.05); % 暫停暫停0.05秒秒 fprintf(n=%d an=%.4fn,n,an); % 顯示坐標(biāo)位置

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

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

10、%導(dǎo)彈指向飛機(jī)向量導(dǎo)彈指向飛機(jī)向量 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作用:作用:當(dāng)條件成立時(shí),執(zhí)行命令集當(dāng)條件成立時(shí),執(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單項(xiàng)選擇控制單項(xiàng)選擇控制 v格式:格式: if (condition is tr

12、ue) commands; end v作用:若條件成立,則執(zhí)行命令集作用:若條件成立,則執(zhí)行命令集 commands. 否則,不執(zhí)行。否則,不執(zhí)行。 n例例9:求:求n個(gè)實(shí)數(shù)中最大的數(shù)個(gè)實(shí)數(shù)中最大的數(shù)M. a=input(請(qǐng)輸入數(shù)組請(qǐng)輸入數(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語(yǔ)句語(yǔ)句 Switch語(yǔ)句用于實(shí)現(xiàn)多語(yǔ)句用于實(shí)現(xiàn)多 重選擇,其格式為:重選擇,其格式為: switch 表達(dá)式表達(dá)

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

14、:例如: while 條件條件1 . if 條件條件2 break; end end Return語(yǔ)句語(yǔ)句 Return語(yǔ)句終止當(dāng)前命令的執(zhí)行,并且返回語(yǔ)句終止當(dāng)前命令的執(zhí)行,并且返回 到調(diào)用函數(shù)或者等待鍵盤(pán)輸入指令。到調(diào)用函數(shù)或者等待鍵盤(pán)輸入指令。 用用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ù),用來(lái)傳遞相為函數(shù)參數(shù),用來(lái)傳遞相 關(guān)數(shù)值關(guān)數(shù)值. v存盤(pán)時(shí),

15、要求用存盤(pán)時(shí),要求用funname作為函數(shù)名作為函數(shù)名. v 例例12:建立符號(hào)函數(shù):建立符號(hào)函數(shù)sgn(x) function sn=sgn(x) if x0 sn=1; elseif x=0 sn=0; else sn=-1; end 以以sgn作為文件名存盤(pán),即建立了函數(shù)作為文件名存盤(pán),即建立了函數(shù)。 v調(diào)用:調(diào)用: 在命令區(qū)執(zhí)行在命令區(qū)執(zhí)行 : sn=sgn(10)或或sn=sgn(-2) n例例13:建立計(jì)算:建立計(jì)算(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、鍵盤(pán)輸入編制程序,從鍵盤(pán)輸入a,b,n,計(jì)算計(jì)算(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 編寫(xiě)一個(gè)編寫(xiě)一個(gè)function 函數(shù),調(diào)用該函數(shù)函數(shù),調(diào)用該函數(shù) ,可以將考試分?jǐn)?shù),可以將考試分?jǐn)?shù) 值化

17、為值化為“A” ”B” “C” ”D”等級(jí)值等級(jí)值. v例例15:用二分法求函數(shù)用二分法求函數(shù)x2-2=0的正實(shí)根的正實(shí)根. 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 每門(mén)課程考試閱卷完畢每門(mén)課程考試閱卷完畢, ,任課教師都要對(duì)各班的任課教師都要對(duì)各班的 考試成績(jī)進(jìn)行統(tǒng)計(jì)考試成績(jī)進(jìn)行統(tǒng)計(jì), ,統(tǒng)計(jì)內(nèi)容包括統(tǒng)計(jì)內(nèi)容包括: :全班人數(shù)全班人數(shù), ,總總 得分得分, ,平均得分平均得分, ,不及格的人數(shù)及不及格的人數(shù)及9090分分( (包括包括9090分分 ) )以上的人數(shù)以上的人數(shù). .請(qǐng)編制程序解決這一問(wèn)題請(qǐng)編制程序解決這一問(wèn)題, ,并自給并自給 一組數(shù)據(jù)驗(yàn)證程序的正確性一組數(shù)據(jù)驗(yàn)證程序的正確性. .要求要求: :使用者在提示使用者在提示 下通過(guò)鍵盤(pán)

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

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論