計(jì)算機(jī)仿真課件-第一章-20151105_第1頁
計(jì)算機(jī)仿真課件-第一章-20151105_第2頁
計(jì)算機(jī)仿真課件-第一章-20151105_第3頁
計(jì)算機(jī)仿真課件-第一章-20151105_第4頁
計(jì)算機(jī)仿真課件-第一章-20151105_第5頁
已閱讀5頁,還剩166頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

授課教師:袁帥

信息學(xué)院

自動(dòng)化教研室計(jì)算機(jī)仿真講課內(nèi)容第1章MATLAB入門與基本運(yùn)算第2章MATLAB圖形與可視化第3章線性系統(tǒng)分析與設(shè)計(jì)第4章SIMULINK仿真環(huán)境第5章MATLAB控制仿真與實(shí)例第1章MATLAB入門與基本運(yùn)算1.1MATLAB環(huán)境與文件管理1.2基本數(shù)據(jù)定義與變量管理1.3變量、數(shù)組與函數(shù)1.4數(shù)據(jù)的輸入與輸出1.5數(shù)組與矩陣運(yùn)算1.6M文件與函數(shù)1.7多項(xiàng)式管理1.8控制語句與邏輯管理1.9曲線擬合與插值運(yùn)算1.10符號(hào)運(yùn)算MATLAB環(huán)境與文件管理MATLAB發(fā)展1970年代中期,CleveMoler博士開發(fā)了:

EISPACK(特征值求解的程序庫)

LINPACK(解線性方程的程序庫)

1970年代后期,

CleveMoler編寫接口程序:MATLAB,

即矩陣(MATrix)與實(shí)驗(yàn)室(LABoratory)

前3個(gè)字母的組合,是“矩陣實(shí)驗(yàn)室”的縮寫,

它是一種以矩陣運(yùn)算為基礎(chǔ)的交互式程序語言。

1983年春,CleveMoler和JohnLittle用C語言開發(fā)了第二代專業(yè)版

1984年,兩人成立了Mathworks公司,正式把MATLAB推向市場(chǎng)。1988年,推出MATLAB3.x版本(DOS版)。

1993年,推出MATLAB4.0版本(Win3.x)。

1997年,推出MATLAB5.0版(Windows95)。

1999年,推出MATLAB5.3版本(流行較廣)。

2000年,推出MATLAB6.0版本

2006年,推出MATLAB7.2版本

2012年,推出MATLAB7.14…………MATLAB環(huán)境與文件管理MATLAB發(fā)展MATLAB的特點(diǎn)1、起點(diǎn)高2、人機(jī)界面友好3、強(qiáng)大而簡(jiǎn)易的作圖功能4、一流的數(shù)值計(jì)算功能5、智能化程度高6、強(qiáng)勁的工具箱是一個(gè)強(qiáng)大的功能演算性草稿紙

難點(diǎn):函數(shù)較多,僅基本部分就有700多個(gè)。MATLAB環(huán)境與文件管理MATLAB環(huán)境與文件管理環(huán)境與文件管理菜單(Menu)當(dāng)前路徑當(dāng)前目錄窗口歷史記錄窗口工作區(qū)窗口命令窗口第1章MATLAB入門與基本運(yùn)算1.1MATLAB環(huán)境與文件管理1.2基本數(shù)據(jù)定義與變量管理1.3變量、數(shù)組與函數(shù)1.4數(shù)據(jù)的輸入與輸出1.5數(shù)組與矩陣運(yùn)算1.6M文件與函數(shù)1.7多項(xiàng)式管理1.8控制語句與邏輯管理1.9曲線擬合與插值運(yùn)算1.10符號(hào)運(yùn)算基本數(shù)據(jù)定義與變量管理建立數(shù)據(jù):創(chuàng)建變量,數(shù)組

創(chuàng)建數(shù)據(jù):輸入指令x=5;x1=[0.21.11,3];y1=[123;456];

顯示數(shù)據(jù):指令后去掉‘;’號(hào)或直接鍵入變量名

有規(guī)律的創(chuàng)建數(shù)據(jù):

等間隔定義數(shù)組:x2=1:10(或者為1:1:10)

等距離定義數(shù)組:x3=linspace(-1,1,10)

定義對(duì)數(shù)坐標(biāo)的數(shù)組:x4=logspace(-1,1,10)

基本數(shù)據(jù)定義與變量管理變量管理

變量查看:

變量查詢:

變量刪除:who(列出工作區(qū)中的內(nèi)存變量)whos(列出工作區(qū)中的內(nèi)存變量詳情)clear(清除工作區(qū)中的變量和函數(shù))exist(’變量名’)(查詢是否存在一個(gè)變量)基本數(shù)據(jù)定義與變量管理數(shù)值顯示:Format指令內(nèi)部只有一種類型為雙精度(8個(gè)字節(jié),64位),實(shí)數(shù)為1個(gè)雙精度數(shù),復(fù)數(shù)為兩個(gè)雙精度數(shù)。但輸出顯示格式有8種??捎胒ormat命令來改變顯示格式。例如:

formatshort顯示5位數(shù)(pi:3.1416)formatlong顯示15位數(shù)(pi:3.14159265358979)formatbank顯示貨幣格式(pi:3.14)Format指令Matlab命令顯示形式說明formatlong3.14159265358979316位十進(jìn)制formatshorte3.1416e+0005位十進(jìn)制數(shù)加指數(shù)formatlonge3.141592653589793e+00016位十進(jìn)制數(shù)加指數(shù)formathex400921fb54442d1816位十六進(jìn)制formatbank3.14兩位小數(shù)format++正、負(fù)或零formatrat355/113分?jǐn)?shù)近似formatshort(默認(rèn))3.14159二位整數(shù),四位小數(shù)基本數(shù)據(jù)定義與變量管理在線查詢:Help命令;尋求幫助的標(biāo)題lookfor命令;關(guān)鍵詞提供幫助變量、數(shù)組與函數(shù)變量表示變量名,常量名,函數(shù)名和文件名的字符串(1)由字母、數(shù)字、下劃線等符號(hào)組成,第一個(gè)字母必須是英文字母。(2)變量和常量最長(zhǎng)不要超過19個(gè)字符,多余截取。(3)函數(shù)和文件名通常不超過8個(gè)字符。(4)變量名大小寫敏感。變量、數(shù)組與函數(shù)變量:特殊變量

ans----默認(rèn)臨時(shí)變量

pi----πeps----計(jì)算機(jī)中的最小數(shù)

inf----無窮大

NaN----非數(shù)或不定數(shù)(如:0/0)

i或j----虛數(shù)單位變量、數(shù)組與函數(shù)注釋和標(biāo)點(diǎn)

%:注釋語句前面添加的符號(hào)

多條命令語句放在同一行,中間用逗號(hào)或分號(hào)隔開。逗號(hào)要求顯示結(jié)果,分號(hào)不要求顯示結(jié)果;例如:輸入x=4.5;y=5,f=1.9變量、數(shù)組與函數(shù)復(fù)數(shù)表示real:復(fù)數(shù)實(shí)部imag:復(fù)數(shù)虛部abs:復(fù)數(shù)幅值angle:復(fù)數(shù)相位例:變量、數(shù)組與函數(shù)數(shù)學(xué)函數(shù)abs(x):純量的絕對(duì)值或向量的長(zhǎng)度angle(z):復(fù)數(shù)z的相角(Phaseangle)sqrt(x):開平方real(z):復(fù)數(shù)z的實(shí)部imag(z):復(fù)數(shù)z的虛部conj(z):復(fù)數(shù)z的共軛復(fù)數(shù)round(x):四舍五入至最近整數(shù)fix(x):無論正負(fù),舍去小數(shù)至最近整數(shù)floor(x):地板函數(shù),即舍去正小數(shù)至最近整數(shù)(比此小數(shù)小的最近整數(shù))ceil(x):天花板函數(shù),即加入正小數(shù)至最近整數(shù)(比此小數(shù)大的最近整數(shù))rat(x):將實(shí)數(shù)x化為分?jǐn)?shù)表示rats(x):將實(shí)數(shù)x化為多項(xiàng)分?jǐn)?shù)展開sign(x):符號(hào)函數(shù)(Signumfunction)。當(dāng)x<0時(shí),sign(x)=-1;當(dāng)x=0時(shí),sign(x)=0;當(dāng)x>0時(shí),sign(x)=1。>小整理:MATLAB常用的三角函數(shù)sin(x):正弦函數(shù)cos(x):馀弦函數(shù)tan(x):正切函數(shù)asin(x):反正弦函數(shù)acos(x):反馀弦函數(shù)atan(x):反正切函數(shù)atan2(x,y):四象限的反正切函數(shù)sinh(x):超越正弦函數(shù)cosh(x):超越馀弦函數(shù)tanh(x):超越正切函數(shù)asinh(x):反超越正弦函數(shù)acosh(x):反超越馀弦函數(shù)atanh(x):反超越正切函數(shù)數(shù)據(jù)的輸入與輸出利用M文件生成數(shù)據(jù)

在當(dāng)前子目錄Work中:

新建abc.m文件;

鍵入a=1;b=-2;c=10;

保存文件;

在命令窗口中直接鍵入abc,運(yùn)行該程序;

獲得結(jié)果:a=1b=-2c=10;數(shù)據(jù)的輸入與輸出利用M文件生成數(shù)據(jù)

在當(dāng)前子目錄Work中:

新建abc.m文件;

鍵入a=1;b=-2;c=10;

保存文件;

在命令窗口中直接鍵入abc,運(yùn)行該程序;

獲得結(jié)果:a=1b=-2c=10;數(shù)據(jù)的輸入與輸出save與load指令

使用save與load指令保存與加載已有的數(shù)據(jù)。

例如:save;以二進(jìn)制的形式將所有變量存入到matlab.mat文件中;savedata;以二進(jìn)制的形式將所有變量存入到data.mat中;savedataxyz;以二進(jìn)制的格式將xyz存入到data.mat中;load;將matlab.mat文件中的所有變量加載到工作空間中;loaddata;將data.mat文件中的所有變量加載到工作空間中;loaddataxyz;將data.mat文件中變量xyz加載到工作空間中數(shù)據(jù)的輸入與輸出MATLAB低級(jí)文件I/O函數(shù)

MATLAB低級(jí)文件I/O函數(shù)fclose關(guān)閉文件Feof測(cè)試文件結(jié)束ferror查詢文件I/O的錯(cuò)誤狀態(tài)fgetl讀文件的行,忽略回行符fgets讀文件的行,包括回行符fopen打開文件fprintf把格式化數(shù)據(jù)寫到文件或屏幕上fread從文件中讀二進(jìn)制數(shù)據(jù)frewind返回到文件開始fscanf從文件中讀格式化數(shù)據(jù)fseek設(shè)置文件位置指示符ftell獲取文件位置指示符fwrite把二進(jìn)制數(shù)據(jù)寫到文件里數(shù)據(jù)的輸入與輸出FOPEN函數(shù):fopen函數(shù)打開一個(gè)文件并返回這個(gè)文件的文件句柄值。它的基本調(diào)用形式如下:fid=fopen(filename,permission)說明:其中fid用于存儲(chǔ)文件句柄值,如果返回的句柄值大于0,則說明文件打開成功。文件名filename用字符串形式,表示待打開的數(shù)據(jù)文件。Permission表示打開方式,常見的打開方式如表所示。FOPEN函數(shù)打開方式打開方式描述‘r’只讀方式打開文件(默認(rèn)的打開方式),該文件必須已存在‘r+’讀寫方式打開文件,打開后先讀后寫,該文件必須已存在‘w’打開后寫入數(shù)據(jù)。若該文件存在則更新;不存在則創(chuàng)建‘w+’讀寫方式打開文件,先讀后寫。若該文件存在則更新;不存在則創(chuàng)建‘a(chǎn)’在打開的文件末端添加數(shù)據(jù)。若文件不存在則創(chuàng)建‘a(chǎn)+’打開文件后,先讀入數(shù)據(jù)再添加數(shù)據(jù)。文件不存在則創(chuàng)建數(shù)據(jù)的輸入與輸出FSCANF函數(shù):fscanf函數(shù)可以讀取文本文件的內(nèi)容,并按指定格式存入矩陣。其調(diào)用格式為:[A,count]=fscanf(fid,format,size)說明:其中A用來存放讀取的數(shù)據(jù),COUNT返回所讀取的數(shù)據(jù)元素個(gè)數(shù),fid為文件句柄,format用來控制讀取的數(shù)據(jù)格式,由%加上格式符組成,常見的格式符有:d(整型)、f(浮點(diǎn)型)、s(字符串型)、c(字符型)等,在%與格式符之間還可以插入附加格式說明符,如%12f。size為可選項(xiàng),決定矩陣A中數(shù)據(jù)的大小,它可以取下列值:N(讀取N個(gè)元素到一個(gè)列向量)、inf(讀取整個(gè)文件)、[M,N](讀數(shù)據(jù)到M×N的矩陣中,數(shù)據(jù)按列存放)。數(shù)據(jù)的輸入與輸出FPRINTF函數(shù):fprintf函數(shù)可以將數(shù)據(jù)按指定格式寫入到文本文件中。其調(diào)用格式為:count=fprintf(fid,format,A,...)說明:fid為文件句柄,指定要寫入數(shù)據(jù)的文件,format是用來控制所寫數(shù)據(jù)格式的格式符,與fscanf函數(shù)相同,A是用來存放數(shù)據(jù)的矩陣。低級(jí)文件讀/寫數(shù)據(jù)的過程設(shè)已有Test.txt,內(nèi)容如右:

a_d_13.00.6-2.00.05372.00707-.02525-1.00.09308.04892.01294運(yùn)行文件inout.m內(nèi)容如下:%inputandoutputadatafilef1=fopen(‘test.txt’,’r’)p=fscanf(f1,’%c’)f2=fopen(‘name.txt’,’w’)fprintf(f2,’%s15\n,%9.5f\n,%9.5f\n,%4(9.5f)\n,,%4(9.5f)\n’,p)fclose(‘a(chǎn)ll’)數(shù)組與矩陣運(yùn)算矩陣表達(dá)式,用[]表示(1)基本賦值

1)使用[]2)同一行元素用空格或‘,’隔開

3)不同行用‘;’隔開

例如:a=[123;456]

(2)復(fù)數(shù)的賦值:例如:z=1+2i或1+2jz=[1+2i3+4i]z=[13]+[24]*i數(shù)組與矩陣運(yùn)算矩陣的變換

(1)抽?。河稍仃囍械牟糠衷貥?gòu)成新矩陣。如:b=a([2,4],[1,3])

表示第2,4行與第1、3列交叉元素組成新矩陣。(2)抽去:使用空矩陣[](無元素),將矩陣整行/列刪除。如:a([2,4],:)=[]

將2、4行刪除

a(:,[2])=[]

將第2列刪除數(shù)組與矩陣運(yùn)算矩陣的變換

(3)組合:由多個(gè)矩陣組成一個(gè)新矩陣,但行列應(yīng)正好。如:a=[123;456];b=[789;101112];c=[ab];d=[a;b];(4)轉(zhuǎn)置:b=a‘

(行變列)A=[123456]>>A'ans=142536B=[1+2i3+4i5-6i7-8i]>>B‘a(chǎn)ns=1.0000-2.0000i5.0000+6.0000i3.0000-4.0000i7.0000+8.0000i數(shù)組與矩陣運(yùn)算矩陣信息查詢

函數(shù)功能Whos顯示工作空間中存在的變量及其大小Sizes(A)返回A矩陣的行數(shù)與列數(shù)Length(A)返回?cái)?shù)組A的維數(shù)find(A)給出特殊要求(非零或其他條件)的矩陣元素的行、列標(biāo)記矩陣信息查詢函數(shù)數(shù)組與矩陣運(yùn)算矩陣信息查詢

[m,n]=size(A):返回矩陣的行列數(shù)m與n。length(A)=max(size(A)):返回行數(shù)或列數(shù)的最大值。>>A=[123;456];>>[m,n]=size(A)m=2n=3>>length(A)ans=3>>max(size(A))ans=3>>m=size(A,1)m=2>>n=size(A,2)n=3數(shù)組與矩陣運(yùn)算矩陣信息查詢

find()指令:特殊要求的矩陣元素定位>>A=[123;456];>>[m,n]=find(A>3)m=222n=123>>X=[01-2-6-379];>>p=find(abs(X)>3)p=467數(shù)組與矩陣運(yùn)算矩陣的塊操作

A(m,n):提取第m行,第n列元素>>A(2,3)ans=6A(m,:):提取第m行元素(冒號(hào)表示全部)>>A(2,:)ans=456A(:,n):提取第n列元素>>A(:,3)ans=369A(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子塊)。>>A(1:2,2:3)ans=2356A=123456789數(shù)組與矩陣運(yùn)算矩陣的塊操作

A(:):得到一個(gè)長(zhǎng)列矢量,該矢量的元素按矩陣的列進(jìn)行排列。>>A(:)ans=147258369矩陣擴(kuò)展:如果在原矩陣中一個(gè)不存在的地址位置上設(shè)定一個(gè)數(shù)(賦值),則該矩陣會(huì)自動(dòng)擴(kuò)展行列數(shù),并在該位置上添加這個(gè)數(shù),而且在其他沒有指定的位置補(bǔ)零。(變維結(jié)構(gòu))>>A(5,5)=10A=12300456007890000000000010數(shù)組與矩陣運(yùn)算矩陣的塊操作

刪除子塊:如果將矩陣的子塊賦值為空矩陣[],則相當(dāng)于消除了相應(yīng)的矩陣子塊。A=12300456007890000000000010>>A(4:5,:)=[]A=123004560078900>>A(:,4:5)=[]A=123456789數(shù)組與矩陣運(yùn)算矩陣的塊操作

>>A(1,2)=10A=1103456>>A(1,:)=DA=789456>>A(:,:)=1A=111111>>A=[123;456];D=[789];>>A(1:2,1:2)=[12;34]A=121341>>A=[56;78]A=5678數(shù)組與矩陣運(yùn)算矩陣的塊操作

>>A(1,2)=10A=1103456>>A(1,:)=DA=789456>>A(:,:)=1A=111111>>A=[123;456];D=[789];>>A(1:2,1:2)=[12;34]A=121341>>A=[56;78]A=5678數(shù)組與矩陣運(yùn)算矩陣的塊操作

>>A=[123;456;789]>>B=A(2:-1:1,1:3)>>C=A(end:-1:1,:)>>D=[AC(:,[13])]B=456123C=789456123A=123456789D=123794564678913數(shù)組與矩陣運(yùn)算矩陣的翻轉(zhuǎn)與旋轉(zhuǎn)操作

flipud(A):矩陣作上下翻轉(zhuǎn)

fliplr(A):矩陣作左右翻轉(zhuǎn)

rot90(A):逆時(shí)針旋轉(zhuǎn)90°A=[123456]>>flipud(A)ans=456123>>fliplr(A)ans=321654>>rot90(A)ans=362514數(shù)組與矩陣運(yùn)算矩陣的翻轉(zhuǎn)與旋轉(zhuǎn)操作

diag(A):提取矩陣A的對(duì)角元素,返回列向量

tril(A):提取A的下三角矩陣

triu(A):提取A的上三角矩陣

diag(V):以列向量V作對(duì)角元素創(chuàng)建對(duì)角矩陣>>diag(A)ans=159>>tril(A)ans=100450789>>triu(A)ans=123056009A=123456789V=[2;5;8;7]>>diag(V)ans=2000050000800007數(shù)組與矩陣運(yùn)算矩陣的運(yùn)算

運(yùn)算符

+-適用于兩同階矩陣或矩陣與標(biāo)量之間的運(yùn)算對(duì)應(yīng)元素的加減例:已知矩陣A和B,且

A=[21,2,4;7,13,19;1,8,17];B=[122524;11139;681];

計(jì)算C=A+B,D=A-B和E=A+3。>>C=A+BC=33272818262871618>>D=A-BD=9-23-20-4010-5016>>E=A+3E=245710162241120數(shù)組與矩陣運(yùn)算矩陣的運(yùn)算

運(yùn)算符*

適用于前一矩陣的列數(shù)和后一矩陣行數(shù)相同或者其中為標(biāo)量的情況。例:已知矩陣A和B,且

A=[21,2,4;7,13,19;1,8,17];B=[122524;11139;681];

試求C=A*B和D=A*3。>>C=A*BC=298583526341496304202265113>>D=A*3D=6361221395732451數(shù)組與矩陣運(yùn)算矩陣的運(yùn)算

運(yùn)算符:右除/

左除\

右除表示為:A/B=AB-1(B為方陣且非奇異)

左除表示為:A\B=A-1B(A為方陣且非奇異)例:已知矩陣A和B,且

A=[21,2,4;7,13,19;1,8,17];B=[122524;11139;681];

試計(jì)算A\B和A/B。>>A/Bans=-1.83365.6985-3.28010.55350.7891-1.38710.74960.0478-1.4201>>A\Bans=0.50811.11681.14290.3216-0.61860.28570.17170.6960-0.1429[注]矩陣的除法運(yùn)算實(shí)際是求AX=B的解的過程。當(dāng)A為非奇異矩陣時(shí),結(jié)果是最小二乘解,即矩陣除法可以找到使||AX-B||誤差絕對(duì)值最小的X。數(shù)組與矩陣運(yùn)算矩陣的運(yùn)算

運(yùn)算符:.為實(shí)現(xiàn)與矩陣相關(guān)的標(biāo)量運(yùn)算而設(shè)計(jì)的。與矩陣的常規(guī)運(yùn)算不同,是針對(duì)于矩陣中的元素定義的。分類:點(diǎn)乘

.*

點(diǎn)乘方.^

點(diǎn)右除

./

點(diǎn)左除

.\例:已知矩陣A和B,試求A*B,A.*B,A.^3,A./2和A.^B。其中A=[12;34];B=[56;78];>>A*Bans=19224350>>A.*Bans=5122132>>A.^3ans=182764>>A./2ans=0.50001.00001.50002.0000>>A.^Bans=164218765536數(shù)組與矩陣運(yùn)算矩陣的運(yùn)算

函數(shù)inv()矩陣A可逆,則矩陣A的逆矩陣是唯一的。>>X=inv(G)X=52-2-2-110-21>>I=inv(G)*GI=100010001例:求一矩陣G的逆矩陣,并驗(yàn)證所得結(jié)果。

G=[120;25-1;410-1];數(shù)組與矩陣運(yùn)算矩陣的運(yùn)算

G=[120;25-1;410-1]函數(shù)eig()設(shè)A為n階矩陣,λ是一個(gè)數(shù),如果方程Ax=λx存在非零解向量,則稱λ為A的一個(gè)特征值,相應(yīng)的非零向量x稱為特征值λ對(duì)應(yīng)的特征向量。>>d=eig(G)d=3.73210.26791.0000>>[V,D]=eig(G)V=-0.2440-0.91070.4472-0.33330.33330.0000-0.9107-0.24400.8944D=3.73210000.26790001.0000數(shù)組與矩陣運(yùn)算矩陣的運(yùn)算

求特征多項(xiàng)式:poly()。G=[120;25-1;410-1];>>poly(G)ans=1.0000-5.00005.0000-1.0000>>round(poly(G))ans=1-55-1數(shù)組與矩陣運(yùn)算矩陣的運(yùn)算

求行列式函數(shù)

det()若將矩陣看做是行列式,可求相應(yīng)的行列式值。例:已知矩陣A=[1234;2341;3412;4123]

求其對(duì)應(yīng)的行列式值。>>A=[1234;2341;3412;4123]A=1234234134124123>>det(A)ans=160數(shù)組與矩陣運(yùn)算矩陣的運(yùn)算

其他常用的矩陣函數(shù)函數(shù)功能expm(A)計(jì)算矩陣的冪級(jí)數(shù)logm(A)求矩陣的對(duì)數(shù)orth(A)求正交化矩陣svd(A)奇異值分解trace(A)矩陣的對(duì)角元素之和norm(A)矩陣和向量的范數(shù)Lu(A)用高斯消元法所得的系數(shù)矩陣qr(A)正交三角矩陣分解數(shù)組與矩陣運(yùn)算特殊矩陣

函數(shù)功能eye(m,n)產(chǎn)生m*n維單位矩陣zeros(m,n)產(chǎn)生全部元素為0的m*n矩陣ones(m,n)產(chǎn)生全部元素為1的m*n矩陣[]產(chǎn)生空矩陣magic(n)產(chǎn)生n階方陣,各行各列及對(duì)角線元素和相等rand(m,n)元素服從0到1之間均勻分布的隨機(jī)m*n矩陣diag(a)以向量a作為對(duì)角線元素生成對(duì)角矩陣M函數(shù)與M文件Matlab除了可以進(jìn)行前面講過的數(shù)學(xué)函數(shù)、矩陣函數(shù)運(yùn)算之外,還提供了M函數(shù)和M文件功能,用戶可以利用所有的已知函數(shù)編制自己的M函數(shù)或M文件,完成更復(fù)雜的運(yùn)算。

一個(gè)主程序的例子編寫一個(gè)雙音頻程序,顯示某個(gè)鍵的波形:M函數(shù)與M文件設(shè)主程序文件名為mydt.m%產(chǎn)生一個(gè)雙音頻fs=8000;t=(0:1/fs:0.2);f1=697;f2=1209;%鍵1對(duì)應(yīng)的兩個(gè)頻率y=sin(2*pi*f1*t)+sin(2*pi*f2*t);plot(t,y);wavplay(y,fs)M函數(shù)與M文件2、主程序的組成▓幫助段(帶注釋符%的行)▓程序段

如果有第一行(function),則主程序?yàn)楹瘮?shù)文件形式

,變量不保存到工作區(qū)中,為局部變量.

如果沒有第一行(function),則主程序?yàn)槊钗募问?,相?dāng)于各命令行的集合。變量保存到工作區(qū)中.M函數(shù)與M文件3、幾點(diǎn)說明▓文件名不能為漢字或數(shù)字開頭▓注釋符%后面的文字不執(zhí)行▓程序的每一行的執(zhí)行相當(dāng)于在命令行執(zhí)行▓一行可以寫多條語句,以‘,’或‘;’隔開;一行寫不下時(shí),以‘…’續(xù)行▓對(duì)于命令文件形式,建議在程序段開始用

clear,closeall等命令清除以前的變量▓對(duì)于函數(shù)文件形式,程序中的所有變量均為局部變量。M函數(shù)與M文件M函數(shù)

函數(shù)是用用來定義子程序的。主程序?qū)嶋H上也是一個(gè)函數(shù)(由MATLAB調(diào)用)。1、函數(shù)頭的形式:function函數(shù)名()(無變量傳遞)function函數(shù)名(var1,var2,…)(無返回值)function[y1,y2,…]=函數(shù)名(var1,var2,…)M函數(shù)與M文件2、函數(shù)的位置▓函數(shù)可以是一個(gè)單獨(dú)的文件(文件名和函數(shù)名應(yīng)相同)▓函數(shù)也可以放在主程序的后面。M函數(shù)M函數(shù)與M文件3、舉例根據(jù)t,f1,f2生成雙音頻的函數(shù)functionfy=mydtones(t,f1,f2)fy=sin(2*pi*f1*t)+sin(2*pi*f2*t);該函數(shù)可以是單獨(dú)文件或在主程序后面。例如:mydt1.mM函數(shù)與M文件%程序mydt1.m產(chǎn)生一個(gè)雙音頻clc;clearall;fs=8000;t=(0:1/fs:0.2);y=dtones(t,697,1209);%鍵1對(duì)應(yīng)的兩個(gè)頻率plot(t,y);wavplay(y,fs);%函數(shù)functionfy=dtones(t,f1,f2)fy=sin(2*pi*f1*t)+sin(2*pi*f2*t);M函數(shù)與M文件%程序文件mydt1.m產(chǎn)生一個(gè)雙音頻clc;clear;closeall;fs=8000;t=(0:1/fs:0.2);y=dtones(t,697,1209);plot(t,y);wavplay(y,fs);%函數(shù)文件dtones.mfunctionfy=dtones(t,f1,f2)fy=sin(2*pi*f1*t)+sin(2*pi*f2*t);M函數(shù)與M文件%程序文件mydt2.m產(chǎn)生一個(gè)雙音頻clc;clear;closeall;globaltfsfs=8000;t=(0:1/fs:0.2);y=dtones1(697,1209);plot(t,y);%函數(shù)文件dtones1.mfunctionfy=dtones1(f1,f2)globaltfsfy=sin(2*pi*f1*t)+sin(2*pi*f2*t);wavplay(fy,fs);M函數(shù)與M文件4、全局變量:如果在主程序和函數(shù)中使用同一變量,應(yīng)定義全局變量。globalval1val2…%程序文件mydt2.m產(chǎn)生一個(gè)雙音頻clc;clear;closeall;globaltfsfs=8000;t=(0:1/fs:0.2);y=dtones1(697,1209);plot(t,y);%函數(shù)文件dtones1.mfunctionfy=dtones1(f1,f2)globaltfsfy=sin(2*pi*f1*t)+sin(2*pi*f2*t);wavplay(fy,fs);M函數(shù)與M文件%程序文件名為mean.mfunctiony=mean(x)%mean求平均值%對(duì)于向量,返回向量x中各元素的平均值%對(duì)于矩陣,返回包含各列元素平均值的行向量[m,n]=size(x);ifm==1m=n;end;y=sum(x)/m;>>helpmean

mean求平均值對(duì)于向量,返回向量x中各元素的平均值對(duì)于矩陣,返回包含各列元素平均值的行向量M函數(shù)與M文件

例:編寫函數(shù)文件求半徑為r的圓的面積和周長(zhǎng)。函數(shù)文件如下:function[s,p]=fcircle(r)%CIRCLEcalculate%r圓半徑%s圓面積%p圓周長(zhǎng)s=pi*r*r;p=2*pi*r;M函數(shù)與M文件函數(shù)調(diào)用的一般格式是:

[輸出實(shí)參表]=函數(shù)名(輸入實(shí)參表)

要注意的是,函數(shù)調(diào)用時(shí)各實(shí)參出現(xiàn)的順序、個(gè)數(shù),應(yīng)與函數(shù)定義時(shí)形參的順序、個(gè)數(shù)一致,否則會(huì)出錯(cuò)。函數(shù)調(diào)用時(shí),先將實(shí)參傳遞給相應(yīng)的形參,從而實(shí)現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。M函數(shù)與M文件例:函數(shù)文件examp.m:functionfout=examp(a,b,c)ifnargin==1fout=a;elseifnargin==2fout=a+b;elseifnargin==3fout=(a*b*c)/2;end

命令文件mydemo.m:x=[1:3];y=[1;2;3];examp(x)examp(x,y')examp(x,y,3)M函數(shù)與M文件輸入輸出語句(人機(jī)交互)1、屏幕輸入格式:x=input(‘提示符’)----等待輸入數(shù)據(jù)

x=input(‘提示符’,‘s’)----等待輸入字符串

xm=input('What''syourname?','s');

M函數(shù)與M文件輸入輸出語句(人機(jī)交互)2、菜單命令格式:x=menu(‘標(biāo)題’,‘菜單項(xiàng)1’,菜單項(xiàng)2’,…)返回菜單序號(hào)。例如:x=menu(‘Title’,’Plus’,’Minus’)M函數(shù)與M文件3、暫停格式:pause------等待敲擊鍵盤

pause(n)-----等待n秒4、交出鍵盤格式:keyboad---程序執(zhí)行到該命令時(shí)暫停,在屏幕上顯示K,這時(shí)用戶可輸入命令,查看中間結(jié)果,輸入return命令,則程序繼續(xù)執(zhí)行。M函數(shù)與M文件5、中止執(zhí)行6、顯示格式:display(x)-----在命令行顯示x的內(nèi)容格式:^C---強(qiáng)行停止程序的執(zhí)行,回到命令行7、打印格式:print---------打印當(dāng)前繪圖print-dbitmap文件名

---------將繪圖轉(zhuǎn)為圖象文件

-djpegM函數(shù)與M文件

例:輸入x,y的值,并將它們的值互換后輸出。

程序如下:

x=input('Inputxplease.');y=input('Inputyplease.');z=x;x=y;y=z;disp(x);disp(y);多項(xiàng)式運(yùn)算一、多項(xiàng)式的表示在Matlab中,n次多項(xiàng)式是用一個(gè)長(zhǎng)度為n+1的向量來表示,缺少的冪次項(xiàng)系數(shù)為0。例如:在Matlab中,用其系數(shù)的行向量表示該多項(xiàng)式:例:注:系數(shù)中的零不能??!多項(xiàng)式運(yùn)算

多項(xiàng)式加減運(yùn)算:Matlab沒有提供專門進(jìn)行多項(xiàng)式加減運(yùn)算的函數(shù),事實(shí)上,多項(xiàng)式的加減就是其所對(duì)應(yīng)系數(shù)向量的加減運(yùn)算。例:

對(duì)于次數(shù)相同的多項(xiàng)式,可以直接對(duì)其系數(shù)向量進(jìn)行加減運(yùn)算;

如果兩個(gè)多項(xiàng)式次數(shù)不同,則應(yīng)該把低次多項(xiàng)式中系數(shù)不足的高次項(xiàng)用0補(bǔ)足,然后進(jìn)行加減運(yùn)算。多項(xiàng)式運(yùn)算例:把多項(xiàng)式a(x)與多項(xiàng)式b(x)相加求解如下:所得結(jié)果代表的多項(xiàng)式為:多項(xiàng)式運(yùn)算二、多項(xiàng)式的乘法多項(xiàng)式運(yùn)算一、多項(xiàng)式的乘法

多項(xiàng)式乘法運(yùn)算:k=conv(p,q)多項(xiàng)式的相乘就是兩個(gè)代表多項(xiàng)式的行向量的卷積例:計(jì)算多項(xiàng)式和的乘積>>p=[2,-1,0,3];>>q=[2,1];>>k=conv(p,q);

多項(xiàng)式除法運(yùn)算:[k,r]=deconv(p,q)其中k返回的是多項(xiàng)式p除以

q的商,r是余式。[k,r]=deconv(p,q)p=conv(q,k)+r<==>多項(xiàng)式運(yùn)算多項(xiàng)式的導(dǎo)數(shù):polyderk=polyder(p):返回多項(xiàng)式p的一階導(dǎo)數(shù);k=polyder(p,q):返回多項(xiàng)式p與q乘積的一階導(dǎo)數(shù);[k,d]=polyder(p,q):返回p/q

的導(dǎo)數(shù),k是分子,d是分母。>>k1=polyder([2,-1,0,3]);>>k2=polyder([2,-1,0,3],[2,1]);>>[k2,d]=polyder([2,-1,0,3],[2,1]);例:已知,,求多項(xiàng)式運(yùn)算多項(xiàng)式求值:polyval>>p=[2,-1,0,3];>>x=2;polyval(p,x)>>x=[-1,2;-2,1];polyval(p,x)例:已知,分別取x=2和一個(gè)2x2矩陣,求p(x)在x處的值

多項(xiàng)式求值函數(shù)polyval利用該函數(shù)可以求得多項(xiàng)式在某一點(diǎn)的值。y=polyval(p,x):返回多項(xiàng)式p在x點(diǎn)的值其中:x可以是復(fù)數(shù),也可以是矩陣;多項(xiàng)式運(yùn)算多項(xiàng)式求根:roots;根據(jù)根多項(xiàng)式求系數(shù):poly;>>p=[2,-1,0,3];>>x=roots(p)例:已知,求p(x)的根。x=roots(p):返回多項(xiàng)式的根,注意:matlab按慣例,多項(xiàng)式是行向量,根是列向量。求解多項(xiàng)式的根,即p(x)=0的解。在matlab中,求解多項(xiàng)式的根有roots函數(shù)命令來完成。若已知多項(xiàng)式的全部根,則可用poly函數(shù)給出該多項(xiàng)式。p=poly(x)多項(xiàng)式運(yùn)算部分分式展開函數(shù):residue格式一:[r,p,k]=residue(b,a)Residue函數(shù)可以完成有理多項(xiàng)式的部分分式展開,它是一個(gè)對(duì)系統(tǒng)傳遞函數(shù)特別有用的函數(shù),其調(diào)用格式為:功能:把b(s)/a(s)展開成:其中,r代表余數(shù)數(shù)組,p代表極點(diǎn)數(shù)組,k代表常數(shù)項(xiàng)。多項(xiàng)式運(yùn)算例:將有理多項(xiàng)式展開成部分分式。即有理多項(xiàng)式可展開為:部分分式展開函數(shù):residue多項(xiàng)式運(yùn)算格式二:[b,a]=residue(r,p,k)功能:格式一的逆作用控制語句與邏輯管理任何計(jì)算機(jī)語言都有三種基本結(jié)構(gòu),即:?順序結(jié)構(gòu):無控制語句?分支結(jié)構(gòu):if,switch?循環(huán)結(jié)構(gòu):for,while控制語句與邏輯管理1、順序結(jié)構(gòu):無控制語句

按照順序從頭至尾地執(zhí)行程序中的各條語句。順序結(jié)構(gòu)一般不包含其他任何子語句或控制語句。例如:n=0:100;x=sin(2*pi*0.01*n);plot(x);holdonstem(x,’r’);grid控制語句與邏輯管理?分支結(jié)構(gòu):if,switchif和switch語句用于根據(jù)條件選擇執(zhí)行相應(yīng)的語句。1、if語句(適合分支少)if語句根據(jù)邏輯表達(dá)式的值來確定是否執(zhí)行緊接的語句體。常見的調(diào)用格式有:控制語句與邏輯管理格式1:if表達(dá)式語句

end格式2:if表達(dá)式語句1else

語句2end控制語句與邏輯管理格式3:

if表達(dá)式1

語句1elseif表達(dá)式2

語句2else

語句3end例如:判斷輸入數(shù)的奇偶性n=input(‘n=’);ifrem(n,2)==0display(‘n是偶數(shù)’)elsedisplay(‘n是奇數(shù)’)end控制語句與邏輯管理2、switch語句(適合分支多)格式:

switch表達(dá)式(標(biāo)量或表達(dá)式)

case值1

語句1case值2

語句2…otherwise

語句nendswitch語句和if語句類似。Switch語句根據(jù)變量或表達(dá)式的取值不同分別執(zhí)行不同的命令。控制語句與邏輯管理例如:根據(jù)菜單選擇顯示不同的函數(shù)x=menu('波形','正弦','余弦','正切','余切');switchxcase1ezplot('sin')case2ezplot('cos')case3ezplot('tan')case4ezplot('cot')end控制語句與邏輯管理3、for語句格式:for變量=初值:增量:終值語句

end

例如:求100!

x=1;fork=1:1:100x=x*k;endx控制語句與邏輯管理例:已知,當(dāng)n=100時(shí),求y的值。程序如下:

y=0;n=100;fori=1:ny=y+1/(2*i-1);endy控制語句與邏輯管理

在實(shí)際MATLAB編程中,采用循環(huán)語句會(huì)降低其執(zhí)行速度,所以前面的程序通常由下面的程序來代替:

n=100;i=1:2:2*n-1;y=sum(1./i);y控制語句與邏輯管理for語句更一般的格式為:

for循環(huán)變量=矩陣表達(dá)式循環(huán)體語句

end執(zhí)行過程是依次將矩陣的各列元素賦給循環(huán)變量,然后執(zhí)行循環(huán)體語句,直至各列元素處理完畢。

例:寫出下列程序的執(zhí)行結(jié)果。

s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];fork=as=s+k;enddisp(s');控制語句與邏輯管理4、while語句格式:while表達(dá)式語句

end例如:計(jì)算1,…,1000的和x=1;whilex<=1000x=x+1;end表達(dá)式成立(為真)時(shí),一直執(zhí)行語句,否則跳出循環(huán).控制語句與邏輯管理例如:求Matlab中的最大實(shí)數(shù)。控制語句與邏輯管理

例:從鍵盤輸入若干個(gè)數(shù),當(dāng)輸入0時(shí)結(jié)束輸入,求這些數(shù)的平均值和它們之和。程序如下:sum=0;cnt=0;val=input('Enteranumber(endin0):');while(val~=0)sum=sum+val;cnt=cnt+1;val=input('Enteranumber(endin0):');endif(cnt>0)summean=sum/cntend控制語句與邏輯管理5、break和continue語句用于循環(huán)語句(for,while):break:用于跳出循環(huán)continue:跳過后面的語句繼續(xù)循環(huán)控制語句與邏輯管理例:輸出100到200之間第一個(gè)能被7整除的數(shù)fori=100:200ifrem(i,7)~=0continueendbreakendi控制語句與邏輯管理循環(huán)的嵌套如果一個(gè)循環(huán)結(jié)構(gòu)的循環(huán)體又包括一個(gè)循環(huán)結(jié)構(gòu),就稱為循環(huán)的嵌套,或稱為多重循環(huán)結(jié)構(gòu)??刂普Z句與邏輯管理

例:若一個(gè)數(shù)等于它的各個(gè)真因子之和,則稱該數(shù)為完數(shù),如6=1+2+3,所以6是完數(shù)。求[1,500]之間的全部完數(shù)。

form=1:500s=0;fork=1:m/2ifrem(m,k)==0s=s+k;endendifm==sdisp(m);endend控制語句與邏輯管理

MATLAB關(guān)系操作符能用來比較兩個(gè)同樣大小的數(shù)組,或用來比較一個(gè)數(shù)組和一個(gè)標(biāo)量。在后一種情況,標(biāo)量和數(shù)組中的每一個(gè)元素相比較,結(jié)果與數(shù)組大小一樣。下面給出幾個(gè)示例:

MATLAB關(guān)系操作符包括所有常用的比較??刂普Z句與邏輯管理?A=1:9,B=9-AA=123456789B=876543210?tf=(A>4)tf=000011111找出A中大于4的元素。0出現(xiàn)在A<=4的地方,1出現(xiàn)在A>4的地方??刂普Z句與邏輯管理邏輯操作符提供了一種組合或否定關(guān)系表達(dá)式。MATLAB邏輯操作符包括:邏輯操作符用法的一些例子有:?A=1:9;B=9-A;?tf=A>4tf=000011111控制語句與邏輯管理找出A大于4。?tf=~(A>4)tf=111100000對(duì)上面的結(jié)果取非,也就是1替換0,0替換1。?tf=(A>2)&(A<6)tf=001110000在A大于2‘與’A小于6處返回1??刂普Z句與邏輯管理最后,上面的功能易于產(chǎn)生數(shù)組來表示不連續(xù)信號(hào),或由多段其他信號(hào)所組成的信號(hào)?;鞠敕ㄊ?,把數(shù)組中要保持的那些值與1相乘,所有其他值與0相乘。例如,?x=linspace(0,10,100);%createdata?y=sin(x);%computesine?z=(y>=0).*y;%setnegativevaluesofsin(x)tozero?z=z+0.5*(y<0);%wheresin(x)isnegativeadd1/2?z=(x<=8).*z;%setvaluespastx=8tozero?plot(x,z)?xlabel('x'),ylabel('z=f(x)'),title('ADiscontinuousSignal')控制語句與邏輯管理NaNs和空矩陣NaNs和空矩陣([])要求在MATLAB中作特殊處理,特別是用在邏輯或關(guān)系表達(dá)式里。根據(jù)IEEE數(shù)學(xué)標(biāo)準(zhǔn),對(duì)NaNs的幾乎所有運(yùn)算都得出NaNs。例如,控制語句與邏輯管理NaNs和空矩陣?a=[12naninfnan]%note,inuse,NaNcanbelowercasea=12NaNInfNaN?b=2*ab=24NaNInfNaN?c=sqrt(a)c=1.00001.4142NaNInfNaN?d=(a==nan)d=00000?f=(a~=nan)f=11111控制語句與邏輯管理字符運(yùn)算

字符和字符串運(yùn)算是各種高級(jí)語言必不可少的部分,Matab作為一種高級(jí)的科學(xué)計(jì)算語言,字符串運(yùn)算功能同樣是很豐富的,利用字符串處理工具箱(Symbolictoolbox)和與Maple的接口,可以實(shí)現(xiàn)很多功能。在matlab中所有的字符串常用單引號(hào)設(shè)定輸入或賦值;字符串的每個(gè)字符都是矩陣相應(yīng)的一個(gè)元素字符串和字符數(shù)組基本上是等價(jià)的>>s='matrixlaboratory's=matrixlaboratory>>size(s)ans=117>>s(3)ans=t>>s2=['matlab']s2=matlab控制語句與邏輯管理字符運(yùn)算字符數(shù)組與字符串之間的轉(zhuǎn)換函數(shù)名可實(shí)現(xiàn)功能函數(shù)名可實(shí)現(xiàn)功能num2str數(shù)字轉(zhuǎn)換為字符串Str2num轉(zhuǎn)換字符串為數(shù)字Int2str整數(shù)轉(zhuǎn)換為字符串Sprintf將格式數(shù)據(jù)寫為字符串Mat2str矩陣轉(zhuǎn)換為字符串Sscanf在格式控制下讀字符串>>a=[1:5];>>b=num2str(a);>>a*2ans=246810>>b*2ans=986464100646410264641046464106>>str2num(b)*2ans=246810控制語句與邏輯管理字符運(yùn)算字符串操作函數(shù)名可實(shí)現(xiàn)的功能函數(shù)名可實(shí)現(xiàn)的功能strcat鏈結(jié)串strrep用其它串代替此串strvcat垂直鏈結(jié)串strtok尋找串中記號(hào)strcmp比較串upper轉(zhuǎn)換串為大寫strncmp比較串的前N個(gè)字符lower轉(zhuǎn)換串為小寫findstr在其它串中找此串blanks生成空串strjust驗(yàn)證字符數(shù)組deblank移去串內(nèi)空格strmatch查找可能匹配字符串控制語句與邏輯管理字符運(yùn)算Eval:執(zhí)行字符串>>i=2;j=3;>>t='i+j't=i+j>>a=eval(t)a=5>>d='cd';>>eval(d)d:\MATLAB6p1\work曲線擬合與插值運(yùn)算曲線擬合1曲線擬合問題的提法:已知一組(二維)數(shù)據(jù),即平面上的n個(gè)點(diǎn)),(iiyx,

ixni,,,2,1…=互不相同,尋求一個(gè)函數(shù)(曲線))(xfy=,使)(xf在某種準(zhǔn)則下與所有數(shù)據(jù)點(diǎn)最為接近,即曲線擬合得最好,如圖:

xy0++++++++確定f(x)使得達(dá)到最小最小二乘準(zhǔn)則

曲線擬合與插值運(yùn)算曲線擬合多項(xiàng)式擬合的Matlab指令a=polyfit(xdata,ydata,n)

其中n表示多項(xiàng)式的最高階數(shù)xdata,ydata為要擬合的數(shù)據(jù),它是用向量的方式輸入。

輸出參數(shù)a為擬合多項(xiàng)式y(tǒng)=a1xn+…+anx+an+1的系數(shù)a=[a1,…,an,an+1]。多項(xiàng)式在x處的值y可用下面程序計(jì)算。

y=polyval(a,x)

曲線擬合與插值運(yùn)算插值運(yùn)算插值與多項(xiàng)式擬合的不同之處在于,對(duì)給定點(diǎn)的多項(xiàng)式擬合不必點(diǎn)點(diǎn)通過,而插值建立的函數(shù)是點(diǎn)點(diǎn)通過給定的數(shù)據(jù)點(diǎn)。MATLAB提供了豐富的插值方法,并配有樣條插值工具箱。曲線擬合與插值運(yùn)算插值運(yùn)算一維插值多項(xiàng)式的基本語法為:yi=interp1(x,y,xi,method)這里x,y為給定的數(shù)據(jù),利用該數(shù)據(jù)建立一維插值多項(xiàng)式,xi為待計(jì)算的插值點(diǎn),yi為插值點(diǎn)的函數(shù)值。method:為建立插值多項(xiàng)式的方法,可取method='nearest':利用最近臨方法建立插值多項(xiàng)式method='linear':利用線性方法建立插值多項(xiàng)式method='spline':利用樣條函數(shù)方法建立插值多項(xiàng)式method='pchip':三階厄米特方法建立逐段樣條插值多項(xiàng)式method='cubic':利用三階樣條函數(shù)建立插值多項(xiàng)式曲線擬合與插值運(yùn)算高維插值我們以二維插值為例,其語法為:ZI=interp2(X,Y,Z,XI,YI,method)其中的參數(shù)和一維的類似?!纠?.2.7】以peaks函數(shù)為例,首先取較少的數(shù)據(jù)。然后對(duì)其求插值函數(shù),并比較各方法的差異。[x,y]=meshgrid(-3:1:3);z=peaks(x,y);surf(x,y,z);title('較少點(diǎn)的表面圖')曲線擬合與插值運(yùn)算[xi,yi]=meshgrid(-3:0.25:3);zi1=interp2(x,y,z,xi,yi,'nearest');subplot(2,2,1),surf(xi,yi,zi1),title('nearest方法')zi2=interp2(x,y,z,xi,yi,'bilinear');subplot(2,2,2),surf(xi,yi,zi2),title('bilinear方法')zi3=interp2(x,y,z,xi,yi,'cubic');subplot(2,2,3),surf(xi,yi,zi3),title('bicubict方法')zi4=interp2(x,y,z,xi,yi);subplot(2,2,4),surf(xi,yi,zi4),title('系統(tǒng)內(nèi)定方法')符號(hào)運(yùn)算MATLAB工具箱主要有2類:■通用工具箱:(可用于各個(gè)領(lǐng)域)

◆符號(hào)數(shù)學(xué)工具箱(Symbolic)與加拿大Maple公司合作,內(nèi)核使用Maple的符號(hào)計(jì)算引擎?!粝到y(tǒng)仿真工具箱(Simulink)■專用工具箱:(只用于相關(guān)領(lǐng)域)(已有30多個(gè)工具箱)符號(hào)運(yùn)算MATLAB提供了一種符號(hào)數(shù)據(jù)類型,相應(yīng)的運(yùn)算對(duì)象稱為符號(hào)對(duì)象。例如,符號(hào)常量、符號(hào)變量以及有它們參與的數(shù)學(xué)表達(dá)式等。在進(jìn)行符號(hào)運(yùn)算前首先要建立符號(hào)對(duì)象,然后就可以進(jìn)行符號(hào)對(duì)象的運(yùn)算了。MathWorks公司以Maple的內(nèi)核作為符號(hào)計(jì)算引擎(Engine),依賴Maple已有的函數(shù)庫,開發(fā)了實(shí)現(xiàn)符號(hào)計(jì)算的兩個(gè)工具箱:基本符號(hào)工具箱和擴(kuò)展符號(hào)工具箱。符號(hào)運(yùn)算符號(hào)的創(chuàng)建一、符號(hào)變量的概念MATLAB中的變量有兩類::數(shù)值變量:參與運(yùn)算和運(yùn)算結(jié)果均為數(shù)值例如:a=1,a+a=2符號(hào)變量:參與運(yùn)算和運(yùn)算結(jié)果均為符號(hào)例如:a=sym(‘b’),a+a=2*b符號(hào)運(yùn)算符號(hào)表達(dá)式的創(chuàng)建

1、格式1:s=sym(‘符號(hào)表達(dá)式’)

符號(hào)變量s的值為‘符號(hào)表達(dá)式’例如:s=sym(‘sin(x)+x’)

該函數(shù)可以建立一個(gè)符號(hào)量,符號(hào)字符串可以是常量、變量、函數(shù)或表達(dá)式。符號(hào)運(yùn)算符號(hào)表達(dá)式的創(chuàng)建

例如,a=sym(‘a(chǎn)’

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論