版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
建模培訓(xùn)matlab使用第一頁,共一百二十頁,2022年,8月28日數(shù)學(xué)軟件:Matlab、Mathematica、Maple。統(tǒng)計:spss、sas等運籌:lingo等一、簡介:第二頁,共一百二十頁,2022年,8月28日MATLAB介紹MATLAB意為“矩陣實驗室”,源自MatrixLaboratory,它是一種科學(xué)計算軟件。
matlab語言是由美國的CleverMoler博士于1980年。開發(fā)的設(shè)計者的初衷是為解決“線性代數(shù)”課程的矩陣運算問題。
目前MATLAB已經(jīng)成為國際上最流行的軟件之一,除了可提供傳統(tǒng)的交互式的編程方法之外,還能提供豐富可靠的矩陣運算、圖形繪制、數(shù)據(jù)處理、圖像處理和Windows編程工具等。因而出現(xiàn)了各種以MATLAB為基礎(chǔ)的工具箱,應(yīng)用于自動控制、圖像信號處理、生物醫(yī)學(xué)工程、語音處理、信號分析、時序分析與建模、優(yōu)化設(shè)計等廣泛的領(lǐng)域,表現(xiàn)出了一般高級語言難以比擬的優(yōu)勢。
美國Mathwork軟件公司推出的Matlab軟件就是為了給人們提供一個方便的數(shù)值計算平臺而設(shè)計的。第三頁,共一百二十頁,2022年,8月28日它將一個優(yōu)秀軟件的易用性與可靠性、通用性與專業(yè)性、一般目的的應(yīng)用與高深的科學(xué)技術(shù)應(yīng)用有機的相結(jié)合。MATLAB是一種直譯式的高級語言,比其它程序設(shè)計語言容易。MATLAB已經(jīng)不僅僅是一個“矩陣實驗室”了,它集科學(xué)計算、圖象處理、聲音處理于一身,并提供了豐富的Windows圖形界面設(shè)計方法。第四頁,共一百二十頁,2022年,8月28日MATLAB在美國已經(jīng)作為大學(xué)工科學(xué)生必修的計算機語言之一(C,FORTRAN,ASSEMBLER,MATLAB)。近年來,MATLAB語言已在我國推廣使用,現(xiàn)在已應(yīng)用于各學(xué)科研究部門和許多高等院校。第五頁,共一百二十頁,2022年,8月28日許多學(xué)科,在MATLAB中都有專用工具箱,現(xiàn)已有30多個工具箱,但MATLAB語言的擴展開發(fā)還遠遠沒有結(jié)束,各學(xué)科的相互促進,將使得MATLAB更加強大第六頁,共一百二十頁,2022年,8月28日豐富的MATLAB工具箱MATLAB主工具箱符號數(shù)學(xué)工具箱SIMULINK仿真工具箱控制系統(tǒng)工具箱信號處理工具箱圖象處理工具箱通訊工具箱系統(tǒng)辨識工具箱神經(jīng)元網(wǎng)絡(luò)工具箱金融工具箱第七頁,共一百二十頁,2022年,8月28日在使用中Matlab的優(yōu)點有如下幾點:1.易學(xué),編程方便,快捷.2.豐富的數(shù)學(xué)函數(shù)使得數(shù)值問題的求解變得很容易。在使用中Matlab的缺點在于:
運行速度,尤其是圖形的處理速度較為緩慢。第八頁,共一百二十頁,2022年,8月28日1、試繪制參數(shù)方程的三維曲線(m1)2、試繪制出二元函數(shù)(m2)3、給定函數(shù),試給出(m3)演示:第九頁,共一百二十頁,2022年,8月28日1進入與運行方式1、窗口與界面2、運行方式
1)命令行方式
2)M文件方式二、基本操作第十頁,共一百二十頁,2022年,8月28日啟動MATLAB后,將進入MATLAB集成環(huán)境。MATLAB集成環(huán)境包括MATLAB主窗口、命令窗口(CommandWindow)、工作空間窗口(Workspace)、命令歷史窗口(CommandHistory)、當(dāng)前目錄窗口(CurrentDirectory)。第十一頁,共一百二十頁,2022年,8月28日
當(dāng)MATLAB安裝完畢并首次啟動時,展現(xiàn)在屏幕上的界面為MATLAB的默認界面,如右圖所示。第十二頁,共一百二十頁,2022年,8月28日1、變量1)變量的命名:
1變量的名字必須以字母開頭。
2之后可以是任意字母、數(shù)字或下劃線(—),變量中不能包含有標點符號。
3變量名稱區(qū)分字母的大小寫,如time,TIME,Time。
2、變量與函數(shù)第十三頁,共一百二十頁,2022年,8月28日
eps—計算機浮點運算誤差限,在pc機上,若某個量的絕對值小于eps,則可以認為這個量為0。pi—圓周率的近似值3.1415926
inf或Inf—表示正無大,定義為1/0NaN—不定數(shù),不定式。它產(chǎn)生于0×,0/0,/
等運算
i,j—虛數(shù)單位
ans—對于未賦值運算結(jié)果,自動賦給ans2)特殊變量第十四頁,共一百二十頁,2022年,8月28日2常用的數(shù)學(xué)運算符+—*(乘).*(點乘)/(左除)./(點除)\(右除)^(冪)注:在運算式中,MATLAB通常不需要考慮空格;多條命令可以放在一行中,它們之間需要用分號隔開;逗號告訴MATLAB顯示結(jié)果,而分號則禁止結(jié)果顯示。第十五頁,共一百二十頁,2022年,8月28日3.?dāng)?shù)字的輸出格式MATLAB的輸出格式可由format命令控制,但要注意的是format命令只是影響在屏幕上的顯示,而MATLAB的數(shù)據(jù)存儲和運算總是以雙精度進行的。
Formatshort:5位定點格式,如1.4142
Formatlong:15位定點格式,如
Formatshorte
:5位浮點,如1.4142e+000
Formatlonge
:15位浮點,如
Formathex
:十六進制數(shù),如3ff6a09e667f3bcd
Formatrat
:分數(shù)之比,如1393/985
Format+:若為正數(shù)則顯示+,若為負數(shù)則顯示-,若為0則顯示空第十六頁,共一百二十頁,2022年,8月28日4MATLAB的工作空間命令1、MATLAB的工作空間包含了一組可以在命令窗口中調(diào)整(調(diào)用)的參數(shù)who:顯示當(dāng)前工作空間中所有變量的一個簡單列表 whos:則列出變量的大小、數(shù)據(jù)格式等詳細信息clear:清除工作空間中所有的變量clear變量名:清除指定的變量clc:清除命令窗口的內(nèi)容
2、退出工作空間quit
或exithelp命令,在命令窗口中顯示第十七頁,共一百二十頁,2022年,8月28日名稱含義名稱含義sin正弦log1010為底的對數(shù)cos余弦log自然對數(shù)tan正切min最小值cot余切max最大值asin反正弦mean平均值acos反余弦fix向0取整atan反正切rem求余數(shù)expe為底的指數(shù)sqrt平方根log22為底的對數(shù)abs絕對值5、常用數(shù)學(xué)函數(shù)第十八頁,共一百二十頁,2022年,8月28日6M文件1)M文件概述用MATLAB語言編寫的程序,稱為M文件。M文件可以根據(jù)調(diào)用方式的不同分為兩類:命令文件(ScriptFile)(或腳本文件)和函數(shù)文件(FunctionFile)。第十九頁,共一百二十頁,2022年,8月28日2)M文件的建立與打開
M文件是一個文本文件,它可以用任何編輯程序來建立和編輯,而一般常用且最為方便的是使用MATLAB提供的文本編輯器。
1)建立新的M文件為建立新的M文件,啟動MATLAB文本編輯器有3種方法:
(1)菜單操作。從MATLAB主窗口的File菜單中選擇New菜單項,再選擇M-file命令,屏幕上將出現(xiàn)MATLAB文本編輯器窗口。
(2)命令操作。在MATLAB命令窗口輸入命令edit,啟動MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。
(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的NewM-File命令按鈕,啟動MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。第二十頁,共一百二十頁,2022年,8月28日3)打開已有的M文件打開已有的M文件,也有3種方法:
(1)菜單操作。從MATLAB主窗口的File菜單中選擇Open命令,則屏幕出現(xiàn)Open對話框,在Open對話框中選中所需打開的M文件。在文檔窗口可以對打開的M文件進行編輯修改,編輯完成后,將M文件存盤。
(2)命令操作。在MATLAB命令窗口輸入命令:edit
文件名,則打開指定的M文件。
(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的OpenFile命令按鈕,再從彈出的對話框中選擇所需打開的M文件。第二十一頁,共一百二十頁,2022年,8月28日7函數(shù)文件
1)函數(shù)文件的基本結(jié)構(gòu)函數(shù)文件由function語句引導(dǎo),其基本結(jié)構(gòu)為:
function輸出形參表=函數(shù)名(輸入形參表)
注釋說明部分函數(shù)體語句其中以function開頭的一行為引導(dǎo)行,表示該M文件是一個函數(shù)文件。函數(shù)名的命名規(guī)則與變量名相同。輸入形參為函數(shù)的輸入?yún)?shù),輸出形參為函數(shù)的輸出參數(shù)。當(dāng)輸出形參多于一個時,則應(yīng)該用方括號括起來。第二十二頁,共一百二十頁,2022年,8月28日2)函數(shù)調(diào)用函數(shù)調(diào)用的一般格式是:
[輸出實參表]=函數(shù)名(輸入實參表)
要注意的是,函數(shù)調(diào)用時各實參出現(xiàn)的定義時形參的順序、個數(shù)一致,否則會出錯。函數(shù)調(diào)用時,先將實參傳遞給相應(yīng)的形參,從而實現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。第二十三頁,共一百二十頁,2022年,8月28日例編寫函數(shù)文件求半徑為r的圓的面積和周長。函數(shù)文件如下:(fcircle.m)function[s,p]=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圓半徑%s圓面積%p圓周長s=pi*r*r;p=2*pi*r;窗口調(diào)用:[s,p]=fcircle(6)第二十四頁,共一百二十頁,2022年,8月28日程序2:例:,計算f(1)首先建立一個M函數(shù):functionY=fun1(x)Y=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14);在指令窗口運行以下指令:Z=fun1(1)第二十五頁,共一百二十頁,2022年,8月28日1、x=[a,b,c,d,e,f]或x=[abcdef]2、x=first:last3、x=first:increment:last4、linspace(first,last,n)三數(shù)組與矩陣運算1、數(shù)組的建立例:x=[123458718]y=1:7z=3:2:9u=linspace(2,9,11)第二十六頁,共一百二十頁,2022年,8月28日空陣[]—matlab允許輸入空陣,當(dāng)一項操作無結(jié)果時,返回空陣。rand——隨機矩陣eye——單位矩陣
eye(N)
生成N*N的單位陣
eye(M,N)
生成M*N的單位陣。zeros——全部元素都為0的矩陣
zeros(N)
生成N*N的全零陣
zeros(M,N)
生成M*N的全零陣。ones——全部元素都為1的矩陣
ones(N)
生成N*N的全一陣
ones(M,N)
生成M*N的全一陣。2、特殊矩陣的生成第二十七頁,共一百二十頁,2022年,8月28日例:a=[]b=zeros(4,5)c=ones(4,5)d=eye(4,5)e=eye(4,4)第二十八頁,共一百二十頁,2022年,8月28日3.矩陣的幾種基本變換操作1.
通過在矩陣變量后加’的方法來表示轉(zhuǎn)置運算:a=[10,2,12;34,2,4;98,34,6];a'2.
矩陣求逆:inv(a)3.矩陣的特征值:norm(a)4.矩陣的范數(shù):norm(a,1)norm(a,inf)[u,v]=eig(a)5.矩陣的行列式:det(a)第二十九頁,共一百二十頁,2022年,8月28日4MATLAB運算
1)基本算術(shù)運算
MATLAB的基本算術(shù)運算有:+(加)、-(減)、*(乘)、/(右除)、\(左除)、^(乘方)。
注意,運算是在矩陣意義下進行的,單個數(shù)據(jù)的算術(shù)運算只是一種特例。第三十頁,共一百二十頁,2022年,8月28日(1)矩陣加減運算
假定有兩個矩陣A和B,則可以由A+B和A-B實現(xiàn)矩陣的加減運算。運算規(guī)則是:若A和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減運算,A和B矩陣的相應(yīng)元素相加減。如果A與B的維數(shù)不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數(shù)不匹配。(2)矩陣乘法
假定有兩個矩陣A和B,若A為m×n矩陣,B為n×p矩陣,則C=A*B為m×p矩陣。第三十一頁,共一百二十頁,2022年,8月28日(3)矩陣除法
在MATLAB中,有兩種矩陣除法運算:\和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則A\B和B/A運算可以實現(xiàn)。A\B等效于A的逆左乘B矩陣,也就是inv(A)*B,而B/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)。
對于含有標量的運算,兩種除法運算的結(jié)果相同,如3/4和4\3有相同的值,都等于0.75。第三十二頁,共一百二十頁,2022年,8月28日(4)矩陣的乘方
一個矩陣的乘方運算可以表示成A^x,要求A為方陣,x為標量。
2.點運算
在MATLAB中,有一種特殊的運算,因為其運算符是在有關(guān)算術(shù)運算符前面加點,所以叫點運算。點運算符有.*、./、.\和.^。兩矩陣進行點運算是指它們的對應(yīng)元素進行相關(guān)運算,要求兩矩陣的維參數(shù)相同。第三十三頁,共一百二十頁,2022年,8月28日a=[1,2,3;4,5,6;7,8,9]b=[-1,0,1;1,-1,0;0,1,1]c=a.*ba=123456789b=-1011-10011c=-1034-50089x=[1,2,3;4,5,6]y=[-2,1,3;-1,1,4]z1=x./yz2=y.\xx=123456y=-213-114z1=-0.521-451.5z2=-0.521-451.5第三十四頁,共一百二十頁,2022年,8月28日例:當(dāng)時,求的值.X=0.1:0.3:1;Y=sin(x).*cos(x)命令:第三十五頁,共一百二十頁,2022年,8月28日一、二維繪圖1
)plot——最基本的二維圖形指令plot的功能:plot命令自動打開一個圖形窗口Figure用直線連接相鄰兩數(shù)據(jù)點來繪制圖形根據(jù)圖形坐標大小自動縮擴坐標軸,將數(shù)據(jù)標尺及單位標注自動加到兩個坐標軸上,可自定坐標軸,可把x,y軸用對數(shù)坐標表示
四matlab語言的繪圖功能第三十六頁,共一百二十頁,2022年,8月28日如果已經(jīng)存在一個圖形窗口,plot命令則清除當(dāng)前圖形,繪制新圖形可單窗口單曲線繪圖;可單窗口多曲線繪圖;可單窗口多曲線分圖繪圖;可多窗口繪圖可任意設(shè)定曲線顏色和線型可給圖形加坐標網(wǎng)線和圖形加注功能第三十七頁,共一百二十頁,2022年,8月28日plot的調(diào)用格式plot(x,y)——基本格式,以y(x)的函數(shù)關(guān)系作出直角坐標圖。plot(x1,y1,x2,y2,…,xn,yn)——多條曲線繪圖格式。plot(x,y,’s’)——字符串s設(shè)定曲線顏色和繪圖方式,使用顏色字符串的前1~3個字母,如yellow—yel表示等?;騪lot(x1,y1,’s1’,x2,y2,’s2’,…)第三十八頁,共一百二十頁,2022年,8月28日S的標準設(shè)定值如下:
字母顏色標點線型
y黃色·點線
m粉紅○圈線
c亮藍××線
r大紅++字線
g綠色-實線
b藍色星形線
w白色:虛線
k黑色-·(--)點劃線第三十九頁,共一百二十頁,2022年,8月28日x=0:0.001:10;%0到10的1000個點的x座標y=sin(x);%對應(yīng)的y座標plot(x,y);%繪圖1.單窗口單曲線繪圖第四十頁,共一百二十頁,2022年,8月28日2.單窗口多曲線繪圖(m11)例:t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,t,y1,t,y2)yy1y2第四十一頁,共一百二十頁,2022年,8月28日3.單窗口多曲線分圖繪圖subplot——子圖分割命令調(diào)用格式:
subplot(m,n,p)行列繪圖序號
該函數(shù)將當(dāng)前圖形窗口分成m×n個繪圖區(qū),即每行n個,共m行,區(qū)號按行優(yōu)先編號,且選定第p個區(qū)為當(dāng)前活動區(qū),按從左至右,從上至下排列。在每一個繪圖區(qū)允許以不同的坐標系單獨繪制圖形。第四十二頁,共一百二十頁,2022年,8月28日例分別以條形圖、階梯圖、桿圖和填充圖形式繪制曲線y=2sin(x)。程序如下:(m12)x=0:pi/10:2*pi;y=2*sin(x);subplot(2,2,1);bar(x,y,'g');subplot(2,2,2);stairs(x,y,'b');subplot(2,2,3);stem(x,y,'k');subplot(2,2,4);fill(x,y,'y');第四十三頁,共一百二十頁,2022年,8月28日4.圖形加注功能將標題、坐標軸標記、網(wǎng)格線及文字注釋加注到圖形上,這些函數(shù)為:1)有關(guān)圖形標注函數(shù)的調(diào)用格式為:title(圖形名稱)xlabel(x軸說明)ylabel(y軸說明)text(x,y,圖形說明)legend(圖例1,圖例2,…)
第四十四頁,共一百二十頁,2022年,8月28日例在0≤x≤2區(qū)間內(nèi),繪制曲線y1=2e-0.5x和y2=cos(4πx),并給圖形添加圖形標注。程序如下(m14)x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(4*pi*x);plot(x,y1,x,y2)title('xfrom0to2{\pi}');%加圖形標題xlabel('VariableX');%加X軸說明ylabel('VariableY');%加Y軸說明text(0.8,1.5,‘曲線y1=2e^{-0.5x}’);%在指定位置添加圖形說明text(2.5,1.1,'曲線y2=cos(4{\pi}x)');legend(‘y1’,‘y2’)%加圖例第四十五頁,共一百二十頁,2022年,8月28日2).坐標控制axis函數(shù)的調(diào)用格式為:axis([xminxmaxyminymaxzminzmax])axis函數(shù)功能豐富,常用的格式還有:axisequal:縱、橫坐標軸采用等長刻度。axissquare:產(chǎn)生正方形坐標系(缺省為矩形)。axisauto:使用缺省設(shè)置。axisoff:取消坐標軸。axison:顯示坐標軸。第四十六頁,共一百二十頁,2022年,8月28日給坐標加網(wǎng)格線用grid命令來控制。gridon/off命令控制是畫還是不畫網(wǎng)格線,不帶參數(shù)的grid命令在兩種狀態(tài)之間進行切換。給坐標加邊框用box命令來控制。boxon/off命令控制是加還是不加邊框線,不帶參數(shù)的box命令在兩種狀態(tài)之間進行切換。圖形保持用hold命令來控制。holdon/off命令控制是保持原有圖形還是刷新原有圖形,不帶參數(shù)的hold命令在兩種狀態(tài)之間進行切換。第四十七頁,共一百二十頁,2022年,8月28日例:(m15)t=0:0.1:10y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--');x=[1.7*pi;1.6*pi];y=[-0.3;0.8];s=['sin(t)';'cos(t)'];text(x,y,s);title('正弦和余弦曲線');legend('正弦','余弦')xlabel('時間t'),ylabel('正弦、余弦')gridonaxissquare第四十八頁,共一百二十頁,2022年,8月28日例采用圖形保持,在同一坐標內(nèi)繪制曲線y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。程序如下(m16):x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);plot(x,y1)holdony2=2*exp(-0.5*x).*cos(pi*x);plot(x,y2);holdoff第四十九頁,共一百二十頁,2022年,8月28日5.ezplot(f)—符號函數(shù)(顯函數(shù)、隱函數(shù)和參數(shù)方程)的簡易繪圖函數(shù)MATLAB提供了一個ezplot函數(shù)繪制隱函數(shù)圖形,下面介紹其用法。(1)對于函數(shù),ezplot函數(shù)的調(diào)用格式為:ezplot(‘f’):在默認區(qū)間-2π<x<2π和-2π<y<2π繪制f(x,y)=0的圖形。ezplot(‘f’,[xmin,xmax,ymin,ymax]):在區(qū)間xmin<x<xmax和ymin<y<ymax繪制f(x,y)=0的圖形。ezplot(‘f’,[a,b]):在區(qū)間a<x<b和a<y<b繪制f(x,y)=0的圖形。第五十頁,共一百二十頁,2022年,8月28日(2)對于參數(shù)方程x=x(t)和y=y(t),ezplot函數(shù)的調(diào)用格式為:ezplot(‘x’,‘y’):在默認區(qū)間0<t<2π繪制x=x(t)和y=y(t)的圖形。ezplot(‘x’,‘y’,[tmin,tmax]):在區(qū)間tmin<t<tmax繪制x=x(t)和y=y(t)的圖形。第五十一頁,共一百二十頁,2022年,8月28日subplot(2,2,1);ezplot('x^2+y^2-9');axisequal;subplot(2,2,2);ezplot('x^3+y^3-5*x*y+1/5')subplot(2,2,3);ezplot('cos(tan(pi*x))',[0,1])subplot(2,2,4);ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi])例隱函數(shù)繪圖應(yīng)用舉例。(m17)第五十二頁,共一百二十頁,2022年,8月28日6polar函數(shù)用來繪制極坐標圖,其調(diào)用格式為:
polar(theta,rho,選項)其中theta為極坐標極角,rho為極坐標矢徑,選項的內(nèi)容與plot函數(shù)相似。例繪制r=sin(t)cos(t)的極坐標圖,并標記數(shù)據(jù)點。程序如下:(m19)t=0:pi/50:2*pi;r=sin(t).*cos(t);polar(t,r,'-*');第五十三頁,共一百二十頁,2022年,8月28日7.特殊二維繪圖函數(shù)bar––––繪制直方圖stairs––––繪制階梯圖
stem––––繪制火柴桿圖
comet––––繪制彗星曲線
errorbar––––繪制誤差棒圖
area––––區(qū)域圖
pie––––餅圖
scatter––––離散點圖第五十四頁,共一百二十頁,2022年,8月28日二維統(tǒng)計分析圖在MATLAB中,二維統(tǒng)計分析圖形很多,常見的有條形圖、階梯圖、桿圖和填充圖等,所采用的函數(shù)分別是:bar(x,y,選項)stairs(x,y,選項)stem(x,y,選項)fill(x1,y1,選項1,x2,y2,選項2,…)第五十五頁,共一百二十頁,2022年,8月28日例:分別以條形圖、階梯圖、桿圖和填充圖形式繪制曲線y=2sin(x)。程序如下:(m20)x=0:pi/10:2*pi;y=2*sin(x);subplot(2,2,1);bar(x,y,'g');title('bar(x,y,''g'')');axis([0,7,-2,2]);subplot(2,2,2);stairs(x,y,'b');title('stairs(x,y,''b'')');axis([0,7,-2,2]);subplot(2,2,3);stem(x,y,'k');title('stem(x,y,''k'')');axis([0,7,-2,2]);subplot(2,2,4);fill(x,y,'y');title('fill(x,y,''y'')');axis([0,7,-2,2]);第五十六頁,共一百二十頁,2022年,8月28日MATLAB提供的統(tǒng)計分析繪圖函數(shù)還有很多,例如,用來表示各元素占總和的百分比的餅圖、例繪制圖形:(1)某企業(yè)全年各季度的產(chǎn)值(單位:萬元)分別為:2347,1827,2043,3025,試用餅圖作統(tǒng)計分析。程序如下:(m21)pie([2347,1827,2043,3025]);title('餅圖');legend('一季度','二季度','三季度','四季度');第五十七頁,共一百二十頁,2022年,8月28日二、三維繪圖三維繪圖的主要功能:繪制三維線圖繪制等高線圖繪制偽彩色圖繪制三維網(wǎng)線圖繪制三維曲面圖、柱面圖和球面圖繪制三維多面體并填充顏色第五十八頁,共一百二十頁,2022年,8月28日(一)三維線圖plot3——基本的三維圖形指令plot3函數(shù)與plot函數(shù)用法十分相似,其調(diào)用格式為:plot3(x1,y1,z1,選項1,x2,y2,z2,選項2,…,xn,yn,zn,選項n)
其中每一組x,y,z組成一組曲線的坐標參數(shù),選項的定義和plot函數(shù)相同。第五十九頁,共一百二十頁,2022年,8月28日二維圖形的所有基本特性對三維圖形全都適用。定義三維坐標軸大小
axis([xminxmaxyminymaxzminzmax])gridon(off)繪制三維網(wǎng)格
text(x,y,z,‘string’)三維圖形標注子圖和多窗口也可以用到三維圖形中第六十頁,共一百二十頁,2022年,8月28日t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Linein3-DSpace');xlabel('X');ylabel('Y');zlabel('Z');gridon;例:繪制三維曲線(m22)第六十一頁,共一百二十頁,2022年,8月28日例:繪制三維線圖t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),‘r:’)(m23)第六十二頁,共一百二十頁,2022年,8月28日三維曲面1.產(chǎn)生三維數(shù)據(jù)在MATLAB中,利用meshgrid函數(shù)產(chǎn)生平面區(qū)域內(nèi)的網(wǎng)格坐標矩陣。其格式為:
x=a:d1:b;y=c:d2:d;1.[X,Y]=meshgrid(x,y);2.[X,Y]=meshgrid(x);meshgrid的作用是產(chǎn)生一個以向量x為行、向量y為列的矩陣。第六十三頁,共一百二十頁,2022年,8月28日x=[234];y=[345];[X,Y]=meshgrid(x,y);例:第六十四頁,共一百二十頁,2022年,8月28日繪制三維曲面的函數(shù)surf函數(shù)和mesh函數(shù)的調(diào)用格式為:mesh(x,y,z,c)surf(x,y,z,c)一般情況下,x,y,z是維數(shù)相同的矩陣。x,y是網(wǎng)格坐標矩陣,z是網(wǎng)格點上的高度矩陣,c用于指定在不同高度下的顏色范圍第六十五頁,共一百二十頁,2022年,8月28日例繪制三維曲面圖z=sin(x+sin(y))-x/10。程序如下:(m25)[x,y]=meshgrid(0:0.25:4*pi);z=sin(x+sin(y))-x/10;mesh(x,y,z);axis([04*pi04*pi-2.51]);第六十六頁,共一百二十頁,2022年,8月28日注:meshc是帶等高線的三維網(wǎng)格曲面函數(shù)
meshz帶底座的三維網(wǎng)格曲面函數(shù)。其用法與mesh類似,不同的是meshc還在xy平面上繪制曲面在z軸方向的等高線,meshz還在xy平面上繪制曲面的底座。第六十七頁,共一百二十頁,2022年,8月28日例在xy平面內(nèi)選擇區(qū)域[-8,8]×[-8,8],繪制4種三維曲面圖。程序如下:(m26)[x,y]=meshgrid(-8:0.5:8);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);subplot(2,2,1);title(‘’);mesh(x,y,z);title('mesh(x,y,z)')subplot(2,2,2);meshc(x,y,z);title('meshc(x,y,z)')subplot(2,2,3);meshz(x,y,z);title('meshz(x,y,z)')subplot(2,2,4);surf(x,y,z);title('surf(x,y,z)')第六十八頁,共一百二十頁,2022年,8月28日5.4.3其他三維圖形在介紹二維圖形時,曾提到條形圖、桿圖、餅圖和填充圖等特殊圖形,它們還可以以三維形式出現(xiàn),使用的函數(shù)分別是bar3、stem3、pie3和fill3。bar3函數(shù)繪制三維條形圖,常用格式為:bar3(y)bar3(x,y)第六十九頁,共一百二十頁,2022年,8月28日stem3函數(shù)繪制離散序列數(shù)據(jù)的三維桿圖,常用格式為:stem3(z)stem3(x,y,z)pie3函數(shù)繪制三維餅圖,常用格式為:pie3(x)fill3函數(shù)等效于三維函數(shù)fill,可在三維空間內(nèi)繪制出填充過的多邊形,常用格式為:fill3(x,y,z,c)第七十頁,共一百二十頁,2022年,8月28日符號運算符功能函數(shù)名==等于eq~=不等于ne<小于lt>大于gt<=小于等于le>=大于等于ge&邏輯與and|邏輯或or~邏輯非not1)關(guān)系、邏輯關(guān)系運算五、Matlab程序設(shè)計第七十一頁,共一百二十頁,2022年,8月28日2)數(shù)據(jù)的輸入、輸出
1.?dāng)?shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),則可以使用input函數(shù)來進行,該函數(shù)的調(diào)用格式為:
A=input(提示信息,選項);其中提示信息為一個字符串,用于提示用戶輸入什么樣的數(shù)據(jù)。第七十二頁,共一百二十頁,2022年,8月28日如果在input函數(shù)調(diào)用時采用‘s’選項,則允許用戶輸入一個字符串。例如,想輸入一個人的姓名,可采用命令:
xm=input('What'syourname?','s');2.?dāng)?shù)據(jù)的輸出
MATLAB提供的命令窗口輸出函數(shù)主要有disp函數(shù),其調(diào)用格式為:
disp(輸出項)其中輸出項既可以為字符串,也可以為矩陣。第七十三頁,共一百二十頁,2022年,8月28日
例輸入x,y的值,并將它們的值互換后輸出。程序如下:(m4)x=input(‘Inputxplease:');y=input(‘Inputyplease:');z=x;x=y;y=z;disp(x);disp(y);第七十四頁,共一百二十頁,2022年,8月28日3)選擇結(jié)構(gòu)1.if語句在MATLAB中,if語句有3種格式。
(1)單分支if語句:
if
條件
語句組
end當(dāng)條件成立時,則執(zhí)行語句組,執(zhí)行完之后繼續(xù)執(zhí)行if語句的后繼語句,若條件不成立,則直接執(zhí)行if語句的后繼語句。第七十五頁,共一百二十頁,2022年,8月28日(2)雙分支if語句:
if
條件
語句組1
else
語句組2
end
當(dāng)條件成立時,執(zhí)行語句組1,否則執(zhí)行語句組2,語句組1或語句組2執(zhí)行后,再執(zhí)行if語句的后繼語句。第七十六頁,共一百二十頁,2022年,8月28日例計算分段函數(shù)的值。(m5)程序如下:x=input('請輸入x的值:');ifx<=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endy第七十七頁,共一百二十頁,2022年,8月28日(3)多分支if語句:if條件1
語句組1elseif條件2
語句組2……elseif條件m
語句組melse
語句組nend語句用于實現(xiàn)多分支選擇結(jié)構(gòu)。第七十八頁,共一百二十頁,2022年,8月28日例:學(xué)生的成績管理,用來演示if-else-end分支結(jié)構(gòu)的應(yīng)用。%劃分區(qū)域:滿分(100),優(yōu)秀(90-99),良好(80-89),及格(60-79),不及格(<60)。(m6)N=input('輸入分數(shù):');ifN>=90&N<=100S='優(yōu)秀'; %列為'優(yōu)秀'等級elseifN>=80&N<90S='良好'; %列為'良好'等級elseifN>=60&N<80S='及格';%列為'及格'等級elseS='不及格';%列為'不及格'等級enddisp(S)第七十九頁,共一百二十頁,2022年,8月28日2.switch語句
switch語句根據(jù)表達式的取值不同,分別執(zhí)行不同的語句,其語句格式為:
switch表達式
case表達式1
語句組1case表達式2
語句組2……case表達式m
語句組motherwise
語句組nend當(dāng)表達式的值等于某個case語句后的條件時,程序?qū)⑥D(zhuǎn)移到該語句中執(zhí)行當(dāng)任意一個分支的語句執(zhí)行完后,直接執(zhí)行switch語句的下一句。第八十頁,共一百二十頁,2022年,8月28日
程序如下:result=input(‘請輸入分數(shù)');n=fix(result/10);switchncase{9,10}disp(‘優(yōu)秀’);case8disp(‘良好’);case{6,7}disp(‘及格’);otherwisedisp(‘不及格’);end第八十一頁,共一百二十頁,2022年,8月28日2)循環(huán)結(jié)構(gòu)1.for語句for語句的格式為:for循環(huán)變量=表達式1:表達式2:表達式3
循環(huán)體語句end其中表達式1的值為循環(huán)變量的初值,表達式2的值為步長,表達式3的值為循環(huán)變量的終值。步長為1時,表達式2可以省略。第八十二頁,共一百二十頁,2022年,8月28日2.while語句
while語句的一般格式為:
while
條件循環(huán)體語句
end
其執(zhí)行過程為:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。第八十三頁,共一百二十頁,2022年,8月28日例:用while循環(huán)求1~100間整數(shù)的和程序如下:(m9)sum=0;i=1;whilei<=100sum=sum+i;i=i+1;endsum
sum=5050
第八十四頁,共一百二十頁,2022年,8月28日五Matlab符號運算1符號對象2符號微積分3符號方程求解第八十五頁,共一百二十頁,2022年,8月28日1符號對象1.1建立符號對象1.建立符號變量和符號常量MATLAB提供了兩個建立符號對象的函數(shù):sym和syms,兩個函數(shù)的用法不同。(1)sym函數(shù)sym函數(shù)用來建立單個符號量,一般調(diào)用格式為:
符號量名=sym('符號字符串')如:x=sym(‘x’)第八十六頁,共一百二十頁,2022年,8月28日(2)syms函數(shù)MATLAB提供了另一個函數(shù)syms,一次可以定義多個符號變量。syms函數(shù)的一般調(diào)用格式為:syms符號變量名1符號變量名2…符號變量名n注:變量間用空格而不要用逗號分隔。如:symsxyz第八十七頁,共一百二十頁,2022年,8月28日例1:f=2*x^2+3*x-5;g=x^2+x-7;>>symsx>>f=2*x^2+3*x-5;g=x^2+x-7;>>h=f+gans=h=3*x^2+4*x-12例2:f=cos(x);g=sin(2*x);>>symsx>>f=cos(x);g=sin(2*x);>>f/g+f*gans=cos(x)/sin(x)+cos(x)*sin(x)第八十八頁,共一百二十頁,2022年,8月28日2.符號表達式的因式分解與展開MATLAB提供了符號表達式的因式分解與展開的函數(shù),函數(shù)的調(diào)用格式為:factor(f):對符號表達式s分解因式。expand(f):對符號表達式s進行展開。collect(f):對符號表達式s合并同類項。collect(f,v):對符號表達式s按變量v合并同類項。第八十九頁,共一百二十頁,2022年,8月28日例:分解symsx;y=x^3+3*x^2-13*x-15;factor(y)ans=(x+5)*(x-3)*(x+1)例:展開symsx;y=(x-3)^2;expand(y)ans=x^2-6*x+9第九十頁,共一百二十頁,2022年,8月28日4.符號表達式的化簡MATLAB提供的對符號表達式化簡的函數(shù)有:simplify(f):應(yīng)用函數(shù)規(guī)則對s進行化簡。simple(f):調(diào)用MATLAB的其他函數(shù)對表達式進行綜合化簡,并顯示化簡過程。symsxf=(x^2-3*x-10)/(x+2);simplify(f)例:化簡(m31)第九十一頁,共一百二十頁,2022年,8月28日2.2符號導(dǎo)數(shù)diff函數(shù)用于對符號表達式求導(dǎo)數(shù)。該函數(shù)的一般調(diào)用格式為:diff(f):沒有指定變量和導(dǎo)數(shù)階數(shù),默認變量對符號表達式f求一階導(dǎo)數(shù)。diff(f,'v',n):以v為自變量,對符號表達式f求n階導(dǎo)數(shù)。第九十二頁,共一百二十頁,2022年,8月28日例:求函數(shù)的二階導(dǎo)數(shù)(m9)symsx;f=3*x^3+5*x+1;diff(f,2)解:Matlab命令(m32)例:求函數(shù)關(guān)于x的偏導(dǎo)數(shù)(m10)解:Matlab命令(m33)symsxy;z=x^2*sin(2*y);B=diff(z,x)pretty(B)第九十三頁,共一百二十頁,2022年,8月28日2.3符號積分符號積分由函數(shù)int來實現(xiàn)。該函數(shù)的一般調(diào)用格式為:int(f):沒有指定積分變量和積分階數(shù)時,系統(tǒng)默認變量對被積函數(shù)或符號表達式f求不定積分。int(f,v):以v為自變量,對被積函數(shù)或符號表達式f求不定積分。int(f,v,a,b):求定積分運算。a,b分別表示定積分的下限和上限。該函數(shù)求被積函數(shù)在區(qū)間[a,b]上的定積分。第九十四頁,共一百二十頁,2022年,8月28日symsx;y=1/(sin(x)^2*cos(x)^2);pretty(int(y))計算解:Matlab命令(m34)symsxz;y=x/(1+z^2);pretty(int(y,z))計算解:Matlab命令(m35)第九十五頁,共一百二十頁,2022年,8月28日計算二重不定積分symsxy;A=int(int(x^2+y^2+1,y,x,x+1),x,0,1);symsx;y=1/(3+2*x+x^2);pretty(int(y,x,0,1))計算解:Matlab命令(m36)解:Matlab命令(m37)第九十六頁,共一百二十頁,2022年,8月28日4符號方程求解4.1符號代數(shù)方程求解在MATLAB中,求解用符號表達式表示的代數(shù)方程可由函數(shù)solve實現(xiàn),其調(diào)用格式為:solve(f):求解符號表達式f的代數(shù)方程,求解變量為默認變量。solve(f,v):求解符號表達式f的代數(shù)方程,求解變量為v。solve(f1,f2,…,fn,v1,v2,…,vn):求解符號表達式f1,f2,…,fn組成的代數(shù)方程組,求解變量分別v1,v2,…,vn。第九十七頁,共一百二十頁,2022年,8月28日例:解方程組(m38)
程序:[x,y,z]=solve('x+y+z=1','x-y+z=2','2*x-y-z=1','x','y','z')z=5/6,y=-1/2,x=2/3第九十八頁,共一百二十頁,2022年,8月28日4.2符號常微分方程求解在MATLAB中,用大寫字母D表示導(dǎo)數(shù)。例如,Dy表示y‘,D2y表示y’‘,Dy(0)=5表示y’(0)=5。D3y+D2y+Dy-x+5=0表示微分方程y‘’‘+y’‘+y’-x+5=0。第九十九頁,共一百二十頁,2022年,8月28日符號常微分方程求解可以通過函數(shù)dsolve來實現(xiàn),其調(diào)用格式為:
dsolve(e,c,v)該函數(shù)求解常微分方程e在初值條件c下的特解。參數(shù)v描述方程中的自變量,省略時按缺省原則處理,dsolve在求常微分方程組時的調(diào)用格式為:
dsolve(e1,e2,…,en,c1,…,cn,v1,…,vn)該函數(shù)求解常微分方程組e1,…,en在初值條件c1,…,cn下的特解,若不給出初值條件,則求方程組的通解,v1,…,vn給出求解變量。第一百頁,共一百二十頁,2022年,8月28日求該方程的解(m44)y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')解:exp(-x)*cos(x)+exp(-x)*sin(x)ezplot(y)——方程解y(t)的時間曲線圖程序:第一百零一頁,共一百二十頁,2022年,8月28日第一百零二頁,共一百二十頁,2022年,8月28日例:兩個線性一階方程
[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g')f=C1*exp(3*x)*sin(4*x)+C2*exp(3*x)*cos(4*x)g=-C2*exp(3*x)*sin(4*x)+C1*exp(3*x)*cos(4*x)程序:m54解:第一百零三頁,共一百二十頁,2022年,8月28日非線性方程數(shù)值求解單變量非線性方程求解
在MATLAB中提供了一個fzero函數(shù),可以用來求單變量非線性方程的根。該函數(shù)的調(diào)用格式為:
z=fzero('fname',x0,tol,trace)其中fname是待求根的函數(shù)文件名,x0為搜索的起點。一個函數(shù)可能有多個根,但fzero函數(shù)只給出離x0最近的那個根。tol控制結(jié)果的相對精度,缺省時取tol=eps,trace指定迭代信息是否在運算中顯示,為1時顯示,為0時不顯示,缺省時取trace=0。六、數(shù)值方程解第一百零四頁,共一百二十頁,2022年,8月28日求f(x)=x-10x+2=0在x0=0.5附近的根。
步驟如下:(1)建立函數(shù)文件funx.m。
functionfx=funx(x)fx=x-10.^x+2;(2)調(diào)用fzero函數(shù)求根。m53
z=fzero('funx',0.5)z=0.3758第一百零五頁,共一百二十頁,2022年,8月28日非線性方程組的求解
對于非線性方程組F(X)=0,用fsolve函數(shù)求其數(shù)值解。函數(shù)的調(diào)用格式為:
X=fsolve('fun',X0,option)其中X為返回的解,fun是用于定義需求解的非線性方程組的函數(shù)文件名,X0是求根過程的初值,
option為最優(yōu)化工具箱的選項設(shè)定。最優(yōu)化工具箱提供了20多個選項。第一百零六頁,共一百二十頁,2022年,8月28日求下列非線性方程組在(0.5,0.5)附近的數(shù)值解。
(1)建立函數(shù)文件myfun.m。functionq=myfun(p)x=p(1);y=p(2);q(1)=x-0.6*sin(x)-0.3*cos(y);q(2)=y-0.6*cos(x)+0.3*sin(y);
(2)在給定的初值x0=0.5,y0=0.5下,調(diào)用fsolve函數(shù)求方程的根。m52x=fsolve('myfun',[0.5,0.5]')x=0.63540.3734第一百零七頁,共一百二十頁,2022年,8月28日2常微分方程初值問題的數(shù)值解法龍格-庫塔法的實現(xiàn)基于龍格-庫塔法,MATLAB提供了求常微分方程數(shù)值解的函數(shù),一般調(diào)用格式為:
[t,y]=ode23('fname',tspan,y0)[t,y]=ode45('fname',tspan,y0)其中fname是定義f(t,y)的函數(shù)文件名,該函數(shù)文件必須返回一個列向量。tspan形式為[t0,tf],表示求解區(qū)間。y0是初始狀態(tài)列向量。t和y分別給出時間向量和相應(yīng)的狀態(tài)向量。第一百零八頁,共一百二十頁,2022年,8月28日設(shè)有初值問題,試求其數(shù)值解(1)建立函數(shù)文件funt.m。functionyp=funt(t,y)yp=(y^2-t-2)/4/(t+1);(2)求解微分方程。m51t0=0;tf=10;y0=2;[t,y]=ode23('funt',[t0,tf],y0);%求數(shù)值解t'y'第一百零九頁,共一百二十頁,2022年,8月28日設(shè)已知某個函數(shù)關(guān)系y=f(x)在某些離散點上的函數(shù)值:
(6.1)x0x1x2x3x4xg(x)
f(x)七、數(shù)據(jù)插值、擬和
第一百一十頁,共一百二十頁,2022年,8月28日插值問題:
根據(jù)這些已知數(shù)據(jù)來構(gòu)造函數(shù)y=f(x)的一種簡單的近似表達式以便于計算點的函數(shù)值,或計算函數(shù)的一階、二階導(dǎo)數(shù)值。oy●●●●
y0
x1
x2
xn
y1
yn
x0y=f(x)g(x)
y2x●oy●●●●
y0
x1
x2
xn
y1
yn
x0y=f(x)g(x)第一百一十一頁,共一百二十頁,2022年,8月28日1一維數(shù)據(jù)插值在MATLAB中,一維插值的函數(shù)是interp1,其調(diào)用格式為:Y1=interp1(X,Y,X1,'method')函數(shù)根據(jù)X,Y的值,計算函數(shù)在X1處的值。X,Y是兩個等長的已知向量,分別描述采樣點和樣本值,X1是一個向量或標量,描述欲插值的點,Y1是一個與X1等長的插值結(jié)果。method是插值方法
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《薄層層析柱層析》課件
- 2025年臨汾貨物運輸駕駛員從業(yè)資格考試系統(tǒng)
- 2025年漢中道路貨運駕駛員從業(yè)資格證考試
- 《行政許可范圍制度》課件
- 住宅小區(qū)施工備案委托協(xié)議
- 排水系統(tǒng)工程合同協(xié)議書范本
- 長期購銷合同變更問題
- 花卉園藝設(shè)備租賃合同
- 舞臺表演音響租賃合同范本
- 農(nóng)藥使用安全操作手冊
- 山東建筑大學(xué)混凝土結(jié)構(gòu)原理期末考試復(fù)習(xí)題
- 永康電動工具市場行業(yè)報告
- 護理病例報告范文5篇
- 班主任基本功大賽:模擬情景題及參考答案匯編(小學(xué)組)
- 兒童房間管理制度
- 中國石油大學(xué)(華東)2008年化工原理(含答案)考研真題
- 湖南課件大學(xué)
- 2024高校大學(xué)《輔導(dǎo)員》招聘考試題庫
- 景區(qū)智慧充電樁建設(shè)方案
- 培訓(xùn)班授課教師課時費用領(lǐng)取表
- 2023年10月秘書學(xué)概論自考試卷及答案
評論
0/150
提交評論