Matlab計算與仿真技術(shù)_第1頁
Matlab計算與仿真技術(shù)_第2頁
Matlab計算與仿真技術(shù)_第3頁
Matlab計算與仿真技術(shù)_第4頁
Matlab計算與仿真技術(shù)_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

現(xiàn)在是1頁\一共有81頁\編輯于星期一Matlab計算與仿真技術(shù)現(xiàn)在是2頁\一共有81頁\編輯于星期一物理與光電工程學(xué)院大連理工大學(xué)Matlab計算與仿真技術(shù)現(xiàn)在是3頁\一共有81頁\編輯于星期一什么是MATLAB?MATLAB代表MATrixLABoratory它的首創(chuàng)者是美國新墨西哥大學(xué)計算機系的系主任CleveMoler博士,他在教授線性代數(shù)課程發(fā)現(xiàn)其他語言很不方便,篇構(gòu)思開發(fā)了MATLAB。最初采用FORTRAN語言編寫,20世紀80年代后出現(xiàn)了MATLAB的第二版,全部采用C語言編寫.1984年Moler博士和一批數(shù)學(xué)家及軟件專家創(chuàng)建了MathWorks公司,專門開發(fā)MATLAB。現(xiàn)在是4頁\一共有81頁\編輯于星期一MATLAB的發(fā)展歷史1984年,MATLAB第1版(DOS版)

1992年,MATLAB4.0版

1994年,MATLAB4.2版

1997年,MATLAB5.0版

1999年,MATLAB5.3版

2000年,MATLAB6.0版

2001年,MATLAB6.1版

2002年,MATLAB6.5版

2004年,MATLAB7.0版

2008年,MATLAB7.6版(支持4線程計算)

2009年,MATLAB7.8版(支持8線程計算)是一種解釋性語言,一種演草紙式的科學(xué)計算語言現(xiàn)在是5頁\一共有81頁\編輯于星期一MATLAB能干什么?MATLAB可以進行:數(shù)學(xué)計算、算法開發(fā)、數(shù)據(jù)采集建模、仿真、原型數(shù)據(jù)分析、開發(fā)和可視化科學(xué)和工程圖形應(yīng)用程序的開發(fā),包括圖形用戶界面的創(chuàng)建。MATLAB廣泛應(yīng)用于:數(shù)值計算、圖形處理、符號運算、數(shù)學(xué)建模、系統(tǒng)辨識、小波分析、實時控制、動態(tài)仿真等領(lǐng)域。現(xiàn)在是6頁\一共有81頁\編輯于星期一掌握MATLAB……MATLAB的構(gòu)成:MATLAB開發(fā)環(huán)境:進行應(yīng)用研究開發(fā)的交互式平臺MATLAB數(shù)學(xué)與運算函數(shù)庫:用于科學(xué)計算的函數(shù)MATLAB語言:進行應(yīng)用開發(fā)的編程工具圖形化開發(fā):二維、三維圖形開發(fā)的工具應(yīng)用程序接口(API):用于與其他預(yù)言混編面向?qū)iT領(lǐng)域的工具箱:小波工具箱、神經(jīng)網(wǎng)絡(luò)工具箱、信號處理工具箱、圖像處理工具箱、模糊邏輯工具箱、優(yōu)化工具箱、魯棒控制工具箱等幾十個不同應(yīng)用的工具箱?,F(xiàn)在是7頁\一共有81頁\編輯于星期一MATLAB界面:命令窗口、圖形窗口、編輯窗口、幫助窗口?,F(xiàn)在是8頁\一共有81頁\編輯于星期一常用MATLAB系統(tǒng)命令help在線幫助who顯示當前變量whos顯示當前變量的詳細信息clear清空工作間的變量和函數(shù)pack整理工作間的內(nèi)存load把文件調(diào)入變量到工作間save把變量存入文件中echo命令回顯what顯示指定的matlab文件dir顯示目錄內(nèi)容現(xiàn)在是9頁\一共有81頁\編輯于星期一基本數(shù)學(xué)運算在MATLAB下進行基本數(shù)學(xué)運算,只需將運算式直接打在提示號>>后面,并按Enter鍵。MATLAB將計算的結(jié)果以ans顯示?!纠壳蟮乃阈g(shù)運算結(jié)果。(1)用鍵盤在MATLAB指令窗中輸入以下內(nèi)容>>(12+2*(7-4))/3^2

(2)在上述表達式輸入完成后,按【Enter】鍵,該就指令被執(zhí)行。(3)在指令執(zhí)行后,MATLAB指令窗中將顯示以下結(jié)果。ans=

2

我們也可給運算式的結(jié)果設(shè)定一個變量x:x=(5*2+1.3-0.8)*10^2/25x=42變量x的值可以在下個語句中調(diào)用:y=2*x+1y=85

現(xiàn)在是10頁\一共有81頁\編輯于星期一例:計算在命令窗口中輸入sqrt(18)+(7*sin(pi/6))/(5+cos(pi/6))注意:(1)“》”為命令提示符;(2)字母要區(qū)分大小寫,所有命令和函數(shù)名都必須用小寫?,F(xiàn)在是11頁\一共有81頁\編輯于星期一變量命名規(guī)則1.變量名的大小寫敏感。2.變量的第一個字符必須為英文字母,而且不能超過31個字符。3.變量名可以包含下連字符、數(shù)字,但不能為空格符、標點。注:數(shù)值型變量和符號型變量在MATLAB中是不相同的,它們之間不能直接進行轉(zhuǎn)化。MATLAB提供了一個將數(shù)值型轉(zhuǎn)化成符號型的命令,即sym(syms)。現(xiàn)在是12頁\一共有81頁\編輯于星期一MATLAB提供基本的算術(shù)運算有:加(+)、減(-)、乘(*)、除(/)、冪次方(^),范例為:5+3,5-3,5*3,5/3,5^3MATLAB書寫表達式的規(guī)則與“手寫算式”差不多相同,但要求所有表達式都是以純文本形式輸入。如果一個指令過長可以在結(jié)尾加上...(代表此行指令與下一行連續(xù)),例如:>>

1*2+3*4+5*6+7*8+9*10+11*12+...13*14+15*16ans=744現(xiàn)在是13頁\一共有81頁\編輯于星期一MATLAB常用數(shù)學(xué)函數(shù)三角函數(shù)和雙曲函數(shù)名稱含義名稱含義名稱含義sin正弦csc余割atanh反雙曲正切cos余弦asec反正割acoth反雙曲余切tan正切acsc反余割sech雙曲正割cot余切sinh雙曲正弦csch雙曲余割asin反正弦cosh雙曲余弦asech反雙曲正割acos反余弦tanh雙曲正切acsch反雙曲余割atan反正切coth雙曲余切atan2四象限反正切acot反余切asinh反雙曲正弦sec正割acosh反雙曲余弦現(xiàn)在是14頁\一共有81頁\編輯于星期一MATLAB常用數(shù)學(xué)函數(shù)指數(shù)函數(shù)名稱含義名稱含義名稱含義expE為底的指數(shù)log1010為底的對數(shù)pow22的冪log自然對數(shù)log22為底的對數(shù)sqrt平方根復(fù)數(shù)函數(shù)名稱含義名稱含義名稱含義abs絕對值conj復(fù)數(shù)共軛real復(fù)數(shù)實部angle相角imag復(fù)數(shù)虛部現(xiàn)在是15頁\一共有81頁\編輯于星期一其他函數(shù)名稱含義名稱含義min最小值max最大值mean平均值median中位數(shù)std標準差diff相鄰元素的差sort排序length個數(shù)norm歐氏(Euclidean)長度sum總和prod總乘積dot內(nèi)積cumsum累計元素總和cumprod累計元素總乘積cross外積現(xiàn)在是16頁\一共有81頁\編輯于星期一矩陣的MATLAB表示直接輸入

>>A=[12,3;456;7,89]冒號操作符

>>a=0:1:10>>a=linspace(0,1,10)>>a=logspace(1,2,10)

現(xiàn)在是17頁\一共有81頁\編輯于星期一MATLAB下矩陣的運算矩陣的代數(shù)運算轉(zhuǎn)置B=A’加減乘A+BA-BA*B左除A\B即AX=B的解X=A-1B右除A/B即XB=A的解X=AB-1翻轉(zhuǎn)fliplrflipudrot90乘方A^B點運算A.*BA./BA.\BA.^BA.’函數(shù)現(xiàn)在是18頁\一共有81頁\編輯于星期一矩陣的邏輯運算運算符&(與)|(或)~(非)結(jié)果是一個0-1矩陣。當邏輯表達式的值為真時,賦值1,否則為0

邏輯函數(shù)all:當某列的元素都為真時,返回值為1,否則返回0。最終運算結(jié)果為一個0-1行向量any:當向量中至少有一個元素為真時,返回值為1,否則返回0。最終運算結(jié)果為一個0-1行向量find:用于查找向量中的真元素的下標,返回由所有真元素下標構(gòu)成的列向量。現(xiàn)在是19頁\一共有81頁\編輯于星期一矩陣的比較關(guān)系在MATLAB里共有六個關(guān)系運算符

<小于 >大于

<=小于等于>=大于等于

==等于 ~=不等于關(guān)系運算符將生成一個0-1矩陣,當運算數(shù)相應(yīng)元素為真時,對應(yīng)位置上生成1,否則為0。

現(xiàn)在是20頁\一共有81頁\編輯于星期一矩陣元素的數(shù)據(jù)變換floor(A)向-∞取整ceil(A)向+∞取整round(A)四舍五入取整fix(A)按離0近的方向取整現(xiàn)在是21頁\一共有81頁\編輯于星期一下標操作矩陣下標(按列優(yōu)先排列)用兩個下標來表示。第i行j列的元素用A(i,j)來表示用一個下標來表示。對于矩陣按列操作,可用單下標引用A(i)。在下標的表達式中使用冒號表示矩陣的一部分。下標引用從序號1開始?,F(xiàn)在是22頁\一共有81頁\編輯于星期一下標操作A=123456789>>A(4)+A(8)現(xiàn)在是23頁\一共有81頁\編輯于星期一行列刪除>>B=[123;456;789];>>B(2,:)=[]>>B=123789現(xiàn)在是24頁\一共有81頁\編輯于星期一矩陣的尺寸為了判斷矩陣的尺寸,Matlab提供了以下函數(shù):[m,n]=size(A) %返回矩陣的行數(shù)m和列數(shù)nM=size(A) %在矩陣M中返回矩陣的行數(shù)、列數(shù)

len=length(A) %返回矩陣A行數(shù)和列數(shù)中的最大值

現(xiàn)在是25頁\一共有81頁\編輯于星期一特殊矩陣單位矩陣

eye(n)

%生成n維單位陣

eye(m,n)

%生成m×n的單位陣

eye([m,n])%生成m×n的單位陣

eye(size(A))%生成與A矩陣同樣大小的單位矩陣

oneszeros

現(xiàn)在是26頁\一共有81頁\編輯于星期一特殊矩陣全1矩陣

ones(n)ones(m,n)ones([m,n]) ones(size(A))全零矩陣

zeros(n)zeros(m,n)zeros([m,n]) zeros(size(A))隨機矩陣

rand(n)rand(m,n)rand([m,n])rand(size(A))生成的隨機矩陣的各個元素值在0和1之間。對角陣diag(n)對角陣魔術(shù)矩陣

magic(n)魔術(shù)矩陣的所有行元素和、列元素和、對角線元素和均相等現(xiàn)在是27頁\一共有81頁\編輯于星期一陣列與矩陣MATLAB的運算事實上是以陣列(array)及矩陣(matrix)方式在做運算.陣列強調(diào)元素對元素的運算,而矩陣則采用線性代數(shù)的運算方式.

宣告一變量為陣列或是矩陣時,須用中括號[]

將元素置于其中。陣列為一維元素所構(gòu)成,而矩陣為多維元素所組成.

例如:?x=[12345678];%

一維1x8陣列

【例】簡單矩陣的輸入步驟。(1)在鍵盤上輸入下列內(nèi)容:(以;區(qū)隔各列的元素)

A=[1,2,3;4,5,6;7,8,9]

(2)按【Enter】鍵,指令被執(zhí)行。(3)在指令執(zhí)行后,MATLAB指令窗中將顯示以下結(jié)果:

A=123456789現(xiàn)在是28頁\一共有81頁\編輯于星期一陣列的運算符號

除了加減符號外其余的陣列運算符號均須多加.符號。陣列運算功能(注意:一定要多加.符號)+加-減.*乘./左除.\右除.^次方.’

轉(zhuǎn)置矩陣的幾種基本變換操作(1)

通過在矩陣變量后加’的方法來表示轉(zhuǎn)置運算

>>a=[10,2,12;34,2,4;98,34,6];>>a'ans=10349822341246現(xiàn)在是29頁\一共有81頁\編輯于星期一(2)

矩陣求逆>>inv(a)ans=-0.01160.0372-0.00150.0176-0.10470.03450.0901-0.0135-0.0045(3)

矩陣的特征值>>[u,v]=eig(a)u=-0.29600.3635-0.3600-0.2925-0.41280.7886-0.9093-0.83520.4985v=48.8395000-19.8451000-10.9943現(xiàn)在是30頁\一共有81頁\編輯于星期一(4)

取出上三角和下三角

>>triu(a)ans=10212024006>>tril(a)ans=1000342098346(5)LU分解

>>[l,u]=lu(a)l=0.10200.15001.00000.34691.000001.000000u=98.000034.00006.00000-9.79591.91840011.1000現(xiàn)在是31頁\一共有81頁\編輯于星期一MatLab圖形繪制功能基本繪圖函數(shù)命令含義plot建立向量或矩陣各隊隊向量的圖形loglogx、y軸都取對數(shù)標度建立圖形semilogxx軸用于對數(shù)標度,y軸線性標度繪制圖形semilogyy軸用于對數(shù)標度,x軸線性標度繪制圖形title給圖形加標題xlabel給x軸加標記ylabel給y軸加標記text在圖形指定的位置上加文本字符串gtext在鼠標的位置上加文本字符串grid打開網(wǎng)格線現(xiàn)在是32頁\一共有81頁\編輯于星期一x=0:0.001:10;%0到10的1000個點的x座標

y=sin(x);%對應(yīng)的y座標

plot(x,y);%繪圖(可以設(shè)定顯示范圍)現(xiàn)在是33頁\一共有81頁\編輯于星期一畫橢圓

a=0:pi/50:2*pi; X=cos(a)*3;

%參數(shù)方程Y=sin(a)*2;plot(X,Y);xlabel('x'),ylabel('y');title('橢圓')現(xiàn)在是34頁\一共有81頁\編輯于星期一線條和顏色控制符:.點y黃。小圓圈m棕色xx標記c青色+加號r紅色-實線g綠色*星號b藍色:虛線w白色-.點劃線h黑色現(xiàn)在是35頁\一共有81頁\編輯于星期一條形圖當資料點數(shù)量不多時,長條圖是很適合的表示方式:closeall;%關(guān)閉所有的圖形視窗x=1:10;y=rand(size(x));bar(x,y)現(xiàn)在是36頁\一共有81頁\編輯于星期一誤差圖x=linspace(0,2*pi,30);y=sin(x);e=std(y)*ones(size(x));%std:標準差errorbar(x,y,e)現(xiàn)在是37頁\一共有81頁\編輯于星期一極坐標圖形theta=linspace(0,2*pi);r=cos(4*theta);polar(theta,r);現(xiàn)在是38頁\一共有81頁\編輯于星期一x=linspace(0,10,50);y=sin(x).*exp(-x/3);stairs(x,y);%階梯圖x=linspace(0,10,50);y=sin(x).*exp(-x/3);stem(x,y);%針狀圖現(xiàn)在是39頁\一共有81頁\編輯于星期一符號表達式畫圖在許多的場合,將表達式可視化是有利的。MATLAB提供了函數(shù)ezplot來完成該任務(wù)。>>y='16*x^2+64*x+96'y= 16*x^2+64*x+96>>ezplot(y)現(xiàn)在是40頁\一共有81頁\編輯于星期一三維曲線和曲面

1.空間曲線繪制函數(shù)plot3()格式一:plot3(x,y,z)功能:若x、y、z為相同長度的向量,則根據(jù)向量x、y、z繪制空間三維曲線。如果x、y、z為同階矩陣,則繪制對應(yīng)列的多條曲線。格式二:plot3(x,y,z,’s’)功能:按字符串s設(shè)置的線型、顏色、標記符號繪制三維空間曲線。字符串s的設(shè)置與plot命令的設(shè)置相同。

2.三維網(wǎng)線圖函數(shù)mesh、meshc和meshzMATAL提供的函數(shù)mesh用來繪制三維網(wǎng)線圖。格式一:mesh(X,Y,Z)

功能:根據(jù)矩陣X、Y和Z繪制彩色的空間三維網(wǎng)線圖。X、Y和Z中對應(yīng)的元素為三維 空間上的點,點與點之間用線連接。其中網(wǎng)線的顏色隨著網(wǎng)點高度的改變而改 變。格式二:mesh(x,y,Z)

功能:n維向量x、m維向量y和m×n矩陣Z繪制網(wǎng)線圖,節(jié)點的坐標為 (x(j),y(i),Z(i,j)),網(wǎng)線的顏色隨著網(wǎng)點高度的改變而改變?,F(xiàn)在是41頁\一共有81頁\編輯于星期一三維曲面圖函數(shù)surf及surfc

格式一:surf(X,Y,Z,C)功能:繪制由四個矩陣所指定的帶色參數(shù)的網(wǎng)狀表面圖。視角是由view所指定。軸的刻度決定于X,Y及Z的范圍,或當前對軸的設(shè)定;顏色范圍由C指定。格式二:surf(X,Y,Z)功能:將C設(shè)為與Z相等,則顏色與網(wǎng)的高度成正比?,F(xiàn)在是42頁\一共有81頁\編輯于星期一三維螺旋線t=0:pi/50:10*pi;plot3(sin(t),cos(t),t)grid現(xiàn)在是43頁\一共有81頁\編輯于星期一空間中的曲線t=linspace(0,20*pi,501);plot3(t.*sin(t),t.*cos(t),t);%注意用點乘.*t=linspace(0,10*pi,501);plot3(t.*sin(t),t.*cos(t),t,t.*sin(t),t.*cos(t),-t);現(xiàn)在是44頁\一共有81頁\編輯于星期一立體網(wǎng)狀圖x=linspace(-2,2,25);%在x軸上取25點y=linspace(-2,2,25);%在y軸上取25點[xx,yy]=meshgrid(x,y);%xx和yy都是21x21的矩陣zz=xx.*exp(-xx.^2-yy.^2);%計算函數(shù)值,zz也是21x21的矩陣mesh(xx,yy,zz);%畫出立體網(wǎng)狀圖

現(xiàn)在是45頁\一共有81頁\編輯于星期一網(wǎng)狀圖填補x=linspace(-2,2,25);%在x軸上取25點y=linspace(-2,2,25);%在y軸上取25點[xx,yy]=meshgrid(x,y);%xx和yy都是21x21的矩陣zz=xx.*exp(-xx.^2-yy.^2);%計算函數(shù)值,zz也是21x21的 矩陣surf(xx,yy,zz);%畫出立體曲面圖現(xiàn)在是46頁\一共有81頁\編輯于星期一peaks函數(shù)peaks函數(shù),可產(chǎn)生一個凹凸有致的曲面,包含了三個局部極大點及三個局部極小點,其方程式為:[x,y,z]=peaks;waterfall(x,y,z);現(xiàn)在是47頁\一共有81頁\編輯于星期一等高線圖meshc同時畫出網(wǎng)狀圖與等高線:[x,y,z]=peaks;meshc(x,y,z);surfc同時畫出曲面圖與等高線:[x,y,z]=peaks;surfc(x,y,z);現(xiàn)在是48頁\一共有81頁\編輯于星期一剔透玲瓏球[X0,Y0,Z0]=sphere(30);%產(chǎn)生單位球面的三維坐標X=2*X0;Y=2*Y0;Z=2*Z0;%產(chǎn)生半徑為2的球面的三維坐標surf(X0,Y0,Z0);%畫單位球面shadinginterp%采用插補明暗處理holdon;mesh(X,Y,Z);holdoff%畫外球面hiddenoff%產(chǎn)生透視效果axisoff%不顯示坐標軸現(xiàn)在是49頁\一共有81頁\編輯于星期一彗星狀軌跡圖

【*例】簡單二維示例。(請指令窗中運行以下指令)n=10;t=n*pi*(0:0.0005:1);x=sin(t);y=cos(t);plot(x,y,'g');holdon;comet(x,y,0.02);holdoff現(xiàn)在是50頁\一共有81頁\編輯于星期一衛(wèi)星返回地球的運動軌線示意R0=1; %以地球半徑為一個單位a=12*R0;b=9*R0;T0=2*pi; %T0是軌道周期T=5*T0;dt=pi/100;t=[0:dt:T]';f=sqrt(a^2-b^2); %地球與另一焦點的距離th=12.5*pi/180; %衛(wèi)星軌道與x-y平面的傾角E=exp(-t/20); %軌道收縮率

x=E.*(a*cos(t)-f);y=E.*(b*cos(th)*sin(t));z=E.*(b*sin(th)*sin(t));plot3(x,y,z,'g') %畫全程軌線[X,Y,Z]=sphere(30);X=R0*X;Y=R0*Y;Z=R0*Z;%獲得單位球坐標gridon,holdon,surf(X,Y,Z),shadinginterp %畫地球x1=-18*R0;x2=6*R0;y1=-12*R0;y2=12*R0;z1=-6*R0;z2=6*R0;axis([x1x2y1y2z1z2]) %確定坐標范圍view([11737]),comet3(x,y,z,0.02),holdoff %設(shè)視角、畫運動軌線

現(xiàn)在是51頁\一共有81頁\編輯于星期一求解線性方程組MATLAB語句實現(xiàn):

a=[2,3,-1;8,2,3;45,3,9];

b=[2;4;23];

x=inv(a)*b現(xiàn)在是52頁\一共有81頁\編輯于星期一求多項式方程的根roots(p)solve(p)例.求方程的所有根

p=[1-49-10]r=roots(p)

或s1=sym('x^3-4*x^2+9*x-10');solve(s1)現(xiàn)在是53頁\一共有81頁\編輯于星期一求方程組的根和超越方程解[x,y]=solve('x+y=1','x-11*y=5','x','y')求超越方程的根,其中p,r為常數(shù)ff=sym('p*sin(x)=r')solve(ff,'x')現(xiàn)在是54頁\一共有81頁\編輯于星期一求極限symsx;y1=(1+4*x)^(1/x);y2=(exp(x)-1)/x;limit(y1,x,0)limit(y2,x,0)現(xiàn)在是55頁\一共有81頁\編輯于星期一求導(dǎo)數(shù)與偏導(dǎo)數(shù)

symsx;f=3*x^3+5*x+1;diff(f,1)

symsxy;%對x偏導(dǎo)數(shù)

z=x^2*sin(2*y);B=diff(z,x)現(xiàn)在是56頁\一共有81頁\編輯于星期一求解不定積分symsxb;f=cos(b*x);f1=int(f,x)f1=1/b*sin(b*x)ezplot(f1)現(xiàn)在是57頁\一共有81頁\編輯于星期一求定積分多重積分

symsx;y=(x^2+sin(x))/(1+x^2);int(y,x,-1,1)

symsxy;int(int(x^2+y^2+1,y,x,x+1),x,0,1)現(xiàn)在是58頁\一共有81頁\編輯于星期一求微分方程通解和特解dsolve('Dy=1+y^2','x')dsolve('Dy=1+y^2','y(0)=1','x')dsolve('x^2*D2y+x*Dy+(x^2-1/2)*y=0','y(pi/2)=2','Dy(pi/2)=-2/pi','x')現(xiàn)在是59頁\一共有81頁\編輯于星期一MATLAB語言編程介紹MATLAB中各種命令可以完成許多單一的任務(wù),對于某些較為復(fù)雜的問題,僅靠現(xiàn)有的命令或函數(shù)來解決,往往是難以達到目的。為此,要運用MATLAB編程語言編制程序,形成M-文件。程序是使計算機完成各項運算的命令集,運行一個編制好的程序,計算機會從第一條命令行開始,一行接一行地執(zhí)行相應(yīng)的命令,直到終止。程序一般包含:數(shù)據(jù)輸入,數(shù)據(jù)處理和結(jié)果輸出三部分,其中數(shù)據(jù)處理是核心。程序編寫調(diào)試完成后,需要存盤,形成永久性文件,可以隨時對它進行調(diào)用或修改。文件名以字母開頭,但不能用專用變量名,如pi等。MATLAB中每一個命令都是一個M-文件?,F(xiàn)在是60頁\一共有81頁\編輯于星期一MATLAB程序類型腳本文件函數(shù)文件functiony=mean(x)%MEANAverageormeanValue%Forvectors,Mean(x)isthemeanvalueofX%Formatrices,Mean(x)isarowvectorcontaining%themeanvalueofeachcolumn[m,n]=size(x)ifm==1m=n;endy=sum(x)/m;函數(shù)定義行H1行函數(shù)幫助文件函數(shù)體現(xiàn)在是61頁\一共有81頁\編輯于星期一M-文件中輸入、輸出命令

直接賦值輸入:提示對話輸入(input命令)x=2;x=input('請輸入?yún)?shù)x=');a=[1,2;3,4];a=input('請輸入矩陣a=');s='anystring!';s=input('Pleaseinputs=');

直接輸出:格式控制輸出(fprintf命令)xfprintf('x=%.0f,y=%.5f\n',pi,pi);disp([a,b]);fprintf('x=%5g,y=%10.5g\n',N,pi);現(xiàn)在是62頁\一共有81頁\編輯于星期一M-文件中循環(huán)控制命令(for命令)格式:fori=n1:(step):n2 commands;end作用:重復(fù)執(zhí)行命令集commands.現(xiàn)在是63頁\一共有81頁\編輯于星期一例2:求奇數(shù)和:s=1+3+5+…+(2k-1)n=input('請輸入n='); s=0;fori=1:2:n s=s+i;fprintf('i=%.0f,s=%.0f\n',i,s);end例1:求和:s=1+2+…+nn=input('請輸入n='); s=0;fori=1:n s=s+i;fprintf('i=%.0f,s=%.0f\n',i,s);end現(xiàn)在是64頁\一共有81頁\編輯于星期一例3:求階乘:p=1×2×3×…×n=n!n=input('請輸入n='); p=1;fori=1:n p=p*i;fprintf('i=%.0f,p=%.0f\n',i,p);end例4:求e:e=1+1+1/2!+1/3!+…+1/n!n=input('請輸入n='); p=1;e=1;fori=1:n p=p*i;p1=1/p;e=e+p1;fprintf('i=%.0f,p=%.0f,e=%.8f\n',i,p,e);end現(xiàn)在是65頁\一共有81頁\編輯于星期一例5:求pi:pi/4=1-1/3+1/5-1/7+1/9-1/11+……n=input('請輸入n='); pi=0;k=-1;fori=1:2:n k=(-1)*k;pi=pi+k*1/i;fprintf('i=%.0f,pi=%.8f\n',i,4*pi);end現(xiàn)在是66頁\一共有81頁\編輯于星期一M-文件中條件循環(huán)命令(while命令)格式:while(conditionistrue) commands;end作用:重復(fù)執(zhí)行命令集commands.現(xiàn)在是67頁\一共有81頁\編輯于星期一例6:求和:s=1+2+…+n<3000 s=0;k=1;whiles<3000 s=s+k;fprintf('k=%.0f,s=%.0f\n',k,s);k=k+1;end例7:求e:e=1+1+1/2!+1/3!+…(1/n!<1.0e-8) p=1;e=1;r=1;i=1;whiler>=1.0e-8 p=p*i;r=1/p;e=e+r;fprintf('i=%.0f,r=%.9f,e=%.9f\n',i,r,e);i=i+1;end現(xiàn)在是68頁\一共有81頁\編輯于星期一M-文件中選擇控制命令(if命令)單項選擇控制格式:if(conditionistrue) commands;end作用:若條件成立,則執(zhí)行命令集

commands.否則,不執(zhí)行?,F(xiàn)在是69頁\一共有81頁\編輯于星期一例8:求n個實數(shù)中最大的數(shù)M.a=input('請輸入數(shù)組a[n]=');[m,n]=size(a);M=a(1); fori=2:n ifM<a(i)M=a(i);endfprintf('M=%.5f,a(%.0f)=%.5f\n',M,i,a(i));end現(xiàn)在是70頁\一共有81頁\編輯于星期一M-文件中選擇控制命令(if命令)多項選擇控制格式:if(conditionistrue) commands;elseif(conditionistrue)commands;elsecommands;end作用:若條件成立,則執(zhí)行命令集

commands.否則,不執(zhí)行?,F(xiàn)在是71頁\一共有81頁\編輯于星期一例9:建立符號函數(shù)sign(x)x=input('x=');ifx>0sn=1;elseifx==0sn=0;elsesn=-1;endfprintf('x=%.5f,sn=%.0f\n',x,sn);現(xiàn)在是72頁\一共有81頁\編輯于星期一Matlab編程(續(xù))程序設(shè)計技術(shù)循環(huán)向量化計算模式目的:向量計算替代循環(huán)模式實例:i初始化

ticticfort=0:0.01:100t=0.0:0.01:100

i=i+1;y(i)=sin(t)y=sin(t)e

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論