



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、;.桂林電子科技大學(xué)數(shù)學(xué)與計(jì)算科學(xué)學(xué)院實(shí)驗(yàn)報(bào)告院(系) 數(shù)學(xué)與計(jì)算科學(xué)學(xué)號(hào)姓名成績課程數(shù)學(xué)應(yīng)用軟件實(shí)驗(yàn)實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)三MATLAB的程序設(shè)計(jì)名稱名稱一 ,實(shí)驗(yàn)?zāi)康?.掌握建立與編輯函數(shù)文件和腳本文件的方法;2.掌握 MATLAB 編程語言的基本控制語句;3.掌握 MATLAB 程序的調(diào)試。二,實(shí)驗(yàn)原理MATLAB 有三種基本程序結(jié)構(gòu):順序、選擇和循環(huán)。主要的語句有if 語句、 switch 語句、 for循環(huán)語句和 while 循環(huán)。1.選擇結(jié)構(gòu)(1) if 語句:if 條件表達(dá)式執(zhí)行語句elseif 條件表達(dá)式執(zhí)行語句end(2) switch 語句switch 表達(dá)式case 表達(dá)式執(zhí)行語句
2、case 表達(dá)式執(zhí)行語句.otherwise執(zhí)行語句end2. 循環(huán)結(jié)構(gòu)(1) for 循環(huán)for循環(huán)變量= 表達(dá)式執(zhí)行語句end其中表達(dá)式是一個(gè)矩陣,矩陣的列被一個(gè)一個(gè)的賦給循環(huán)變量,然后執(zhí)行循環(huán)體內(nèi)的語句。(2) while 循環(huán)while條件表達(dá)式;.'.執(zhí)行語句End3. 其它流程控制函數(shù)continue : continue語句通常用在循環(huán)控制中,包括for 循環(huán)和while循環(huán),用于結(jié)束當(dāng)次循環(huán),繼續(xù)執(zhí)行下一次循環(huán),但是不結(jié)束當(dāng)前循環(huán)。一般continue語句與if 語句相結(jié)合,當(dāng)滿足一定的條件時(shí),執(zhí)行continue語句。break:與 continue 相同的是, br
3、eak 函數(shù)也是用于循環(huán)控制, 中斷當(dāng)前循環(huán)。 與 continue 不同, break 跳出當(dāng)前循環(huán),不再執(zhí)行該循環(huán)的任何操作。return :結(jié)束該程序的執(zhí)行,返回到調(diào)用函數(shù)或者鍵盤。4. 創(chuàng)建M文件M 文件以.m 為擴(kuò)展名,它有兩種形式:腳本文件和函數(shù)文件。(1) 腳本文件的創(chuàng)建進(jìn)入 MATLAB 命令窗口后, 選擇 “ File”下拉菜單中的 “new ”選擇“ M-file ”,或在 MATLAB命令窗口輸入“edit M 文件名”,或點(diǎn)擊工具欄中的“新建”按鈕。在M 文件編輯窗口中,寫入符合語法規(guī)則的。編寫完命令文件后,選擇“file ”下拉式菜單中的“save”項(xiàng),然后依提示輸入
4、一個(gè)文件名。至此,完成了腳本文件的創(chuàng)建。(2) 函數(shù)文件的創(chuàng)建函數(shù)文件的創(chuàng)建與腳本文件的創(chuàng)建方法完全一樣,只是在函數(shù)文件的第一句可執(zhí)行語句必須是 function 引導(dǎo)的定義語句,并且輸入文件名時(shí)要與定義語句中的函數(shù)名相同。(3) 腳本文件與函數(shù)文件的調(diào)用創(chuàng)建了腳本文件后,只在命令窗口鍵入腳本文件名,再按回車鍵,就可以執(zhí)行腳本文件中所包含的所有命令。函數(shù)文件一旦創(chuàng)建,就可以與其它的MATLAB函數(shù)一樣調(diào)用了。5. 程序的調(diào)試在程序調(diào)試時(shí),程序運(yùn)行中變量的值為一個(gè)重要的線索。因此,查看變量值為程序調(diào)試的重要線索,由于在函數(shù)調(diào)用時(shí)只返回最后的輸出參數(shù),而不返回中間變量,因此,可以選擇下面的方法查看
5、程序運(yùn)行中的變量值。( 1)通過分析后,將可能出錯(cuò)的語句后面的分號(hào)( ;)刪除,將結(jié)果顯示在命令窗口中,與預(yù)期值進(jìn)行比較;( 2)利用函數(shù) disp 顯示中間變量的值;( 3)在程序中的適當(dāng)位置添加 keyboard 指令。當(dāng) MATLAB 執(zhí)行至此處時(shí)將暫停,等待用戶反應(yīng)。當(dāng)程序運(yùn)行至此時(shí)將暫停, 在命令窗口中顯示 k>>提示符,用戶可以查看工作區(qū)中的變量,可以改變變量的值。輸入return 指定返回程序,繼續(xù)運(yùn)行。( 4)在調(diào)試一個(gè)單獨(dú)的函數(shù)時(shí),可以將函數(shù)改寫為腳本文件,此時(shí)可以直接對(duì)輸入?yún)?shù)賦值,然后以腳本方式運(yùn)行該 M 文件,這樣可以保存中間變量,在運(yùn)行完成后,可以查看中間
6、變量的值,對(duì)結(jié)果進(jìn)行分析,查找錯(cuò)誤所在。;.'.三,實(shí)驗(yàn)內(nèi)容1. 分別用腳本文件和函數(shù)文件實(shí)現(xiàn)以下功能:輸入?yún)?shù) a,b,c ,畫出函數(shù)yax2bxc 的圖像;x1,x02.編 程 實(shí) 現(xiàn) :輸 入 x 的 值 ,計(jì) 算 函 數(shù) f ( x) 的函 數(shù) 值 , 其 中 f (x)1,1x1 , 并 計(jì)算x2 , x1f ( 0.7), f (0.5), f (1.5)3. 編寫一個(gè)函數(shù)mylog(n,x) 來計(jì)算實(shí)數(shù)x 的對(duì)數(shù),其中,當(dāng)n 取 10,計(jì)算以10 為底的對(duì)數(shù);當(dāng)n取 2 時(shí),計(jì)算以2 為底的對(duì)數(shù),當(dāng)n 取 3 時(shí),計(jì)算以自然底數(shù)為底的對(duì)數(shù),當(dāng)n 取其它數(shù)時(shí)候,用換底公式進(jìn)
7、行計(jì)算。4. 編程實(shí)現(xiàn)求和: s(n)1234.(1)n 1 ns(n)1111.(1)n 1 1234n5. 計(jì)算和式 S(n)1!2!.n! ,當(dāng)和大于1000 時(shí),退出;6. 計(jì)算組合數(shù) Cnkn!k)!n Cnk 11 ,用遞歸實(shí)現(xiàn);k!( nk7, 計(jì)算以下和式,并估計(jì)其求和公式以及驗(yàn)證:nS(n)k 1 23.nk1nk2122232n2S(n).k1nk3132333n3S(n).k18,估計(jì)以下級(jí)數(shù)的和,并編程驗(yàn)證。1111.1.S2!3!n!k 1 k ! 1!S11111.k 1 k(k 1)1 2 2 3 3 4n (n 1);.'.S( 1)k 11111. (
8、 1)k 1.k 12k 13572k 19,畫一個(gè)國際象棋的棋盤;10,給 N 個(gè)人編上號(hào): 1,2,3,., N ,按順序圍成一個(gè)圈坐好,從1號(hào)開始報(bào)數(shù),報(bào)到 M ( M N )的人退出,下一個(gè)人再從1開始往下報(bào)數(shù),重復(fù)這個(gè)過程,請(qǐng)問最后剩下的那個(gè)人的號(hào)數(shù)是多少?請(qǐng)編程實(shí)現(xiàn),并取N10, M3 進(jìn)行驗(yàn)證;11,求出 1 N 之間的所有素?cái)?shù);12,求出所有的水仙花數(shù)(所謂水仙花數(shù),是滿足以下條件的三位數(shù):各位數(shù)的立方之和等于它本身,例如,135333153 );13,將一個(gè)正整數(shù)進(jìn)行質(zhì)因數(shù)分解,例如:902*3*3*5;14,求兩個(gè)正整數(shù)m, n 的最小公倍數(shù)和最大公因數(shù);15,有一個(gè)已排好
9、序的數(shù)組,現(xiàn)在輸入一個(gè)數(shù),請(qǐng)按照原來的規(guī)律將此數(shù)插入到數(shù)組中;16,將一個(gè)數(shù)組逆序輸出;四,實(shí)驗(yàn)結(jié)果分析或總結(jié)1. 分別用腳本文件和函數(shù)文件實(shí)現(xiàn)以下功能:輸入?yún)?shù) a,b,c ,畫出函數(shù)yax2bxc 的圖像;( 1) M 腳本文件:a=input('a=');b=input('b=');c=input('c=');x=-5:5/1000:5;y=a.*x.2+b.*x+c;plot(x,y)結(jié)果輸入:>> lx11a=1b=1c=1>>.'.圖像:( 2) M 函數(shù)文件:function lx12(a,b,c)x
10、=-5:5/1000:5;y=a.*x.2+b.*x+c;plot(x,y)運(yùn)行函數(shù):lx12(1,1,1)圖像:x1,x02.編 程 實(shí) 現(xiàn): 輸 入 x 的 值 ,計(jì) 算 函 數(shù) f ( x) 的函 數(shù) 值 , 其 中 f (x)1,1x1 , 并 計(jì)算x2 , x1f ( 0.7), f (0.5), f (1.5)M 函數(shù)文件:;.'.function y =f(x)if x<0y=x+1;elseif x<1y=1;else y=x2end結(jié)果:>> f(-0.7)ans =0.3000>> f(0.5)ans =1>> f(1
11、.5)y =2.2500ans =2.25003. 編寫一個(gè)函數(shù)mylog(n,x) 來計(jì)算實(shí)數(shù)x 的對(duì)數(shù),其中,當(dāng)n 取 10,計(jì)算以10 為底的對(duì)數(shù);當(dāng)n取 2 時(shí),計(jì)算以2 為底的對(duì)數(shù),當(dāng)n 取 3 時(shí),計(jì)算以自然底數(shù)為底的對(duì)數(shù),當(dāng)n 取其它數(shù)時(shí)候,用換底公式進(jìn)行計(jì)算。M 函數(shù)文件function y = mylog(n,x)if n=10y=log10(x);elseif n=2y=log2(x);elseif n=3y=log(x);elsey=log(x)/log(n);end結(jié)果:>> mylog(10,5) ans =0.6990>> mylog(2,5
12、) ans =2.3219>> mylog(4,6);.'.ans =1.29254. 編程實(shí)現(xiàn)求和: s(n)1234 .(1)n 1 ns(n)1111.(1)n 1 1234n(1)M 函數(shù)文件 :functionY=s(n)Y=0;for i=1:nY=Y+(-1)(i+1)*i;end結(jié)果測試 :> s(4)ans =-2(2)functionY=s(n)Y=0;for i=1:nY=Y+(-1)(i+1)*(1/i);end結(jié)果測試 :>> s(4)ans =0.58335. 計(jì)算和式 S(n) 1! 2!.n! ,當(dāng)和大于1000 時(shí),退出;
13、functionY=s(n)Y=0;a=1;for i=1:na=a*i;Y=Y+a;if Y>1000disp('S(n)>1000,í ?3?-? ·' )break ;endend程序測試 :>> s(5)ans =153>> s(100);.'.S(n)>1000, 退出循環(huán)ans =59136. 計(jì)算組合數(shù) Cnkn!n Cnk11 ,用遞歸實(shí)現(xiàn);k !(n k )!kM 函數(shù)文件 :functionY = c(k,n)if k<0 | n<0error('k or n is s
14、maller than 0,put in again !');return;elseifk>nerror('k>n,put in again!');endif k=0Y=1;elseifk=1&&n=1Y=1;elseifk<=nY=(n/k)*c(k-1,n-1);end程序測試 :>> c(0,0)ans =1>> c(0,1)ans =1>> c(3,4)ans =47, 計(jì)算以下和式,并估計(jì)其求和公式以及驗(yàn)證:nS(n)k 123.nk1functionY=s(n)Y=0;fork=1:nY=
15、Y+k;end測試 :>> s(3)ans =6;.'.nk2122232n2S(n).k1functionY=s(n)Y=0;for k=1:nY=Y+k2;end測試 :>> s(3)ans =14nk3132333n3S(n).k1functionY=s(n)Y=0;fork=1:nY=Y+k3;end測試 :>> s(2)ans =98,估計(jì)以下級(jí)數(shù)的和,并編程驗(yàn)證。11111S1!2!.k 1 k !3!n!程序 :a=1;S=0;for k=1:100000a=a*k;S=S+1/a;enddisp(S);驗(yàn)證 :>> s1.
16、7183S11111.k 1 k(k 1)1 2 2 3 3 4n (n 1)程序 :S=0;.'.fork=1:100000S=S+1/(k*(k+1);enddisp(S);檢驗(yàn) : >> s1.0000S( 1)k11 111.( 1)k 1.k 12k13572k1程序 :S=0;fork=1:100000S=S+(-1)(k+1)/(2*k-1);enddisp(S);檢驗(yàn) :>> s0.78549,畫一個(gè)國際象棋的棋盤;10,給 N 個(gè)人編上號(hào):1,2,3,., N ,按順序圍成一個(gè)圈坐好,從1號(hào)開始報(bào)數(shù),報(bào)到M ( MN )的人退出,下一個(gè)人再從1
17、開始往下報(bào)數(shù),重復(fù)這個(gè)過程,請(qǐng)問最后剩下的那個(gè)人的號(hào)數(shù)是多少?請(qǐng)編程實(shí)現(xiàn),并取N10, M3 進(jìn)行驗(yàn)證;M 函數(shù)文件 :functionx,y=Joseph0(N,M)a=1:N;t=1;k=1;whiletl,k=size(a);iflength(a)=1disp(a);break;endifk<Mwhilekiflength(a)=1break;endforr=1:(M-1)c=a(1);a(1)=;a=a c;.'.enda(1)=;k=k+1;endelsefori=1:(M-1)b(i)=a(i);enda(M)=;forj=1:(M-1)a(M-j)=;endfori
18、=1:(M-1)a=a b(i);endt=t+1;endend驗(yàn)證 :>> Joseph0(10,3)4>> Joseph0(7,4)211,求出 1 N 之間的所有素?cái)?shù);M 函數(shù)文件:functionout = nprimes(N)A= 1:N;A(1)=0;i=2;whilei<= floor(sqrt(N);forj= 2:fix(N/i)A(i*j) = 0;end ;i = A(find(A>i,1);end ;out=nonzeros(A);檢驗(yàn):>> nprimes(20) ans =23;.'.571113171912,
19、求出所有的水仙花數(shù)(所謂水仙花數(shù),是滿足以下條件的三位數(shù):各位數(shù)的立方之和等于它本身,例如,135333153 );程序:fori=100:999a=fix(i/100);b=fix(mod(i,100)/10);c=mod(i,10);ifa3+b3+c3=idisp(i);endend結(jié)果:>> lx1015337037140713,將一個(gè)正整數(shù)進(jìn)行質(zhì)因數(shù)分解,例如:902*3*3*5;functionc=primfactor(a)b=2:sqrt(a);c=;whileisempty(b)ifmod(a,b(1)b(mod(b,b(1)=;continue;elsec=c,b
20、(1);a=a/b(1);b(b>sqrt(a)=;endenddisp(' 該正整數(shù)的質(zhì)因數(shù)為:);c=c,a;測試:;.'.primfactor(90)該正整數(shù)的質(zhì)因數(shù)為:ans =233514,求兩個(gè)正整數(shù)m, n 的最小公倍數(shù)和最大公因數(shù);M 函數(shù)文件:function M,N=gcmlcm(m,n)t=min(m,n);while tif mod(m,t)=0 & mod(n,t)=0disp('m,n 的最大公約數(shù):');disp(t);break;endt=t-1;endg=m*n/t;disp('m,n 的最小公倍數(shù):');disp(g);程序測試:gcmlcm(4,6)m,n 的最大公約數(shù):2m,n 的最小公倍數(shù):1215,有一個(gè)已排好序的數(shù)組,現(xiàn)在輸入一個(gè)數(shù),請(qǐng)按照原來的規(guī)律將此數(shù)插入到數(shù)組中;M 函數(shù)文件 :functiony=inshu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 主承辦單位安全協(xié)議書
- 倉儲(chǔ)一體化服務(wù)協(xié)議書
- 高空安全協(xié)議協(xié)議書
- 交房屋定金有效協(xié)議書
- 飯店樓上住戶協(xié)議書
- 車輛事故出院協(xié)議書
- 項(xiàng)目整體回購協(xié)議書
- 車間安全管理總結(jié)報(bào)告
- 食品過期調(diào)解協(xié)議書
- 送貨司機(jī)責(zé)任協(xié)議書
- 漢字構(gòu)字的基本原理和識(shí)字教學(xué)模式分析
- 護(hù)理風(fēng)險(xiǎn)管理與護(hù)理安全
- RouterOS介紹
- 綜采工作面液壓支架壓死救活技術(shù)研究
- 十字軸鍛造成型工藝及模具設(shè)計(jì)畢業(yè)論文
- 主體結(jié)構(gòu)監(jiān)理實(shí)施細(xì)則范本
- NETWORKER+SQL Server備份實(shí)施文檔
- 控制性詳細(xì)規(guī)劃 - 寧波市規(guī)劃局
- 保潔員工考勤表
- JGJ8-2016建筑變形測量規(guī)范
- 《MSDS培訓(xùn)資料》PPT課件.ppt
評(píng)論
0/150
提交評(píng)論