數(shù)學(xué)軟件及其應(yīng)用第二章matlab程序設(shè)計(jì)_第1頁(yè)
數(shù)學(xué)軟件及其應(yīng)用第二章matlab程序設(shè)計(jì)_第2頁(yè)
數(shù)學(xué)軟件及其應(yīng)用第二章matlab程序設(shè)計(jì)_第3頁(yè)
數(shù)學(xué)軟件及其應(yīng)用第二章matlab程序設(shè)計(jì)_第4頁(yè)
數(shù)學(xué)軟件及其應(yīng)用第二章matlab程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(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、1第二章 Matlab程序設(shè)計(jì)一、自定義函數(shù)1. 匿名函數(shù)格式:函數(shù)句柄 = (自變量列表)函數(shù)表達(dá)式 例2.1 定義函數(shù) ,并計(jì)算f(x)在點(diǎn)x=-2,1,2.5,3,5.2的值。 f=(x)x.2+3*x+5 x=-2,1,2.5,3,5.2 y1=f(x)y1 = 3.00 9.00 18.75 23.00 47.642 例2.2 定義函數(shù) ,并計(jì)算g(3,2) g=(x,y)sin(x.2+3*y) y=g(3,2)y = 0.6503 例2.3 定義復(fù)合函數(shù)并計(jì)算函數(shù)z在(x,y)=(2,1),(3,2),(4,1),(4,3)處的值 u=(x,y)x./y v=(x,y)3*x-2

2、*y f=(x,y)u(x,y).2.*log(v(x,y) x=2,3,4,4 y=1,2,1,3 z=f(x,y)z = 5.5452 3.6212 36.8414 3.185432. m-文件函數(shù)在matlab界面上先點(diǎn)擊新建文件按鈕,進(jìn)入窗口Editor-Untitled,按如下格式建立函數(shù)并保存。格式:function y1,y2=ff(x1,x2) y1= y2=輸入變量:x1,x2,輸出變量:y1,y2注:輸入、輸出變量可以為1個(gè)或多個(gè)。4例2.4 建立函數(shù)文件,實(shí)現(xiàn)對(duì)矩陣x的非零元素取倒數(shù),零元素不變,然后調(diào)用該函數(shù)。(在窗口Editor-Untitled寫(xiě)入)function

3、 y=fun204(a) y=spfun(x)1./x,a); (保存)(在窗口Command-Window寫(xiě)入) a=0,0,2;3,0,1;4,0,0 b=fun204(a) c=full(b)c = 0 0 0.5000 0.3333 0 1.0000 0.2500 0 05二、m-文件的建立(程序設(shè)計(jì))編輯m-文件:在窗口Editor-Untitled按要求編輯程序,輸完程序后保存,在對(duì)話框中輸入文件名.運(yùn)行m-文件:在窗口Editor-Untitled單擊Debug run,或按F5鍵?;蛟诖翱贑ommand-Window輸入文件名并回車。6三、 流程控制語(yǔ)句 (一)分支結(jié)構(gòu) 1.

4、if條件語(yǔ)句 if 表達(dá)式 執(zhí)行語(yǔ)句 end if 表達(dá)式 執(zhí)行語(yǔ)句1 else 執(zhí)行語(yǔ)句2 end if 表達(dá)式1 執(zhí)行語(yǔ)句1 elseif 表達(dá)式2 執(zhí)行語(yǔ)句2 else 執(zhí)行語(yǔ)句3 end7例2.5 定義函數(shù)并計(jì)算f(x)在x=-5,-3,-1.5,-1,0.5,1,2處的值function y=ff(x)if x-2 y=x.2-2;elseif x0 y=x.2.*exp(x);else y=log(x+10);end x=-5,-3,-1.5,-1,0.5,1,2 y=ff(x)y = 1.6094 1.9459 2.1401 2.1972 2.3514 2.3979 2.4849

5、8 2. switch 分值選擇語(yǔ)句 switch表達(dá)式 case 常量表達(dá)式1 語(yǔ)句塊1 case 常量表達(dá)式2 語(yǔ)句塊2 case 常量表達(dá)式n 語(yǔ)句塊n otherwise 語(yǔ)句塊n+1 end9function m,y=ff(x)s=sum(x)m=mod(s,5)switch mcase 1 t=mod(x,2); y=sum(t.*x);case 2 t=1-mod(x,2); y=sum(t.*x);otherwise y=max(x)-min(x);end例2.6 定義函數(shù),對(duì)數(shù)組x做如下處理:記數(shù)組x所有元素和為s,(1)若s除以5余數(shù)為1, 求出x中所有奇數(shù)的和。(2)若s

6、除以5余數(shù)為2, 求出x中所有偶數(shù)的和。(3)其余情況求出x中 最大值與最小值的差。 x=2,-4,3,6,7,11 m,y=ff(x)m = 0y = 1510(二)循環(huán)結(jié)構(gòu) 1. for 循環(huán)語(yǔ)句 for 變量=數(shù)組 執(zhí)行語(yǔ)句1 執(zhí)行語(yǔ)句n end若數(shù)組為行向量,依次取數(shù)組元素執(zhí)行循環(huán)體。若數(shù)組為矩陣,依次取矩陣的列執(zhí)行循環(huán)體。11 例2.7 隨機(jī)生成15個(gè)099的整數(shù)構(gòu)成數(shù)組x, 并構(gòu)造下列數(shù)組:(1)將數(shù)組x的第偶數(shù)個(gè)元素平方,其余元素不變。(2)將數(shù)組x的第偶數(shù)個(gè)元素平方,其余元素置0。 x=floor(rand(1,15)*100); y1=x; y2=zeros(1,15); f

7、or i=2:2:14 y1(i)=x(i)2; y2(i)=x(i)2; end x;y1;y2 12 例2.8數(shù)組x=(8,3,5,-1,6,10,7,2,9,11),求出其中所有除以5余1的元素之和以及所有除以5余4的元素之和. x=8,3,5,-1,6,10,7,2,9,11; s1=0; s2=0; for m=x switch mod(m,5) case 1 s1=s1+m; case 4 s2=s2+m; end end s1,s2 不用循環(huán)完成 x=8,3,5,-1,6,10,7,2,9,11; i1=find(mod(x,5)=1); s1=sum(x(i1) i2=find

8、(mod(x,5)=4); s2=sum(x(i2)13例2.9 對(duì)矩陣A的各列按例2.6的要求處理。 -1 -3 -1 4 -5 2 -3 -4 -2 1 8 4 11 -5 3 7 -2 11 3 12 14 13 7 9 21 15 -5 17 4 8 7 7 8 2 3 A=; i=1;a=,b=; for k=A m,y=ff(k); a(i)=m; b(i)=y; i=i+1; end D=a;bD = 2 1 4 0 3 24 9 21 14 2614 2. while-end 循環(huán)語(yǔ)句 while表達(dá)式 執(zhí)行語(yǔ)句1 執(zhí)行語(yǔ)句n end注:表達(dá)式一般是由邏輯運(yùn)算和關(guān)系運(yùn)算組成的表

9、達(dá)式,表達(dá)式的值非零繼續(xù)循環(huán),表達(dá)式值為0終止循環(huán)。15例2.10 記三位正整數(shù)x的個(gè)位為a,十位為b,百位為c求出滿足ab-2c=4a+b(c+2)的第一個(gè)三位數(shù)。N=100; m=1;while m a=mod(N,10); b=mod(N-a)/10,10); c=(N-a-10*b)/100; if a*b-2*c=4*a+b*(c+2) m=0; N1=N; end N=N+1;endN1運(yùn)行結(jié)果:N1=28916 (三) 程序的流程控制命令: continue 終止一次循環(huán) break 結(jié)束循環(huán) (1) a=3;b=2; for i=1:4 b=b+1; if i2 break e

10、nd a=a+2; end a,b17例2.11 在某地區(qū)開(kāi)掘水渠,已知該水渠經(jīng)過(guò)的若干點(diǎn)坐標(biāo)(X,Y),X=7650,7950,8250,8550,8850,9150,9450,9750,10050,10350,10650,10950,11250,11550,11850,12150,12450,12750,13050,13350,13650,13950,14250,14550;Y=4650,4890,5100,5190,5220,5190,5130,4890,4650,4470,4320,4200,4080,3930,3840,3720,3660,3630,3570,3540,3600,36

11、90,3780,3900;假設(shè)該水渠是以這些點(diǎn)為節(jié)點(diǎn)的折線,(1)作出水渠的折線圖,求出水渠的總長(zhǎng)度。(2)A(7650,4650)為水渠起點(diǎn),B(xn,yn)為水渠上任一點(diǎn),編寫(xiě)matlab函數(shù)要求輸入xn,返回水渠上A到B段長(zhǎng)度及yn。(3)求x1=8100與x2=13500所對(duì)應(yīng)的水渠上的點(diǎn)的坐標(biāo),并求這兩點(diǎn)間水渠的長(zhǎng)度。(4)若將水渠分為等長(zhǎng)的6段,求出分點(diǎn)坐標(biāo)18(1) 求水渠的總長(zhǎng)度 記已知節(jié)點(diǎn)的坐標(biāo):Ai(xi,yi) , (i=1,2,n) 水渠總長(zhǎng)度:X=7650,7950,8250,8550,8850,9150,9450,9750,10050,10350,10650,109

12、50,11250,11550,11850,12150,12450,12750,13050,13350,13650,13950,14250,14550;Y=4650,4890,5100,5190,5220,5190,5130,4890,4650,4470,4320,4200,4080,3930,3840,3720,3660,3630,3570,3540,3600,3690,3780,3900; plot(X,Y,*-); n=length(X); x1=X(2:n)-X(1:n-1); y1=Y(2:n)-Y(1:n-1); L=sum(x1.2+y1.2).0.5) %水渠長(zhǎng)度19L = 7.

13、5145e+00320(2)編寫(xiě)函數(shù)ABAmAm+1先找到B(xn,yn)所在的線段AmAm+1搜索節(jié)點(diǎn)Ai(xi,yi)的橫坐標(biāo)Ai(xi,yi) , (i=1,2,n) 找到第一個(gè)xi xn的xi ,得下標(biāo)m得到線段AmAm+1的方程,可求出yn水渠上A到B段長(zhǎng)度:21function p,xn,yn=fun0000(X,Y,xn) n=length(X);X0=X(1:n-1);Y0=Y(1:n-1);X1=X(2:n);Y1=Y(2:n);D=sqrt(X1-X0).2+(Y1-Y0).2);%各線段的長(zhǎng)度,for i=1:n if X(i)=xn m=i-1; break enden

14、dk=(Y(m+1)-Y(m)/(X(m+1)-X(m);yn=Y(m)+k*(xn-X(m); s=sum(D(1:m-1); p=s+sqrt(xn-X(m).2+(yn-Y(m).2);22(3)求指定段的水渠長(zhǎng)度 xc=8100;xd=13500; z1,xc,yc=fun0000(X,Y,xc) z2,xd,yd=fun0000(X,Y,xd) zd=z2-z123 練習(xí)題1. 定義函數(shù)并計(jì)算f(x)在x=1,1.5,2,2.5,3,9.5,10處的值2. 定義函數(shù)在單位圓周 上等距取6個(gè)點(diǎn),并計(jì)算f(x,y)在這些點(diǎn)的值。3. 編程產(chǎn)生裴波那契數(shù)列:1,1,2,3,5,8,13,21,要求數(shù)列最后一個(gè)數(shù)不超過(guò)1000。(提示:Fn+2=Fn+1+Fn,F(xiàn)1=F2=1)4.計(jì)算級(jí)數(shù) 的近似值,要求誤差小于10-5246. 某鋼管廠的原料鋼

溫馨提示

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