matlab物理案例分析課件_第1頁
matlab物理案例分析課件_第2頁
matlab物理案例分析課件_第3頁
matlab物理案例分析課件_第4頁
matlab物理案例分析課件_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1Matlab在物理中的應(yīng)用-案例研究1Matlab在物理中的應(yīng)用-案例研究1Matlab及其應(yīng)用2一、Matlab概述MATLAB是美國Mathworks公司推出的一套高性能的數(shù)值分析和計算軟件。最初的目的是為了解決矩陣的運算問題而開發(fā)的,經(jīng)過不斷完善,已成為將矩陣運算、數(shù)值分析、圖形處理、編程技術(shù)結(jié)合在一起的功能強大的工具。它的優(yōu)點在于快速開發(fā)計算方法,而不在于計算速度。Matlab及其應(yīng)用2一、Matlab概述MATLAB是美2Matlab及其應(yīng)用3Matlab的學(xué)習(xí)方法必須做大量的練習(xí),熟悉其中的函數(shù)聯(lián)系和自己的課題相關(guān),深刻的體會多看幫助文件,又一本好的參考書記?。篗atlab可以做很多事情Matlab及其應(yīng)用3Matlab的學(xué)習(xí)方法必須做大量的練習(xí)3Matlab及其應(yīng)用41.1Matlab的出現(xiàn)

70年代中期,CleveMoler和他的同事開發(fā)了LINPACK和EISPACK的Fortran子程序庫

70年代末期,CleveMoler在新墨西哥大學(xué)給學(xué)生開線性代數(shù),為學(xué)生編寫了接口程序,這程序取名為MATLAB,即MATrixLABoratory1983年春天,工程師JohnLittle與Moler、SteveBangert一起開發(fā)了第二代專業(yè)版MATLAB1984年,MathWorks公司成立,MATLAB正是推向市場。Matlab及其應(yīng)用41.1Matlab的出現(xiàn)70年代中4Matlab及其應(yīng)用51.2

Matlab的版本演化Matlab1.0Pcmatlab->matlab386Matlab3.5+simulinkMatlab4.0:simlink內(nèi)嵌Matlab5.0:全面的面向?qū)ο驧atlab5.1~5.3Matlab6.0Matlab6.5:購并了MATRIXxMatlab7.0:2004Matlab及其應(yīng)用51.2Matlab的版本演化Matl5Matlab及其應(yīng)用61.3Matlab的特點1高效方便的矩陣和數(shù)組運算2編程效率高(庫函數(shù)非常豐富)3結(jié)構(gòu)化、面向?qū)ο?方便的繪圖工具5用戶使用方便6功能強大的工具箱(核心部分中有數(shù)百個核心內(nèi)部函數(shù))總之,Matlab在信號處理、建模、系統(tǒng)識別、控制、優(yōu)化等領(lǐng)域的問題處理上優(yōu)勢明顯于其它高級語言。Matlab及其應(yīng)用61.3Matlab的特點1高效方便6Matlab及其應(yīng)用71.4

解決物理問題常用的軟件Mathmatica數(shù)學(xué)計算功能。復(fù)雜符號計算,主要在理論界MAGIC電磁粒子仿真軟件仿真軟件:HFSS、CST等等Matlab及其應(yīng)用71.4解決物理問題常用的軟件Math7Matlab及其應(yīng)用8二、MATLAB基礎(chǔ)使用2.1MATLAB操作界面簡介操作桌面的缺省外貌與先前版本相比,6.x版引入大量的交互工作界面,如通用操作界面、幫助界面、演示界面等指令窗、歷史指令窗、工作空間瀏覽器和只有窗名的當(dāng)前目錄窗“開始”按鈕(matlab6.5版本新加)通用操作界面Matlab及其應(yīng)用8二、MATLAB基礎(chǔ)使用2.1MAT8Matlab及其應(yīng)用9通用交互界面介紹內(nèi)存數(shù)組編輯器(ArrayEditor)在工作空間瀏覽器中對變量操作時才啟動交互界面分類目錄窗(LauchPad)??烧归_成樹狀結(jié)構(gòu),列著所有交互界面。M文件編輯/調(diào)試器(Editor/Debugger)當(dāng)進(jìn)行“打開文件”操作時才啟動。幫助導(dǎo)航/瀏覽器(Helpavigator/Browser)

詳盡展示由超文本寫成的在線幫助。Matlab及其應(yīng)用9通用交互界面介紹內(nèi)存數(shù)組編輯器(Arr9Matlab及其應(yīng)用102.2Matlab命令的兩種執(zhí)行方式一.交互式的命令執(zhí)行方式用戶在命令窗口逐條輸入命令,matlab逐條執(zhí)行,這種方式操作簡單直觀,但速度慢,中間過程無法保留。通用操作界面二.M命令文件的程序設(shè)計方式將有關(guān)命令編成程序存儲在一個文件(擴(kuò)展名為.m)中,matlab自動依次執(zhí)行,可調(diào)試復(fù)雜的程序(調(diào)試時只顯示第一個錯誤),是實際應(yīng)用中主要的執(zhí)行方式Matlab及其應(yīng)用102.2Matlab命令的兩種執(zhí)行方10Matlab及其應(yīng)用112.3幫助的使用

MATLAB中有以下幾種方法獲得幫助:幫助命令、幫助窗口、MATLAB幫助臺、在線幫助頁或用Web菜單直接鏈接到MathWorks公司的主頁。Matlab及其應(yīng)用112.3幫助的使用MAT11Matlab及其應(yīng)用12怎樣獲得詳盡的幫助信息首先是MATLAB窗口中的help命令,它最常用、最快,往往也是最有效的。給出關(guān)鍵字就能找到相應(yīng)的說明。Help命令簡單易用,但是它要求準(zhǔn)確給出關(guān)鍵字,如果記憶不準(zhǔn),就很難找到。這時就應(yīng)該用第二種方案。HelpDesk:這是MATLAB的HTML格式的幫助文檔,有著很好的組織??梢栽诿钚墟I入helpdesk,進(jìn)入“MatlabHelpDesk”。HelpDesk的搜索可以使用不完全關(guān)鍵字,這樣即使遇到記憶模糊的情況也可以很快查到。前面兩種方法所得到的幫助信息常常是不夠細(xì)致的,需要用第三種途徑來補充,這就是電子版的使用手冊。MATLAB里包含了大量關(guān)于MATLAB安裝、使用、編程以及各種工具箱等的電子版手冊,全部為PDF格式,具有搜索功能,因此也可以在指定的手冊中搜索關(guān)鍵字,使用非常方便。Matlab及其應(yīng)用12怎樣獲得詳盡的幫助信息首先是MATL12Matlab及其應(yīng)用132.4Matlab變量變量要求變量名、函數(shù)名區(qū)分字母的大小寫。如SIN、Sin與sin是不同的對6.5以前的版本,變量名字符不超過31個,對6.5版本,變量名最多可包含63個字符。超出長度的字符被忽略變量必須以字母開頭,之后可以是任意字母、數(shù)字或者下滑線,但不能是空格和標(biāo)點Matlab不支持漢字,漢字不能出現(xiàn)在變量名和文件名中Matlab及其應(yīng)用132.4Matlab變量變量要求13Matlab及其應(yīng)用14

特殊變量特殊變量取值ans用于結(jié)果的缺省變量名pi圓周率eps計算機(jī)的最小數(shù)inf無窮大如1/0Nan或nan不定量如0/0iji=j=realmin最小的可用正實數(shù)realmax最大的可用正實數(shù)Matlab及其應(yīng)用14特殊變量特殊變量取值ans用于結(jié)果14Matlab及其應(yīng)用152.5

復(fù)數(shù)不需要特殊的處理。復(fù)數(shù)可以表示為:>>a=10-9i>>a=10-9j%i=j=sqrt(-1)注意下面的例子中的表達(dá)式

>>a4=5+sin(.5)*i如果把sin(.5)*i中的*去掉,就會出錯,sin(.5)i對MATLAB是無意義的,直接以字符i和j結(jié)尾,只適用于簡單數(shù)值,不適用于表達(dá)式。

復(fù)數(shù)運算不需要特殊處理,可以直接進(jìn)行。另外real(z),imag(z),abs(z)和angle(z)等Matlab及其應(yīng)用152.5復(fù)數(shù)不需要特殊的處理。復(fù)數(shù)可15Matlab及其應(yīng)用16三、MATLAB的數(shù)組(矩陣)及其運算3.1數(shù)組(矩陣)的創(chuàng)建

1.直接輸入法整個輸入數(shù)組必須以方括號“[]”為其首尾數(shù)組的行與行之間必須用”;”或者【Enter】隔離數(shù)組元素必須由逗號”,”或空格分隔2.一維數(shù)組的冒號生成法x=a:inc:ba是數(shù)組的第一個元素,inc是間隔,b是最后一個元素a,inc,b之間的冒號須在英文狀態(tài)下輸入。中文中的冒號將導(dǎo)致matlab出錯。inc缺省值為1,可以取正數(shù)或負(fù)數(shù)。Matlab及其應(yīng)用16三、MATLAB的數(shù)組(矩陣)及其運16Matlab及其應(yīng)用17語句生成矩陣3.linspace命令a=linspace(1,10,5);%產(chǎn)生線性等間距的列向量4.logspace命令b=logspace(0,2,10);%產(chǎn)生對數(shù)等間距的列向量5.矩陣連接c=[ab];6.數(shù)組生成函數(shù)

zerosoneseyerandrandnMatlab及其應(yīng)用17語句生成矩陣3.linspace命17Matlab及其應(yīng)用183.2矩陣運算矩陣的轉(zhuǎn)置用符號’來表示和實現(xiàn)非共軛轉(zhuǎn)置.’矩陣的四則運算+-*/\點乘:.*右除:./左除:.\矩陣的乘方^矩陣乘方.^元素對元素的乘方Matlab及其應(yīng)用183.2矩陣運算矩陣的轉(zhuǎn)置18Matlab及其應(yīng)用19四、流程控制為了便于應(yīng)用,MATLAB提供了一些流程控制的命令。這些命令對腳本編寫帶來了一些方便,但是需要注意的是,盡量不要使用這些流程控制命令,尤其是循環(huán)控制命令。1for循環(huán)for循環(huán)允許一組命令以固定的次數(shù)重復(fù),它的一般形式是forx=arraycommandendfor和end之間的命令串按數(shù)組array的每一列執(zhí)行一次,直到n次后終止。Matlab及其應(yīng)用19四、流程控制為了便于應(yīng)用,MATLA19Matlab及其應(yīng)用201For循環(huán)應(yīng)當(dāng)注意的一些方面for循環(huán)不能使用內(nèi)部重新賦值循環(huán)變量而終止;for循環(huán)內(nèi)部接受任何有效的MATLAB數(shù)組;for循環(huán)可以嵌套;只要有矩陣形式可以解決的問題,不要使用for循環(huán)。使用for循環(huán)的算法執(zhí)行很慢,一個好的MATLAB算法部應(yīng)當(dāng)出現(xiàn)循環(huán)語句。循環(huán)可以使用break跳出,但只跳出所在的循環(huán),不跳出整個嵌套結(jié)構(gòu)。Matlab及其應(yīng)用201For循環(huán)應(yīng)當(dāng)注意的一些方面fo20Matlab及其應(yīng)用212while循環(huán)與for循環(huán)以固定的次數(shù)求一組指令相反,while循環(huán)以不定的次數(shù)求一組語句的值。While循環(huán)的一般形式為:whileexpressioncommondsend只要表達(dá)式expression里的所有元素為真,就執(zhí)行命令串commands。通常表達(dá)式求值給一個標(biāo)量值,單數(shù)組值也同樣有效。Matlab及其應(yīng)用212while循環(huán)與for循環(huán)以固定21Matlab及其應(yīng)用223if-else-end結(jié)構(gòu)很多情況下,命令的序列必須根據(jù)關(guān)系的檢驗有條件的執(zhí)行,它由if-else-end結(jié)構(gòu)提供。它的結(jié)構(gòu)如下:ifexpression1commands1elseifexpression2commands2elseif…

…elseifcommandsendMatlab及其應(yīng)用223if-else-end結(jié)構(gòu)很多情22Matlab及其應(yīng)用23五、數(shù)據(jù)的可視化二維圖形

在二維曲線的繪制命令中,最重要、最基本的命令時plot,其他許多特殊繪圖命令都以它為基礎(chǔ)形成。

1plot(x,’s’)x為實向量時,以該向量元素的下標(biāo)為橫坐標(biāo)、元素值為縱坐標(biāo)畫出一條連續(xù)曲線。X為實矩陣時,則按列繪制每列元素值相對其下標(biāo)的曲線,圖中曲線數(shù)等于X陣列數(shù)。s用來指定線型。(正方形)Matlab及其應(yīng)用23五、數(shù)據(jù)的可視化二維圖形23Matlab及其應(yīng)用242plot(x,y,’s’)x,y為同維向量時,繪制以x、y元素為橫、縱坐標(biāo)的曲線。3plot(x1,y1,’s1’,x2,y2,’s2’,…)

在此格式中,每個繪線“三元組”(x,y,’s’)的結(jié)構(gòu)和作用,與plot(x,y,’s’)相同,不同的三元組之間沒有約束。Matlab及其應(yīng)用242plot(x,y,’s’)24Matlab及其應(yīng)用25線型和標(biāo)記

Plot命令中,在每一對數(shù)組數(shù)據(jù)后面,給plot一個附加參量,就可以指定所要的顏色和線型。

>>plot(x,y,’rd’,x,z,’k--’,x,y,’b-.’,x,z,’co’)b藍(lán)色,c青色,g綠色,k黑色,m紫紅色,r紅色,w白色,y黃色加格線和標(biāo)注,gridon命令在當(dāng)前圖形的單位標(biāo)記處加格線。gridoff命令取消格線。用text命令可以在圖形的任意指定位置增加標(biāo)記和其他文本信息,格式是text(x,y,’string’).Matlab及其應(yīng)用25線型和標(biāo)記Plot命25Matlab及其應(yīng)用26>>plot(x,y,x,z)>>grid>>title(‘sin(x)andcos(x)’)>>xlabel(‘independentvariablex’)>>ylabel(‘dependentvariableyandz’)>>text(2,0.8.’sin(x)’)Matlab及其應(yīng)用26>>plot(x,y,x,z)26Matlab及其應(yīng)用27plot應(yīng)用舉例——畫一個圓程序如下:R=2;t=0:pi/20:2*pi;x=R*sin(t);y=R*cos(t)plot(x,y,'b:'),gridMatlab及其應(yīng)用27plot應(yīng)用舉例——畫一個圓程序如下27Matlab及其應(yīng)用28例1——無阻力拋射體的運動設(shè)目標(biāo)相對于射點的高度為,給定初速,試計算物體在真空中飛行的時間和距離?!艚o阻力拋射體的飛行是中學(xué)物理就解決了的問題,本題的不同點是目標(biāo)和射點不在同一高度上,用MATLAB可使整個計算和繪圖過程自動化。其好處是快速地計算物體在不同初速和射角下的飛行時間和距離。關(guān)鍵是在求落點時間時,需要解一個二次線性代速方程。Matlab及其應(yīng)用28例1——無阻力拋射體的運動設(shè)目標(biāo)相對28Matlab及其應(yīng)用29MATLAB程序clear;y0=0;x0=0;

%初始位置vMag=input(‘輸入初始速度(m/s):’);%輸入初始速度的大小和方向vDir=input('輸入初速方向(度):');

yf=input(‘輸入目標(biāo)高度(m):’);%輸入目標(biāo)高度vx0=vMag*cos(vDir*(pi/180));%計算x,y方向的初始速度vy0=vMag*sin(vDir*(pi/180));wy=-9.81;wx=0;%重力加速度(m/s^2)tf=roots([wy/2,vy0,y0-yf]);%解方程,計算落點時間tf=max(tf);%去掉庸解t=0:0.1:tf;y=y0+vy0*t+wy*t.^2/2;%計算軌跡x=x0+vx0*t+wx*t.^2/2;xf=max(x),plot(x,y);%計算射程gridMatlab及其應(yīng)用29MATLAB程序clear;y0=029Matlab及其應(yīng)用30初始速度50m/s,初速方向為40度,目標(biāo)高度為8m時的輸入結(jié)果Matlab及其應(yīng)用30初始速度50m/s,初速方向為40度30Matlab及其應(yīng)用31例2——有空氣阻力拋射體的運動步驟一:給定小球質(zhì)量m,重力加速度g,拖曳系數(shù)C和小球面積A(半徑為r),根據(jù)D=rou*C*A/2求出D步驟二:給定小球的初始速度v(1)(大小和方向角theta),小球的位置(x(1)和y(1)。設(shè)定時間間隔detat步驟三:選定最大的間隔數(shù)N(或者最大的時間)Matlab及其應(yīng)用31例2——有空氣阻力拋射體的運動31Matlab及其應(yīng)用32求解步驟步驟四:當(dāng)n<N或者t<時循環(huán)步驟五到步驟九步驟五:計算加速度分量

步驟六:打印或者畫Matlab及其應(yīng)用32求解步驟步驟四:當(dāng)n<N或者t<32Matlab及其應(yīng)用33步驟七:計算新的速度分量步驟八:計算新的位移坐標(biāo)步驟九:時間上增加一個間隔步驟十:結(jié)束

Matlab及其應(yīng)用33步驟七:計算新的速度分量33Matlab及其應(yīng)用34Matlab程序g=9.8;m=0.145;C=0.5;r=0.0366;A=pi*r^2;rou=1.2;D=(rou*C*A)/2;detat=0.01;theta=(35/180*pi);x(1)=0;y(1)=0;V(1)=50;Vx(1)=V(1)*cos(theta);Vy(1)=V(1)*sin(theta);N=700;Matlab及其應(yīng)用34Matlab程序g=9.8;34Matlab及其應(yīng)用35forn=1:NV(n)=sqrt(Vx(n)^2+Vy(n)^2)ax(n)=-(D/m)*V(n)*Vx(n);ay(n)=-g-(D/m)*V(n)*Vy(n);Vx(n+1)=Vx(n)+ax(n)*detat;Vy(n+1)=Vy(n)+ay(n)*detat;x(n+1)=x(n)+Vx(n)*detat+0.5*ax(n)*detat^2;y(n+1)=y(n)+Vy(n)*detat+0.5*ay(n)*detat^2;px(n)=Vx(1)*n*detat;py(n)=Vy(1)*n*detat-0.5*g*(n*detat)^2;endplot(x,y,'r',px,py,'g');gridxlabel('x'),ylabel('y');title('Projectilemotionwithairresistance');Matlab及其應(yīng)用35forn=1:N35Matlab及其應(yīng)用36結(jié)果Matlab及其應(yīng)用36結(jié)果36Matlab及其應(yīng)用37例3——有空氣阻力的落體運動。一個質(zhì)量為75kg的人在某一高度靜止下落,空氣阻力F與v的關(guān)系滿足F=-k,其中常數(shù)k=0.22kg/m,根據(jù)牛頓第二定律知

若令g=9.80m/,求下落過程中速度v(t)和位移x(t)的表達(dá)式,并畫圖。Matlab及其應(yīng)用37例3——有空氣阻力的落體運動。一個質(zhì)37Matlab及其應(yīng)用38推導(dǎo)Matlab及其應(yīng)用38推導(dǎo)38Matlab及其應(yīng)用39Matlab程序v=dsolve('m*D2v+2*k*v*Dv=0','v(0)=0,Dv(0)=g','t')x=dsolve('m*g-k*(Dx)^2=m*D2x','x(0)=0,Dx(0)=0,D2x(0)=g','t')m=75;k=0.22;g=9.8t=0:0.5:30;v=tanh(t.*(g*m*k)^(1/2)/m)*(g*m*k)^(1/2)/k%x=(m/k)*log(cosh(t.*(k*g/m)^1/2))plot(t,v),gtext('v(t)')holdonplot(t,x),gtext('x(t)')Matlab及其應(yīng)用39Matlab程序v=dsolve('39Matlab及其應(yīng)用40結(jié)果Matlab及其應(yīng)用40結(jié)果40Matlab及其應(yīng)用41例4-小球碰撞問題質(zhì)量為m的小球以速度正面碰撞質(zhì)量為M的靜止小球,假設(shè)碰撞是完全彈性的,即沒有能量損失,求碰撞后兩球的速度,及它們與兩球質(zhì)量比K=M/m的關(guān)系。◆建模設(shè)碰撞后兩球速度都與同向,球m的速度為u,球M的速度為v,列出動量守恒和能量守恒方程,引入質(zhì)量比K=M/m和無量綱速度ur=u/,vr=v/后,有Matlab及其應(yīng)用41例4-小球碰撞問題質(zhì)量為m的小球以速41Matlab及其應(yīng)用42推導(dǎo)過程動量守恒動能守恒化為(1)(2)(3)(4)Matlab及其應(yīng)用42推導(dǎo)過程(1)(2)(3)(4)42Matlab及其應(yīng)用43由(3)代入(4)展開并整理多項式(6)得可用roots命令求根(5)(6)Matlab及其應(yīng)用43(5)(6)43Matlab及其應(yīng)用44MATLAB程序clearK=logspace(-1,1,11);%設(shè)自變量數(shù)組K,從K=0.1~10,按等比取11個點fori=1:length(K)%對各個K循環(huán)計算ur1=roots([(1+1/K(i)),-2/K(i),(1/K(i)-1)]);%求兩個解ur(i)=ur1(abs(ur1-1)>0.001);%去掉在1鄰近的庸解endvr=(1-ur)./K;%用(5)式求vr,用元素群運算[K;ur;vr]%顯示輸出數(shù)據(jù)semilogx(K,ur,K,vr),grid,gtext(‘ur’),gtext(‘vr’)%繪圖

Matlab及其應(yīng)用44MATLAB程序clear44Matlab及其應(yīng)用45輸出結(jié)果Matlab及其應(yīng)用45輸出結(jié)果45Matlab及其應(yīng)用46結(jié)果的物理分析從上圖中可以看出當(dāng)K>1時,為負(fù),即當(dāng)靜止球質(zhì)量大于主動球質(zhì)量時,主動球?qū)⒎磸?。?dāng)K=1時,=0,即主動球?qū)⑷縿幽軅鹘o靜止球。當(dāng)K<1時,為正,說明主動球?qū)⒗^續(xù)沿原來方向運動。Matlab及其應(yīng)用46結(jié)果的物理分析從上圖中可以看出4647Matlab在物理中的應(yīng)用-案例研究1Matlab在物理中的應(yīng)用-案例研究47Matlab及其應(yīng)用48一、Matlab概述MATLAB是美國Mathworks公司推出的一套高性能的數(shù)值分析和計算軟件。最初的目的是為了解決矩陣的運算問題而開發(fā)的,經(jīng)過不斷完善,已成為將矩陣運算、數(shù)值分析、圖形處理、編程技術(shù)結(jié)合在一起的功能強大的工具。它的優(yōu)點在于快速開發(fā)計算方法,而不在于計算速度。Matlab及其應(yīng)用2一、Matlab概述MATLAB是美48Matlab及其應(yīng)用49Matlab的學(xué)習(xí)方法必須做大量的練習(xí),熟悉其中的函數(shù)聯(lián)系和自己的課題相關(guān),深刻的體會多看幫助文件,又一本好的參考書記?。篗atlab可以做很多事情Matlab及其應(yīng)用3Matlab的學(xué)習(xí)方法必須做大量的練習(xí)49Matlab及其應(yīng)用501.1Matlab的出現(xiàn)

70年代中期,CleveMoler和他的同事開發(fā)了LINPACK和EISPACK的Fortran子程序庫

70年代末期,CleveMoler在新墨西哥大學(xué)給學(xué)生開線性代數(shù),為學(xué)生編寫了接口程序,這程序取名為MATLAB,即MATrixLABoratory1983年春天,工程師JohnLittle與Moler、SteveBangert一起開發(fā)了第二代專業(yè)版MATLAB1984年,MathWorks公司成立,MATLAB正是推向市場。Matlab及其應(yīng)用41.1Matlab的出現(xiàn)70年代中50Matlab及其應(yīng)用511.2

Matlab的版本演化Matlab1.0Pcmatlab->matlab386Matlab3.5+simulinkMatlab4.0:simlink內(nèi)嵌Matlab5.0:全面的面向?qū)ο驧atlab5.1~5.3Matlab6.0Matlab6.5:購并了MATRIXxMatlab7.0:2004Matlab及其應(yīng)用51.2Matlab的版本演化Matl51Matlab及其應(yīng)用521.3Matlab的特點1高效方便的矩陣和數(shù)組運算2編程效率高(庫函數(shù)非常豐富)3結(jié)構(gòu)化、面向?qū)ο?方便的繪圖工具5用戶使用方便6功能強大的工具箱(核心部分中有數(shù)百個核心內(nèi)部函數(shù))總之,Matlab在信號處理、建模、系統(tǒng)識別、控制、優(yōu)化等領(lǐng)域的問題處理上優(yōu)勢明顯于其它高級語言。Matlab及其應(yīng)用61.3Matlab的特點1高效方便52Matlab及其應(yīng)用531.4

解決物理問題常用的軟件Mathmatica數(shù)學(xué)計算功能。復(fù)雜符號計算,主要在理論界MAGIC電磁粒子仿真軟件仿真軟件:HFSS、CST等等Matlab及其應(yīng)用71.4解決物理問題常用的軟件Math53Matlab及其應(yīng)用54二、MATLAB基礎(chǔ)使用2.1MATLAB操作界面簡介操作桌面的缺省外貌與先前版本相比,6.x版引入大量的交互工作界面,如通用操作界面、幫助界面、演示界面等指令窗、歷史指令窗、工作空間瀏覽器和只有窗名的當(dāng)前目錄窗“開始”按鈕(matlab6.5版本新加)通用操作界面Matlab及其應(yīng)用8二、MATLAB基礎(chǔ)使用2.1MAT54Matlab及其應(yīng)用55通用交互界面介紹內(nèi)存數(shù)組編輯器(ArrayEditor)在工作空間瀏覽器中對變量操作時才啟動交互界面分類目錄窗(LauchPad)??烧归_成樹狀結(jié)構(gòu),列著所有交互界面。M文件編輯/調(diào)試器(Editor/Debugger)當(dāng)進(jìn)行“打開文件”操作時才啟動。幫助導(dǎo)航/瀏覽器(Helpavigator/Browser)

詳盡展示由超文本寫成的在線幫助。Matlab及其應(yīng)用9通用交互界面介紹內(nèi)存數(shù)組編輯器(Arr55Matlab及其應(yīng)用562.2Matlab命令的兩種執(zhí)行方式一.交互式的命令執(zhí)行方式用戶在命令窗口逐條輸入命令,matlab逐條執(zhí)行,這種方式操作簡單直觀,但速度慢,中間過程無法保留。通用操作界面二.M命令文件的程序設(shè)計方式將有關(guān)命令編成程序存儲在一個文件(擴(kuò)展名為.m)中,matlab自動依次執(zhí)行,可調(diào)試復(fù)雜的程序(調(diào)試時只顯示第一個錯誤),是實際應(yīng)用中主要的執(zhí)行方式Matlab及其應(yīng)用102.2Matlab命令的兩種執(zhí)行方56Matlab及其應(yīng)用572.3幫助的使用

MATLAB中有以下幾種方法獲得幫助:幫助命令、幫助窗口、MATLAB幫助臺、在線幫助頁或用Web菜單直接鏈接到MathWorks公司的主頁。Matlab及其應(yīng)用112.3幫助的使用MAT57Matlab及其應(yīng)用58怎樣獲得詳盡的幫助信息首先是MATLAB窗口中的help命令,它最常用、最快,往往也是最有效的。給出關(guān)鍵字就能找到相應(yīng)的說明。Help命令簡單易用,但是它要求準(zhǔn)確給出關(guān)鍵字,如果記憶不準(zhǔn),就很難找到。這時就應(yīng)該用第二種方案。HelpDesk:這是MATLAB的HTML格式的幫助文檔,有著很好的組織??梢栽诿钚墟I入helpdesk,進(jìn)入“MatlabHelpDesk”。HelpDesk的搜索可以使用不完全關(guān)鍵字,這樣即使遇到記憶模糊的情況也可以很快查到。前面兩種方法所得到的幫助信息常常是不夠細(xì)致的,需要用第三種途徑來補充,這就是電子版的使用手冊。MATLAB里包含了大量關(guān)于MATLAB安裝、使用、編程以及各種工具箱等的電子版手冊,全部為PDF格式,具有搜索功能,因此也可以在指定的手冊中搜索關(guān)鍵字,使用非常方便。Matlab及其應(yīng)用12怎樣獲得詳盡的幫助信息首先是MATL58Matlab及其應(yīng)用592.4Matlab變量變量要求變量名、函數(shù)名區(qū)分字母的大小寫。如SIN、Sin與sin是不同的對6.5以前的版本,變量名字符不超過31個,對6.5版本,變量名最多可包含63個字符。超出長度的字符被忽略變量必須以字母開頭,之后可以是任意字母、數(shù)字或者下滑線,但不能是空格和標(biāo)點Matlab不支持漢字,漢字不能出現(xiàn)在變量名和文件名中Matlab及其應(yīng)用132.4Matlab變量變量要求59Matlab及其應(yīng)用60

特殊變量特殊變量取值ans用于結(jié)果的缺省變量名pi圓周率eps計算機(jī)的最小數(shù)inf無窮大如1/0Nan或nan不定量如0/0iji=j=realmin最小的可用正實數(shù)realmax最大的可用正實數(shù)Matlab及其應(yīng)用14特殊變量特殊變量取值ans用于結(jié)果60Matlab及其應(yīng)用612.5

復(fù)數(shù)不需要特殊的處理。復(fù)數(shù)可以表示為:>>a=10-9i>>a=10-9j%i=j=sqrt(-1)注意下面的例子中的表達(dá)式

>>a4=5+sin(.5)*i如果把sin(.5)*i中的*去掉,就會出錯,sin(.5)i對MATLAB是無意義的,直接以字符i和j結(jié)尾,只適用于簡單數(shù)值,不適用于表達(dá)式。

復(fù)數(shù)運算不需要特殊處理,可以直接進(jìn)行。另外real(z),imag(z),abs(z)和angle(z)等Matlab及其應(yīng)用152.5復(fù)數(shù)不需要特殊的處理。復(fù)數(shù)可61Matlab及其應(yīng)用62三、MATLAB的數(shù)組(矩陣)及其運算3.1數(shù)組(矩陣)的創(chuàng)建

1.直接輸入法整個輸入數(shù)組必須以方括號“[]”為其首尾數(shù)組的行與行之間必須用”;”或者【Enter】隔離數(shù)組元素必須由逗號”,”或空格分隔2.一維數(shù)組的冒號生成法x=a:inc:ba是數(shù)組的第一個元素,inc是間隔,b是最后一個元素a,inc,b之間的冒號須在英文狀態(tài)下輸入。中文中的冒號將導(dǎo)致matlab出錯。inc缺省值為1,可以取正數(shù)或負(fù)數(shù)。Matlab及其應(yīng)用16三、MATLAB的數(shù)組(矩陣)及其運62Matlab及其應(yīng)用63語句生成矩陣3.linspace命令a=linspace(1,10,5);%產(chǎn)生線性等間距的列向量4.logspace命令b=logspace(0,2,10);%產(chǎn)生對數(shù)等間距的列向量5.矩陣連接c=[ab];6.數(shù)組生成函數(shù)

zerosoneseyerandrandnMatlab及其應(yīng)用17語句生成矩陣3.linspace命63Matlab及其應(yīng)用643.2矩陣運算矩陣的轉(zhuǎn)置用符號’來表示和實現(xiàn)非共軛轉(zhuǎn)置.’矩陣的四則運算+-*/\點乘:.*右除:./左除:.\矩陣的乘方^矩陣乘方.^元素對元素的乘方Matlab及其應(yīng)用183.2矩陣運算矩陣的轉(zhuǎn)置64Matlab及其應(yīng)用65四、流程控制為了便于應(yīng)用,MATLAB提供了一些流程控制的命令。這些命令對腳本編寫帶來了一些方便,但是需要注意的是,盡量不要使用這些流程控制命令,尤其是循環(huán)控制命令。1for循環(huán)for循環(huán)允許一組命令以固定的次數(shù)重復(fù),它的一般形式是forx=arraycommandendfor和end之間的命令串按數(shù)組array的每一列執(zhí)行一次,直到n次后終止。Matlab及其應(yīng)用19四、流程控制為了便于應(yīng)用,MATLA65Matlab及其應(yīng)用661For循環(huán)應(yīng)當(dāng)注意的一些方面for循環(huán)不能使用內(nèi)部重新賦值循環(huán)變量而終止;for循環(huán)內(nèi)部接受任何有效的MATLAB數(shù)組;for循環(huán)可以嵌套;只要有矩陣形式可以解決的問題,不要使用for循環(huán)。使用for循環(huán)的算法執(zhí)行很慢,一個好的MATLAB算法部應(yīng)當(dāng)出現(xiàn)循環(huán)語句。循環(huán)可以使用break跳出,但只跳出所在的循環(huán),不跳出整個嵌套結(jié)構(gòu)。Matlab及其應(yīng)用201For循環(huán)應(yīng)當(dāng)注意的一些方面fo66Matlab及其應(yīng)用672while循環(huán)與for循環(huán)以固定的次數(shù)求一組指令相反,while循環(huán)以不定的次數(shù)求一組語句的值。While循環(huán)的一般形式為:whileexpressioncommondsend只要表達(dá)式expression里的所有元素為真,就執(zhí)行命令串commands。通常表達(dá)式求值給一個標(biāo)量值,單數(shù)組值也同樣有效。Matlab及其應(yīng)用212while循環(huán)與for循環(huán)以固定67Matlab及其應(yīng)用683if-else-end結(jié)構(gòu)很多情況下,命令的序列必須根據(jù)關(guān)系的檢驗有條件的執(zhí)行,它由if-else-end結(jié)構(gòu)提供。它的結(jié)構(gòu)如下:ifexpression1commands1elseifexpression2commands2elseif…

…elseifcommandsendMatlab及其應(yīng)用223if-else-end結(jié)構(gòu)很多情68Matlab及其應(yīng)用69五、數(shù)據(jù)的可視化二維圖形

在二維曲線的繪制命令中,最重要、最基本的命令時plot,其他許多特殊繪圖命令都以它為基礎(chǔ)形成。

1plot(x,’s’)x為實向量時,以該向量元素的下標(biāo)為橫坐標(biāo)、元素值為縱坐標(biāo)畫出一條連續(xù)曲線。X為實矩陣時,則按列繪制每列元素值相對其下標(biāo)的曲線,圖中曲線數(shù)等于X陣列數(shù)。s用來指定線型。(正方形)Matlab及其應(yīng)用23五、數(shù)據(jù)的可視化二維圖形69Matlab及其應(yīng)用702plot(x,y,’s’)x,y為同維向量時,繪制以x、y元素為橫、縱坐標(biāo)的曲線。3plot(x1,y1,’s1’,x2,y2,’s2’,…)

在此格式中,每個繪線“三元組”(x,y,’s’)的結(jié)構(gòu)和作用,與plot(x,y,’s’)相同,不同的三元組之間沒有約束。Matlab及其應(yīng)用242plot(x,y,’s’)70Matlab及其應(yīng)用71線型和標(biāo)記

Plot命令中,在每一對數(shù)組數(shù)據(jù)后面,給plot一個附加參量,就可以指定所要的顏色和線型。

>>plot(x,y,’rd’,x,z,’k--’,x,y,’b-.’,x,z,’co’)b藍(lán)色,c青色,g綠色,k黑色,m紫紅色,r紅色,w白色,y黃色加格線和標(biāo)注,gridon命令在當(dāng)前圖形的單位標(biāo)記處加格線。gridoff命令取消格線。用text命令可以在圖形的任意指定位置增加標(biāo)記和其他文本信息,格式是text(x,y,’string’).Matlab及其應(yīng)用25線型和標(biāo)記Plot命71Matlab及其應(yīng)用72>>plot(x,y,x,z)>>grid>>title(‘sin(x)andcos(x)’)>>xlabel(‘independentvariablex’)>>ylabel(‘dependentvariableyandz’)>>text(2,0.8.’sin(x)’)Matlab及其應(yīng)用26>>plot(x,y,x,z)72Matlab及其應(yīng)用73plot應(yīng)用舉例——畫一個圓程序如下:R=2;t=0:pi/20:2*pi;x=R*sin(t);y=R*cos(t)plot(x,y,'b:'),gridMatlab及其應(yīng)用27plot應(yīng)用舉例——畫一個圓程序如下73Matlab及其應(yīng)用74例1——無阻力拋射體的運動設(shè)目標(biāo)相對于射點的高度為,給定初速,試計算物體在真空中飛行的時間和距離?!艚o阻力拋射體的飛行是中學(xué)物理就解決了的問題,本題的不同點是目標(biāo)和射點不在同一高度上,用MATLAB可使整個計算和繪圖過程自動化。其好處是快速地計算物體在不同初速和射角下的飛行時間和距離。關(guān)鍵是在求落點時間時,需要解一個二次線性代速方程。Matlab及其應(yīng)用28例1——無阻力拋射體的運動設(shè)目標(biāo)相對74Matlab及其應(yīng)用75MATLAB程序clear;y0=0;x0=0;

%初始位置vMag=input(‘輸入初始速度(m/s):’);%輸入初始速度的大小和方向vDir=input('輸入初速方向(度):');

yf=input(‘輸入目標(biāo)高度(m):’);%輸入目標(biāo)高度vx0=vMag*cos(vDir*(pi/180));%計算x,y方向的初始速度vy0=vMag*sin(vDir*(pi/180));wy=-9.81;wx=0;%重力加速度(m/s^2)tf=roots([wy/2,vy0,y0-yf]);%解方程,計算落點時間tf=max(tf);%去掉庸解t=0:0.1:tf;y=y0+vy0*t+wy*t.^2/2;%計算軌跡x=x0+vx0*t+wx*t.^2/2;xf=max(x),plot(x,y);%計算射程gridMatlab及其應(yīng)用29MATLAB程序clear;y0=075Matlab及其應(yīng)用76初始速度50m/s,初速方向為40度,目標(biāo)高度為8m時的輸入結(jié)果Matlab及其應(yīng)用30初始速度50m/s,初速方向為40度76Matlab及其應(yīng)用77例2——有空氣阻力拋射體的運動步驟一:給定小球質(zhì)量m,重力加速度g,拖曳系數(shù)C和小球面積A(半徑為r),根據(jù)D=rou*C*A/2求出D步驟二:給定小球的初始速度v(1)(大小和方向角theta),小球的位置(x(1)和y(1)。設(shè)定時間間隔detat步驟三:選定最大的間隔數(shù)N(或者最大的時間)Matlab及其應(yīng)用31例2——有空氣阻力拋射體的運動77Matlab及其應(yīng)用78求解步驟步驟四:當(dāng)n<N或者t<時循環(huán)步驟五到步驟九步驟五:計算加速度分量

步驟六:打印或者畫Matlab及其應(yīng)用32求解步驟步驟四:當(dāng)n<N或者t<78Matlab及其應(yīng)用79步驟七:計算新的速度分量步驟八:計算新的位移坐標(biāo)步驟九:時間上增加一個間隔步驟十:結(jié)束

Matlab及其應(yīng)用33步驟七:計算新的速度分量79Matlab及其應(yīng)用80Matlab程序g=9.8;m=0.145;C=0.5;r=0.0366;A=pi*r^2;rou=1.2;D=(rou*C*A)/2;detat=0.01;theta=(35/180*pi);x(1)=0;y(1)=0;V(1)=50;Vx(1)=V(1)*cos(theta);Vy(1)=V(1)*sin(theta);N=700;Matlab及其應(yīng)用34Matlab程序g=9.8;80Matlab及其應(yīng)用81forn=1:NV(n)=sqrt(Vx(n)^2+Vy(n)^2)ax(n)=-(D/m)*V(n)*Vx(n);ay(n)=-g-(D/m)*V(n)*Vy(n);Vx(n+1)=Vx(n)+ax(n)*detat;Vy(n+1)=Vy(n)+ay(n)*detat;x(n+1)=x(n)+Vx(n)*detat+0.5*ax(n)*detat^2;

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論