




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、西南科技大學(xué)本科生課程備課教案計(jì)算機(jī)技術(shù)在安全工程中的 應(yīng)用Matlab入門及應(yīng)用授課教師:徐中慧班 級:業(yè):安全技術(shù)及工程第十章MATLAB自定義函數(shù)課型:新授課教具:多媒體教學(xué)設(shè)備, matlab教學(xué)軟件一、目標(biāo)與要求通過解說與實(shí)例練習(xí),掌握 matlab創(chuàng)建函數(shù)M文件的方法掌握matlab中全局變量與局部變量的定義與用法通過解說與實(shí)例練習(xí),掌握在 matlab主函數(shù)M文件中創(chuàng)建子函數(shù)在實(shí)例練習(xí)過程中,回顧利用偽碼編寫簡單程序的方法掌握通過創(chuàng)建matlab函數(shù)M文件解決生活中的計(jì)算問題二、教學(xué)重點(diǎn)與難點(diǎn)本堂課教學(xué)的重點(diǎn)在于引導(dǎo)學(xué)生掌握matlab中函數(shù)M文件的創(chuàng)建及應(yīng)用。本堂課的難點(diǎn)在于理
2、解matlab中函數(shù)M文件主函數(shù)與子函數(shù)的區(qū)別及調(diào)用,局部變量與全局變量的定 義與應(yīng)用范圍的區(qū)別。三、教學(xué)方法本課程主要通過講授法、 演示法、練習(xí)法等相結(jié)合的方法來引導(dǎo)學(xué)生掌控本堂課的學(xué)習(xí) 內(nèi)容。1) 通過講授法向?qū)W生講述創(chuàng)建 matlab函數(shù)M文件的基本方法、全局變量與局部變量 的定義及用法等。2) 通過運(yùn)用多媒體設(shè)備現(xiàn)場演示matlab創(chuàng)建函數(shù)M文件的應(yīng)用實(shí)例。3)在掌握創(chuàng)建matlab函數(shù)M文件基本方法的基礎(chǔ)上,采用練習(xí)法引導(dǎo)學(xué)生創(chuàng)建函數(shù) M文件解決實(shí)際問題。四、教學(xué)內(nèi)容課后習(xí)題五(1)拉力測試裝置在測試過程中,被測樣本受均勻外力的作用產(chǎn)生形變。下圖中顯示 的是一組拉力測試數(shù)據(jù)。根據(jù)以下
3、公式計(jì)算應(yīng)力與形變:其中,是產(chǎn)生的應(yīng)力,單位為1bf/in2(psi);F為施加的外力,單位為1bf;A為樣本的截面積,單位為in2;為產(chǎn)生的形變,單位為in/in ; l為樣本的長度;10為樣本的原始長度。(a)測試樣本是直徑為 0.505in的金屬桿,根據(jù)直徑可以計(jì)算出金屬桿的截面積,進(jìn)步利用所提供的數(shù)據(jù)計(jì)算金屬桿的應(yīng)力和形變。(b)以形變?yōu)閤軸,應(yīng)力為y軸,作x-y線圖。用黑色實(shí)線連接各數(shù)據(jù)點(diǎn),并用圓圈 標(biāo)出各實(shí)測數(shù)據(jù)點(diǎn)。(c)添加標(biāo)題和坐標(biāo)軸的標(biāo)注。(d)屈服應(yīng)力或屈服點(diǎn)是指圖形從陡峭的直線變成平滑曲線所對應(yīng)的點(diǎn),在屈服點(diǎn)附近測試樣本的特性會發(fā)生顯著變化。 在屈服點(diǎn)之前, 時(shí),形變也消
4、失,與橡皮筋類似。若繼續(xù)增大外力作用, 塑性變形。在圖中對屈服點(diǎn)做出標(biāo)注。拉力測試數(shù)據(jù)測試樣本發(fā)生彈性形變,即當(dāng)外力消失則測試樣本會發(fā)生永久變形,也稱'-ok')之間,步長為 /100。矢量y和z分別等于負(fù)載長度負(fù)載長度0277502.01016502.00286502.02034002.00493002.04052002.006101002.08068502.008104002.120程序代碼:%定義已知變量F=1650 3400 5200 6850 7750 8650 9300 10100 10400;L=2.002 2.004 2.006 2.008 2.010 2.02
5、02.040 2.080 2.120;L0=2;A=0.505A2*pi/4;% oneyinli=F./Axinbian=(L-L0)./L0% two p1ot(yin1i,xinbian, 1% threetit1e('應(yīng)力應(yīng)變變化圖'),xlabel( 'yinli' ),ylabel( 'xinbian' % fourgtext('屈服點(diǎn)')(2)創(chuàng)建矢量x,范圍在020y xsin(x)z xcos(x)在x-y坐標(biāo)系中畫出x和y的關(guān)系曲線。在極坐標(biāo)系中畫出 x和y的關(guān)系曲線。畫出x、y和z的三維曲線,并在圖中添加標(biāo)題
6、和坐標(biāo)軸標(biāo)注。為了產(chǎn)生如下圖所示的類似龍卷風(fēng)的曲線應(yīng)如何調(diào)整plot3中的輸入?yún)?shù),用comet3代替plot3繪制曲線。三維當(dāng)跳ion .KB% onex=0:pi/100:20*pi;y=x.*sin(x);z=x.*cos(x);plot(x,y)% twofigure(2)polar(x,y)% threefigure(3)plot3(x,y,z)xlabel( 'x' ),ylabel( 'y' ),zlabel( 'z' ),title( '三維曲線) % fourfigure(4)plot3(z,y,x)xlabel(
7、39;z' ),ylabel( 'y' ),zlabel( 'x' ),title( '三維曲線)figure(5)comet3(z,y,x)(3)創(chuàng)建矢量x和y,數(shù)據(jù)變化范圍從-5至U+5,步長為0.5.用函數(shù)meshgrid將矢量x和y映射為兩上新的二維矩陣X和Y ,根據(jù)下述公式計(jì)算矢量Z :Z sin(.X2Y2) 用函數(shù)mesh創(chuàng)建Z的三維圖。 用函數(shù)suf創(chuàng)建Z的三維圖。比較單個(gè)輸入變量和三個(gè)輸入變量( X, Y, Z)時(shí)輸入結(jié)果的區(qū)別。給輸出的曲面圖增加渲染陰影效果。繪制Z的等高線圖。繪制Z的曲面圖并加上等高線。%變量定義 x=-5:
8、0.5:5; y=-5:0.5:5;X,丫尸meshgrid(x,y); Z=sin(sqrt(X.A2+Y.A2) ; % onemesh(Z) % two figure(2) subplot(2,2,1) surf(Z) subplot(2,2,2) surf(X,Y,Z) % three shading interp % four subplot(2,2,3) contour(X,Y,Z) % five subplot(2,2,4) surfc(X,Y,Z)(1)導(dǎo)入課堂內(nèi)容Matlab是一種基于函數(shù)的編程語言。函數(shù)就是用戶輸入?yún)?shù),返回輸出結(jié)果的程序。Matlab的有內(nèi)置函數(shù)和自定義函
9、數(shù)。內(nèi)置函數(shù)主要包括三角函數(shù)、對數(shù)函數(shù)、統(tǒng)計(jì)分析函 數(shù)等。Eg: 三角函數(shù) sin、cos、asin、acos 等Eg: sin(pi/2)ans = 1sin(90)ans = 0.8940由以上兩段小程序可以看出 matlab內(nèi)置的三角函數(shù) sin的輸入?yún)?shù)形式只能是弧也 若輸入角度則會顯示錯(cuò)誤的輸出結(jié)果。在matlab軟件的低版本內(nèi)里沒有自帶輸入?yún)?shù)為角度形式的內(nèi)置正弦函數(shù)。我們可以通過編寫matlab自定義函數(shù)即創(chuàng)建函數(shù)M文件來實(shí)現(xiàn)這一功能。(2)函數(shù)M文件創(chuàng)建的語法自定義函數(shù)和 matlab自定義函數(shù)的內(nèi)置函數(shù)一樣,具有相同的結(jié)構(gòu)。函數(shù)中必須包括 函數(shù)名、輸入?yún)?shù)和輸出結(jié)果三項(xiàng)。自定
10、義函數(shù)在M文件中編寫代碼。第一行是函數(shù)的定義行,它應(yīng)包括:弓I導(dǎo)詞 function輸出變量函數(shù)名稱輸入變量一個(gè)函數(shù)的定義如下:function output=my_function(input)Matlab中函數(shù)的命名應(yīng)遵循如下規(guī)則:士 函數(shù)名必須以字母開頭工 可以包括字母、數(shù)字和下劃線工不能使用預(yù)留的名稱工長度沒有限制,但是最好不要太長由此我們可以創(chuàng)建函數(shù)M文件來解決前一部分的遺留問題:function output=sin_degree(x)output=sin(pi.*x./180);(3)多輸入多輸出函數(shù)自定義函數(shù)也可以有多個(gè)輸入?yún)?shù)和輸出結(jié)果。一個(gè)函數(shù)的定義如下:function
11、a, b, c,尸my_function(x , y, z,Eg:余項(xiàng)函數(shù)rem(x, y)就是一個(gè)多輸入函數(shù)。余項(xiàng)函數(shù)就是求除法運(yùn)算中余數(shù)的函 數(shù),需要輸入除數(shù)和被除數(shù)兩個(gè)選項(xiàng)。(4)全局變量與局部變量全局變量是整個(gè)程序的變量。在命令窗口或腳本M文件中定義的變量都是全局變量。函數(shù)的M文件中所有變量都稱為局部變量。 在命令窗口或腳本 M文件中不能訪問自定 義函數(shù)定義的變量。同理自定義函數(shù)中也不能訪問工作區(qū)定義的變量。也就是說函數(shù)必須是自包含的,即:程序中的信息僅能通過輸入變量傳遞給函數(shù),函數(shù)中的信息僅能通過輸出變量傳遞給程序。(5)查看M文件代碼Matlab中提供了兩種函數(shù)類型。一種是內(nèi)置函數(shù)
12、,其程序代碼是看不見的。另一種是 M文件函數(shù),它存儲在程序提供的工具箱中,使用type命令可以查看 M文件代碼。函數(shù)sphere是Matlab中的實(shí)體模型函數(shù),可以產(chǎn)生一個(gè)三維球體,查看其程序代碼,輸入type sphere或 type sphere,)(6)應(yīng)用實(shí)例例題:個(gè)人住房公積金貸款買房,還款額及利息計(jì)算個(gè)人買房申請住房公積金貸款,還款形式選擇等額本金還款。5年以上貸款年利率為4.5%,貸款本金為10萬元,還款期限為10年。編寫函數(shù) M文件計(jì)算每月還款額、總還款 額和總利息,并將每月還款額輸出到一個(gè) txt文件中等額本金還款計(jì)算公式:每月還款金額=(貸款本金/還款月數(shù))+ (本金 一已
13、歸還本金累計(jì)額)X每月利率輸入:貸款本金,貸款利率,貸款期限輸出:每月還款額,總還款額,總利息流程圖和偽碼通常在編寫程序之前,要先畫出程序的流程圖或編寫偽碼,對程序進(jìn)行設(shè)計(jì)。流程圖 就是以圖形化的方法表現(xiàn)編程思路,偽碼是用文字的形式對程序算法進(jìn)行描述。在編寫程序時(shí),可以任意選擇其中一種或兩種方法對程序進(jìn)行設(shè)計(jì)。在編寫簡單程序中,最好使用偽碼的方法:用句子描述程序?qū)崿F(xiàn)的步驟將步驟轉(zhuǎn)換成程序中的注釋信息在注釋行之間國入恰當(dāng)?shù)膍atlab 程序代碼程序?qū)崿F(xiàn)的步驟定義函數(shù)M 文件計(jì)算每月應(yīng)還本金額計(jì)算每月的剩余本金計(jì)算每月還款額計(jì)算總還款額計(jì)算總利息輸出計(jì)算結(jié)果到已經(jīng)定義的txt 文件中將程序步驟轉(zhuǎn)換
14、為偽碼%define functional M-file%calculate monthly principal for payment% calculate monthly surplus principal% calculate monthly payment% calculate the total payment% calculate the total interest% output calculated results matlab 程序代碼%define functional M-filefunction ZHK,ZLX=DEBJHK(BJ,DK_interestrate,DK
15、_duration)%calculate monthly principal for paymentBJ_permonth=BJ./DK_duration;% calculate monthly surplus principalx=1:DK_duration;surplus_BJ=BJ-BJ_permonth.*x;% calculate monthly paymentMYHK=BJ_permonth+surplus_BJ.*DK_interestrate/12;% calculate the total paymentZHK=sum(MYHK);% calculate the total
16、interestZLX=ZHK-BJ;% output calculated resultsy=fopen('result.txt','wt');fprintf(y,'Zong huan kuan er:%8.3f yuan'n ',ZHK);fprintf(y,'Zong li xi:%8.3f yuan'n ',ZLX);fprintf(y,'Di %2.0f ge yue huan kuan er wei: %8.3f yuann',x;MYHK);注:格式化輸出函數(shù)fprintf的用法Eg
17、: cows=2 :5 ;fprintf('There are %5.2f cows in the pasture n',cows)There are 2.00 cows in the pastureThere are 3.00 cows in the pastureThere are 4.00 cows in the pastureThere are 5.00 cows in the pasture上述代碼中,函數(shù)fprintf的第一個(gè)參數(shù)包含一個(gè)占位符()。占位符不但指定了輸出的格式,還表明了變量輸出的位置。程序代碼中的5.2f表明變量cows輸出的格式。f表示用定點(diǎn)數(shù)格式
18、顯示。在使用函數(shù)fprintf時(shí),初學(xué)者常犯的錯(cuò)誤是忘記在占位符后輸入類型域標(biāo)識,如f,這樣函數(shù)將不會正常工作,而且還不會給出錯(cuò)誤提示。類型域還有其它顯示格式:頭小 品結(jié) 果7of螃瓢ZpXd鈉軟跳械,蛔嬲糊顯示Zg吃F或已中野等形文顯示和鼠傕次跖一將例Xs使用可選項(xiàng) width field和precision field 可以控制數(shù)據(jù)輸出寬度和精度。Width field 必須是正的十進(jìn)制整數(shù),用于控制字符顯示的最小寬度。Precision field 必須以點(diǎn)(.)開始,上例中5.2f說明字符顯示的最小用于確定指數(shù)或定點(diǎn)數(shù)中小數(shù)點(diǎn)后的數(shù)字位數(shù)。例如: 寬度是5位,小數(shù)點(diǎn)后有2位數(shù)字。上例中
19、n是一種特殊格式命令,用于換行顯示。還有一些其它的特殊格式命令:格或高令功能n扶時(shí)目刎雌溫鋤照除了可以在命令窗口中輸出格式化數(shù)據(jù)外,函數(shù) fprintf還可以把數(shù)據(jù)輸出到文件中。首先創(chuàng)建輸出文件,然后用函數(shù)fopen打開該文件,同時(shí)給打開的文件分配一個(gè)文件標(biāo)識符(即文件的別名):file_id =fopen( ' my_output_file.txt ' , ' wt');其中,函數(shù)fopen的第一個(gè)輸入?yún)?shù)是要打開的文件名。第二個(gè)輸入?yún)?shù)是字符串wt'表示要對文件進(jìn)行寫操作。如果能正確打開這個(gè)輸出文件,并且已經(jīng)給該文件分配了文件標(biāo)識符,就可以把這個(gè)文件
20、標(biāo)識符作為函數(shù)fprintf的第一個(gè)輸入?yún)?shù)按照指定格式把數(shù)據(jù)寫入到文件中:fprintf(file_id,' Some example output ns ' %pli*21000)并在命令窗口返回寫入數(shù)據(jù)的字節(jié)數(shù)。(7)子函數(shù)在同一個(gè)文件中,除了主函數(shù)外還可以創(chuàng)建多個(gè)子函數(shù)。子函數(shù)只能被主函數(shù)調(diào)用。使用子函數(shù)有利于程序的模塊化,能夠使程序的可讀性更強(qiáng)。每一個(gè)matlab的M文件只能有一個(gè)主函數(shù),并且 M文件名必須和主函數(shù)名相同。主函數(shù)之后可以定義任何合法的子函數(shù),子函數(shù)的命名規(guī)則和變量的命名規(guī)則相同。%define functional M-filefunction ZHK
21、,ZLX=DEBJHK00(BJ,DK_interestrate,DK_duration)%calculate monthly principal for payment a=BJ./DK_duration;% calculate monthly surplus principalx=1:DK_duration;b=BJ-a.*x;% calculate monthly interestratec= DK_interestrate/12;% calculate monthly paymentMYHK=zhihanshu(a, b,c);% calculate the total payment
22、ZHK=sum(MYHK);% calculate the total interestZLX=ZHK-BJ;% output calculated resultsy=fopen('result.txt','wt');fprintf(y,'Zong huan kuan er:%8.3f yuann ',ZHK);fprintf(y,'Zong li xi:%8.3f yuann ',ZLX);fprintf(y,'Di %2.0f ge yue huan kuan er wei: %8.3f yuann',x;MY
23、HK);function output=zhihanshu(BJ_permonth, surplus_BJ,interestrate_permonth) output=BJ_permonth+surplus_BJ.* interestrate_permonth;(8)匿名函數(shù)和函數(shù)句柄、復(fù)合函數(shù)一般情況下,創(chuàng)建用戶自定義函數(shù),需要把函數(shù)存儲起來以便將來編程使用。匿名函數(shù)是Matlab7中一種新的、簡單的函數(shù)構(gòu)造方法。用戶可以直接在命令窗口或腳本M文件中定義和使用匿名函數(shù)。匿名函數(shù)更像一個(gè)定義的變量,只要不清空工作區(qū),匿名函數(shù)都是有效的。下面的程序代碼給出了一個(gè)匿名函數(shù)的例子:ln=(x) log(x)符號提示 Matlab , ln是一個(gè)函數(shù)在符號后面緊接著定義了函數(shù)的輸入?yún)?shù)最后定義函數(shù)關(guān)鍵概念:用戶可以在 M文件或命令窗口中定義匿名函數(shù)在程序中,匿名函數(shù)的用法和其它函數(shù)的用法相同。ln(10)ans=2.302
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 流轉(zhuǎn)租地合同協(xié)議書范本
- 解除勞動(dòng)合同協(xié)議書圖
- 合同轉(zhuǎn)私賬協(xié)議書
- 毛坯房子合同協(xié)議書范本
- 婚介協(xié)議書怎么取消合同
- 針對Access考試的學(xué)習(xí)計(jì)劃試題及答案
- 計(jì)算機(jī)二級JAVA論壇互動(dòng)試題及答案
- 技術(shù)協(xié)議書與合同的關(guān)系
- 計(jì)算機(jī)二級VFP考生經(jīng)驗(yàn)交流嘗試試題及答案
- 財(cái)務(wù)管理中的邏輯分析與實(shí)務(wù)相結(jié)合試題及答案
- 2025年六一兒童節(jié)校長致辭:每個(gè)孩子都是一朵會發(fā)光的花
- 公司應(yīng)急演練方案
- 2025保密法宣傳專題培訓(xùn)課件
- 班組安全教育試題及答案
- 虎符銅砭刮痧課件
- 《醫(yī)療機(jī)構(gòu)工作人員廉潔從業(yè)九項(xiàng)準(zhǔn)則》解讀
- 水產(chǎn)養(yǎng)殖網(wǎng)箱租賃與飼料供應(yīng)合作協(xié)議
- 2025年全國保密教育線上培訓(xùn)考試試題庫含答案(新)附答案詳解
- 《神經(jīng)網(wǎng)絡(luò)模型》課件
- 四川省成都外國語2025年高三聯(lián)考數(shù)學(xué)試題科試題含解析
- (四調(diào))武漢市2025屆高中畢業(yè)生四月調(diào)研考試 英語試卷(含答案)
評論
0/150
提交評論