實(shí)驗(yàn)三MATLAB的程序設(shè)計(jì)_第1頁(yè)
實(shí)驗(yàn)三MATLAB的程序設(shè)計(jì)_第2頁(yè)
實(shí)驗(yàn)三MATLAB的程序設(shè)計(jì)_第3頁(yè)
實(shí)驗(yàn)三MATLAB的程序設(shè)計(jì)_第4頁(yè)
實(shí)驗(yàn)三MATLAB的程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(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、桂林電子科技大學(xué) 數(shù)學(xué)與計(jì)算科學(xué)學(xué)院實(shí)驗(yàn)報(bào)告院(系)數(shù)學(xué)與計(jì)算科學(xué)學(xué)號(hào)姓名成績(jī)課程名稱數(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編程語(yǔ)言的基本控制語(yǔ)句;3. 掌握MATLAB程序的調(diào)試。二,實(shí)驗(yàn)原理MATLAB有三種基本程序結(jié)構(gòu):順序、選擇和循環(huán)。主要的語(yǔ)句有if語(yǔ)句、switch語(yǔ)句、for循環(huán)語(yǔ)句和while循環(huán)。1. 選擇結(jié)構(gòu) (1) if語(yǔ)句: if 條件表達(dá)式 執(zhí)行語(yǔ)句 elseif 條件表達(dá)式 執(zhí)行語(yǔ)句 end (2) switch語(yǔ)句 switch 表達(dá)式 case 表達(dá)式 執(zhí)行語(yǔ)

2、句 case 表達(dá)式 執(zhí)行語(yǔ)句 . otherwise 執(zhí)行語(yǔ)句 end2. 循環(huán)結(jié)構(gòu) (1) for 循環(huán) for 循環(huán)變量 = 表達(dá)式 執(zhí)行語(yǔ)句 end 其中表達(dá)式是一個(gè)矩陣,矩陣的列被一個(gè)一個(gè)的賦給循環(huán)變量,然后執(zhí)行循環(huán)體內(nèi)的語(yǔ)句。 (2) while 循環(huán) while 條件表達(dá)式 執(zhí)行語(yǔ)句 End3. 其它流程控制函數(shù)continue:continue 語(yǔ)句通常用在循環(huán)控制中,包括 for 循環(huán)和 while 循環(huán),用于結(jié)束當(dāng)次循環(huán),繼續(xù)執(zhí)行下一次循環(huán),但是不結(jié)束當(dāng)前循環(huán)。一般 continue 語(yǔ)句與 if 語(yǔ)句相結(jié)合,當(dāng)滿足一定的條件時(shí),執(zhí)行 continue 語(yǔ)句。break:與

3、 continue 相同的是,break 函數(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文件編輯窗口中,寫(xiě)入符合語(yǔ)法規(guī)則的。編寫(xiě)完命令文件后,選擇“file”下拉式菜單中的“save”項(xiàng),然后依提

4、示輸入一個(gè)文件名。至此,完成了腳本文件的創(chuàng)建。 (2) 函數(shù)文件的創(chuàng)建 函數(shù)文件的創(chuàng)建與腳本文件的創(chuàng)建方法完全一樣,只是在函數(shù)文件的第一句可執(zhí)行語(yǔ)句必須是function引導(dǎo)的定義語(yǔ)句,并且輸入文件名時(shí)要與定義語(yǔ)句中的函數(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)通過(guò)分析后,將可能出錯(cuò)的語(yǔ)句后面的分號(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ù)改寫(xiě)為腳本文件,此時(shí)可以直接對(duì)輸入?yún)?shù)賦值,然后以腳本方式運(yùn)行該 M 文件,這樣可以保存中間變量,在運(yùn)行完成后,可以查看中間變量的值,對(duì)

6、結(jié)果進(jìn)行分析,查找錯(cuò)誤所在。三,實(shí)驗(yàn)內(nèi)容1. 分別用腳本文件和函數(shù)文件實(shí)現(xiàn)以下功能:輸入?yún)?shù),畫(huà)出函數(shù)的圖像;2. 編程實(shí)現(xiàn):輸入的值,計(jì)算函數(shù)的函數(shù)值,其中,并計(jì)算3. 編寫(xiě)一個(gè)函數(shù)mylog(n,x)來(lái)計(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ì)算。4. 編程實(shí)現(xiàn)求和: 5. 計(jì)算和式,當(dāng)和大于1000時(shí),退出;6. 計(jì)算組合數(shù),用遞歸實(shí)現(xiàn);7, 計(jì)算以下和式,并估計(jì)其求和公式以及驗(yàn)證: 8,估計(jì)以下級(jí)數(shù)的和,并編程驗(yàn)證。 9,畫(huà)一個(gè)國(guó)際象棋的棋盤;10,給個(gè)人編上號(hào):,按

7、順序圍成一個(gè)圈坐好,從號(hào)開(kāi)始報(bào)數(shù),報(bào)到的人退出,下一個(gè)人再?gòu)拈_(kāi)始往下報(bào)數(shù),重復(fù)這個(gè)過(guò)程,請(qǐng)問(wèn)最后剩下的那個(gè)人的號(hào)數(shù)是多少?請(qǐng)編程實(shí)現(xiàn),并取進(jìn)行驗(yàn)證;11,求出之間的所有素?cái)?shù);12,求出所有的水仙花數(shù)(所謂水仙花數(shù),是滿足以下條件的三位數(shù):各位數(shù)的立方之和等于它本身,例如,);13,將一個(gè)正整數(shù)進(jìn)行質(zhì)因數(shù)分解,例如:;14,求兩個(gè)正整數(shù)的最小公倍數(shù)和最大公因數(shù);15,有一個(gè)已排好序的數(shù)組,現(xiàn)在輸入一個(gè)數(shù),請(qǐng)按照原來(lái)的規(guī)律將此數(shù)插入到數(shù)組中;16,將一個(gè)數(shù)組逆序輸出;四,實(shí)驗(yàn)結(jié)果分析或總結(jié)1. 分別用腳本文件和函數(shù)文件實(shí)現(xiàn)以下功能:輸入?yún)?shù),畫(huà)出函數(shù)的圖像;(1)M腳本文件:a=input(a=)

8、;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=-5:5/1000:5;y=a.*x.2+b.*x+c;plot(x,y)運(yùn)行函數(shù):lx12(1,1,1)圖像:2. 編程實(shí)現(xiàn):輸入的值,計(jì)算函數(shù)的函數(shù)值,其中,并計(jì)算M函數(shù)文件:function y =f(x)if x0 y=x+1;elseif x f(-0.7)ans = 0.3000 f(0.5)ans = 1 f(1.5)y = 2.2500ans =

9、 2.25003. 編寫(xiě)一個(gè)函數(shù)mylog(n,x)來(lái)計(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=10 y=log10(x);elseif n=2 y=log2(x);elseif n=3 y=log(x);else y=log(x)/log(n);end結(jié)果: mylog(10,5)ans = 0.6990 mylog(2,5)ans = 2.3219 mylog(4,6)ans = 1.29254. 編程

10、實(shí)現(xiàn)求和: (1)M函數(shù)文件:function Y=s(n)Y=0;for i=1:n Y=Y+(-1)(i+1)*i;end結(jié)果測(cè)試: s(4)ans =-2(2)function Y=s(n)Y=0;for i=1:n Y=Y+(-1)(i+1)*(1/i);end結(jié)果測(cè)試: s(4)ans = 0.58335. 計(jì)算和式,當(dāng)和大于1000時(shí),退出;function Y=s(n)Y=0;a=1;for i=1:n a=a*i; Y=Y+a; if Y1000 disp(S(n)1000,) break; endend程序測(cè)試: s(5)ans = 153 s(100)S(n)1000,退出

11、循環(huán)ans = 59136. 計(jì)算組合數(shù),用遞歸實(shí)現(xiàn);M函數(shù)文件:function Y = c(k,n)if k0 | nn error(kn,put in again!);endif k=0 Y=1;elseif k=1&n=1 Y=1;elseif k c(0,0)ans = 1 c(0,1)ans = 1 c(3,4)ans = 47, 計(jì)算以下和式,并估計(jì)其求和公式以及驗(yàn)證: function Y=s(n)Y=0;for k=1:n Y=Y+k;end測(cè)試: s(3)ans = 6 function Y=s(n)Y=0;for k=1:n Y=Y+k2;end測(cè)試: s(3)ans =

12、 14function Y=s(n)Y=0;for k=1:n Y=Y+k3;end測(cè)試: s(2)ans = 98,估計(jì)以下級(jí)數(shù)的和,并編程驗(yàn)證。 程序:a=1;S=0;for k=1:100000 a=a*k; S=S+1/a;enddisp(S);驗(yàn)證: s 1.7183 程序:S=0;for k=1:100000 S=S+1/(k*(k+1);enddisp(S);檢驗(yàn): s 1.0000 程序:S=0;for k=1:100000 S=S+(-1)(k+1)/(2*k-1);enddisp(S);檢驗(yàn): s 0.78549,畫(huà)一個(gè)國(guó)際象棋的棋盤;10,給個(gè)人編上號(hào):,按順序圍成一個(gè)圈

13、坐好,從號(hào)開(kāi)始報(bào)數(shù),報(bào)到的人退出,下一個(gè)人再?gòu)拈_(kāi)始往下報(bào)數(shù),重復(fù)這個(gè)過(guò)程,請(qǐng)問(wèn)最后剩下的那個(gè)人的號(hào)數(shù)是多少?請(qǐng)編程實(shí)現(xiàn),并取進(jìn)行驗(yàn)證;M函數(shù)文件: function x,y=Joseph0(N,M)a=1:N;t=1;k=1;while tl,k=size(a);if length(a)=1 disp(a); break; endif k Joseph0(10,3) 4 Joseph0(7,4) 211,求出之間的所有素?cái)?shù);M函數(shù)文件:function out = nprimes(N) A= 1:N;A(1)=0;i=2; while ii,1);end;out=nonzeros(A);檢驗(yàn):

14、 nprimes(20)ans = 2 3 5 7 11 13 17 1912,求出所有的水仙花數(shù)(所謂水仙花數(shù),是滿足以下條件的三位數(shù):各位數(shù)的立方之和等于它本身,例如,);程序:for i=100:999 a=fix(i/100); b=fix(mod(i,100)/10); c=mod(i,10); if a3+b3+c3=i disp(i); endend結(jié)果: lx10 153 370 371 40713,將一個(gè)正整數(shù)進(jìn)行質(zhì)因數(shù)分解,例如:;function c=primfactor(a)b=2:sqrt(a);c=;while isempty(b) if mod(a,b(1) b(

15、mod(b,b(1)=; continue; else c=c,b(1); a=a/b(1); b(bsqrt(a)=; endenddisp(該正整數(shù)的質(zhì)因數(shù)為:);c=c,a; 測(cè)試:primfactor(90)該正整數(shù)的質(zhì)因數(shù)為:ans = 2 3 3 514,求兩個(gè)正整數(shù)的最小公倍數(shù)和最大公因數(shù);M函數(shù)文件:function M,N=gcmlcm(m,n)t=min(m,n);while t if mod(m,t)=0 & mod(n,t)=0 disp(m,n的最大公約數(shù):); disp(t); break; end t=t-1;end g=m*n/t; disp(m,n的最小公倍數(shù):); disp(g); 程序測(cè)試:gcmlcm(4,6)m,n的最大公約數(shù): 2m,n的最小公

溫馨提示

  • 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)論