MATLAB入門-數(shù)學建模_第1頁
MATLAB入門-數(shù)學建模_第2頁
MATLAB入門-數(shù)學建模_第3頁
MATLAB入門-數(shù)學建模_第4頁
MATLAB入門-數(shù)學建模_第5頁
已閱讀5頁,還剩126頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 MATLAB入門入門 啟動方式啟動方式: 以鼠標雙擊桌面上的MATLAB圖標 在開始的主菜單下,選取程序/ Matlab / MATLAB 6.5 開始按鈕開始按鈕命令歷史窗口命令歷史窗口窗口分割欄,可調(diào)整窗口大小窗口分割欄,可調(diào)整窗口大小當前目錄當前目錄工作區(qū)窗口工作區(qū)窗口幫助幫助命令窗口命令窗口顯示和修改當前顯示和修改當前目錄名目錄名將窗口移出將窗口移出Matlab窗口窗口MATLABMATLAB的界面的界面 MATLAB MATLAB的界面中的五個窗口的界面中的五個窗口: :1.命令窗口命令窗口:(Commamd Window) 在命令窗口中可以 直接輸入命令行,以實現(xiàn)計算或繪圖功能.

2、2.起始面板(起始面板(Launch Pad) 該窗口中顯示MATLAB總包和已安裝的工具箱的幫助,演示,工具和產(chǎn)品主頁4個方面的內(nèi)容工作空間(工作空間(orkspace)該窗口中顯示當前MATLAB的內(nèi)存中使用的變量的信息命令歷史命令歷史()該窗口中顯示所有執(zhí)行過的命令當前目錄當前目錄()該窗口中顯示當前工作目錄下所有文件的文件名,文件類型和最后修改時間 命令窗口的菜單欄命令窗口的菜單欄 菜單欄共包含F(xiàn)ile、Edit、Window和Help四項。File菜單項:菜單項: New命令:命令:用于建立M文件、圖形窗口。 Open命令:命令:打開一個已經(jīng)建立的M文件。 Run Script命令:

3、命令:執(zhí)行一個命令文件。 Load Workspace命令:命令:將變量裝入當前空間。Save Workspace As命令:命令:把當前工作空間的所有 變量用后綴為.mat的文件保存起來。 Show Workspace命令命令:打開變量瀏覽器。 Set Path命令:命令:打開MATLAB的路徑瀏覽器。 Preferences命令:命令:打開命令窗口的顯示格式。 Print Setup命令:命令:設置打印機的參數(shù)。 Print命令:命令:打印和設置一些打印參數(shù)。 Print Selection命令:命令:打印選中的內(nèi)容。 Exit MATLAB命令:命令:退出MATLAB系統(tǒng)。Edit菜單項

4、:菜單項: Undo、Cut、Copy和Paste等命令:分別用于 撤銷上一次操作、剪切、復制和粘貼。 Clear命令:命令:刪除內(nèi)容。 Select All命令:命令:用于選定所有文本內(nèi)容。 Clear Session命令:命令:清除命令編輯區(qū)的全部 內(nèi)容,但并不刪除工作空間中的變量。Help菜單項菜單項:Help Window命令:命令:打開MATLAB的幫助窗口。Help Tips命令:命令:打開幫助窗口,并首先 顯示MATLAB的幫助系統(tǒng)的分類和使用方法。Help Desk(HTML)命令命令:打開系統(tǒng)WWW 瀏覽器,并顯示MATLAB的幫助桌面。Examples and Demos命

5、令:命令:可以通過 演示MATLAB提供的例子來熟悉相關(guān)部分的用法。About MATLAB命令:命令:打開關(guān)于MATLAB的 版本和版權(quán)等信息。Subsribe命令:命令:打開機器上的WWW瀏覽器,用戶 通過填寫相關(guān)的表格來獲得MathWorks公司的產(chǎn)品。 命令窗口的工具欄命令窗口的工具欄 工具欄提供了一些命令按鈕,使用命令按鈕可使操作更快捷、更方便。 工作空間新建 剪切 粘貼 瀏覽器 新仿真模型 打開 復制 撤消 路徑瀏覽器 幫助 變量和賦值語句變量和賦值語句 MATLAB賦值語句有兩種形式: (1) 變量=表達式 (2) 表達式 其中“表達式”是用運算符將有關(guān)運算量連接起來的式子,其結(jié)

6、果是一個矩陣。 注第二種語句形式下,將表達式的值賦給MATLAB的永久變量ans。 MATLAB表達式表達式算術(shù)表達式。算術(shù)表達式。運算符有:(加)、(減)、*(乘)、/(右除)、(左除)、(乘方)對于矩陣來說,左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系。關(guān)系表達式關(guān)系表達式。運算符有:(小于)、(大于)、=(大于或等于)、=(等于)、=(不等于)邏輯表達式。邏輯表達式。運算符有:&(與)、|(或)和(非) 運算法則:運算法則: (1)在邏輯運算中,確認非零元素為真,用1表示,零元素為假,用0表示。 (2)參與邏輯運算的可以是兩個標量、兩個同維矩陣或參與邏輯運算的元素一個為標量

7、,另一個為矩陣。 ()在算術(shù)、關(guān)系、邏輯運算中,算術(shù)運算優(yōu)先級最高,邏輯運算優(yōu)先級最低。 MATLAB中變量的中變量的命名規(guī)則命名規(guī)則(1)變量名必須是不含空格的單個詞;(2)變量名區(qū)分大小寫;(3)變量名最多不超過19個字符;(4)變量名必須以字母打頭,之后可以是 任意字母、數(shù)字或下劃線,變量名中 不允許使用標點符號. 特殊變量取 值ans用于結(jié)果的缺省變量名pi圓周率eps計算機的最小數(shù),當和 1 相加就產(chǎn)生一個比1大的數(shù)flops浮點運算數(shù)inf無窮大,如 1/0NaN不定量,如 0/0i,ji=j=1nargin所用函數(shù)的輸入變量數(shù)目nargout所用函數(shù)的輸出變量數(shù)目realmin最

8、小可用正實數(shù)realmax最大可用正實數(shù)特殊變量表特殊變量表 數(shù)學運算符號及標點符數(shù)學運算符號及標點符號號+加法運算,適用于兩個數(shù)或兩個同階矩陣相加.減法運算*乘法運算.*點乘運算/除法運算./點除運算乘冪運算.點乘冪運算反斜杠表示左除.(1)MATLAB的每條命令后, 若為逗號逗號或或無標點無標點符號, 則顯示命令的結(jié)果; 若命令后為分號分號,則禁止顯示結(jié)果. (2)“%” 后面所有文字為注釋. (3) “.”表示續(xù)行.函 數(shù)名 稱函 數(shù)名 稱sin(x)正弦函數(shù)asin(x)反正弦函數(shù)cos(x)余弦函數(shù)acos(x)反余弦函數(shù)tan(x)正切函數(shù)atan(x)反正切函數(shù)abs(x) 絕對

9、值max(x) 最大值min(x) 最小值sum(x)元素的總和sqrt(x) 開平方exp(x)以 e為底的指數(shù)log(x)自然對數(shù))(log10 x以 10 為底的對數(shù)sign(x)符號函數(shù)fix(x)取整3、數(shù)學函數(shù)、數(shù)學函數(shù) MATLAB的內(nèi)部函數(shù)是有限的,有時為了研究的內(nèi)部函數(shù)是有限的,有時為了研究某一個函數(shù)的各種性態(tài),需要為某一個函數(shù)的各種性態(tài),需要為MATLAB定義新定義新函數(shù),為此必須編寫函數(shù)文件函數(shù),為此必須編寫函數(shù)文件. 函數(shù)文件是文件名函數(shù)文件是文件名后綴為后綴為M的文件,這類文件的的文件,這類文件的第一行必須是一特殊第一行必須是一特殊字符字符function開始開始,格

10、式為:,格式為: function 因變量名因變量名=函數(shù)名(自變量名)函數(shù)名(自變量名)函數(shù)值的獲得必須通過具體的運算實現(xiàn),并賦給因函數(shù)值的獲得必須通過具體的運算實現(xiàn),并賦給因變量變量. M文件文件 M文件建立方法:文件建立方法: 1. 在在Matlab中,點中,點:File-New-M-file 2. 在編輯窗口中輸入程序內(nèi)容在編輯窗口中輸入程序內(nèi)容 3. 點:點:File-Save,存盤,存盤,M文件名必須文件名必須 與函數(shù)名一致。與函數(shù)名一致。Matlab的應用程序也以的應用程序也以M文件保存。文件保存。例:定義函數(shù)例:定義函數(shù) f(x1,x2)=100(x2-x12)2+(1-x1)

11、2function f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)21.建立建立M文件:文件:fun.m2. 可以直接使用函數(shù)可以直接使用函數(shù)fun.m例如:計算例如:計算 f(1,2), 只需在只需在Matlab命令窗口鍵入命令:命令窗口鍵入命令:x=1 2fun(x)計算51)3 . 0sin(21yy1=2*sin(0.3*pi)/(1+sqrt(5) y1 = 0.5000 的值.【例】 y2=2*cos(0.3*pi)/(1+sqrt(5) y2 = 0.3633 22cos0.315y1、創(chuàng)建簡單的數(shù)組、創(chuàng)建簡單的數(shù)組二、數(shù)二、數(shù) 組組x=a b c d e

12、 f x=a b c d e f 創(chuàng)建包含指定元 素的行向量 例 x1=1 2 4, x2=1,2,1, x3=x1 運行結(jié)果 x1 = 1 2 4 x2 = 1 2 1 x3 = 1 2 4 x=first:last 創(chuàng)建從first開始,加1計數(shù),到last結(jié)束的行向量x=first:increment:last 創(chuàng)建從first開始,加increment計數(shù),last結(jié)束的行向量 例例 x1=3.4:6.7, x2=3.4:2:6.7 x3=2.6:-0.8:0 運算結(jié)果運算結(jié)果 x1 = 3.4000 4.4000 5.4000 6.4000 x2 = 3.4000 5.4000 x3

13、 = 2.6000 1.8000 1.0000 0.2000 生成線性等分向量生成線性等分向量指令指令x=linspace(a,b,n) 在在a,b區(qū)間產(chǎn)生區(qū)間產(chǎn)生 n 個等分點個等分點(包括端點包括端點) x=linspace(0,1,5) 結(jié)果結(jié)果 x = 0 0.2500 0.5000 0.7500 1.0000產(chǎn)生函數(shù)向量產(chǎn)生函數(shù)向量Matlab有許多內(nèi)部函數(shù),可直接作用于向量 產(chǎn)生一個同維的函數(shù)向量。x=linspace(0,4*pi,100); %產(chǎn)生100維向量xy=sin(x); %y也自動為100維向量y1=sin(x).2;y2=exp(-x).*sin(x);a=logs

14、pace(n1,n2,n) 在對數(shù)空間上,行矢量的值從10n1到10n2,數(shù)據(jù)個數(shù)為n,缺省n為50。這個指令為建立對數(shù)頻域軸坐標提供了方便。a=logspace(1,3,3)a= 10 100 1000例: x=1 2 3 4 5 8 7 18 x=1 2 3 4 5 8 7 18 y=1:7 y=1 2 3 4 5 6 7 z=3:2:9 z=3 5 7 9 v=y z v=1 2 3 4 5 6 7 3 5 7 9 u=linspace(2,6,8) u=2 2.5 3 3.5 4 4.5 5 5.5 6 2、 數(shù)組元素的訪問數(shù)組元素的訪問(3)直接使用元素編址序號直接使用元素編址序號.

15、 x(a b c d) 表示提取數(shù)組x的第a、b、c、d個元素構(gòu)成一個新的數(shù)組x(a) x(b) x(c) x(d). (2)訪問一塊元素訪問一塊元素: x(a :b :c)表示訪問數(shù)組x的從第a個元素開始,以步長為b到第c個元素(但不超過c),b可以為負數(shù),b缺損時為1. (1)訪問一個元素訪問一個元素: x(i)表示訪問數(shù)組x的第i個元素. 例 : x=1:9 x=1 2 3 4 5 6 7 8 9 y=x(2:2:8) y=2 4 6 8 z=x(1) x(6) x(8) z=1 6 8 3 3、數(shù)組的方向、數(shù)組的方向 前面例子中的數(shù)組都是一行數(shù)列,是行方向分布的前面例子中的數(shù)組都是一行

16、數(shù)列,是行方向分布的. 稱之為稱之為行向量行向量. 數(shù)組也可以是數(shù)組也可以是列向量列向量,它的數(shù)組操作和運,它的數(shù)組操作和運算與行向量是一樣的,唯一的區(qū)別是結(jié)果以列形式顯示算與行向量是一樣的,唯一的區(qū)別是結(jié)果以列形式顯示. 產(chǎn)生列向量有兩種方法:產(chǎn)生列向量有兩種方法:直接產(chǎn)生直接產(chǎn)生 ,轉(zhuǎn)置產(chǎn)生轉(zhuǎn)置產(chǎn)生 .例例: : c=1;2;3;4例例: : b=1 2 3 4; c=b c=1;2;3;4 說明:以說明:以空格空格或或逗號逗號分隔的元素指定的是不同列的元素,分隔的元素指定的是不同列的元素, 而以而以分號分號分隔的元素指定了不同行的元素分隔的元素指定了不同行的元素. 4、數(shù)組的運算、數(shù)組的

17、運算 (1)標量)標量-數(shù)組運算數(shù)組運算 數(shù)組對標量的加、減、乘、除、乘方是數(shù)組的每個數(shù)組對標量的加、減、乘、除、乘方是數(shù)組的每個元素對該標量施加相應的加、減、乘、除、乘方運算元素對該標量施加相應的加、減、乘、除、乘方運算. 設:設:a=a1,a2,an, c=標量標量則:則:a+c=a1+c,a2+c,an+c a.*c=a1*c,a2*c,an*c a./c= a1/c,a2/c,an/c(右除)右除) a.c= c/a1,c/a2,c/an (左除)左除) a.c= a1c,a2c,anc c.a= ca1,ca2,can (2)數(shù)組)數(shù)組-數(shù)組運算數(shù)組運算 當兩個數(shù)組有相同維數(shù)時,加、

18、減、乘、除、當兩個數(shù)組有相同維數(shù)時,加、減、乘、除、冪運算可按冪運算可按元素對元素元素對元素方式進行的,不同大小或維方式進行的,不同大小或維數(shù)的數(shù)組是不能進行運算的數(shù)的數(shù)組是不能進行運算的. 設:設:a=a1,a2,an, b=b1,b2,bn則:則:a+b= a1+b1,a2+b2,an+bn a.*b= a1*b1,a2*b2,an*bn a./b= a1/b1,a2/b2,an/bn a.b=b1/a1,b2/a2,bn/an a.b=a1b1,a2b2,anbn例 a=1 2 3 4 c=2 a1=a+c a1=3 4 5 6 a2=a.*c a2=2 4 6 8 a3=a./c a3

19、=0.5 1 1.5 2 a4=a.c a4=2 1 2/3 0.5 a5=a.c a5=1 4 9 16 a6=c.a a6=2 4 8 16三、三、 矩矩 陣陣 逗號逗號或或空格空格用于分隔某一行的元素,用于分隔某一行的元素,分號分號用于區(qū)分不用于區(qū)分不同的行同的行. 除了分號,在輸入矩陣時,按除了分號,在輸入矩陣時,按Enter鍵也表示開始鍵也表示開始一新行一新行. 輸入矩陣時,嚴格要求所有行有相同的列輸入矩陣時,嚴格要求所有行有相同的列. 例例 m=1 2 3 4 ;5 6 7 8;9 10 11 12 p=1 1 1 1 2 2 2 2 3 3 3 31、矩陣的建立、矩陣的建立特殊矩

20、陣特殊矩陣的建立:. d=eye(m,n) 產(chǎn)生一個產(chǎn)生一個m行、行、n列的單位矩陣列的單位矩陣c=ones(m,n) 產(chǎn)生一個產(chǎn)生一個m行、行、n列的元素列的元素 全為全為1的矩陣的矩陣b=zeros(m,n) 產(chǎn)生一個產(chǎn)生一個m行、行、n列的零矩陣列的零矩陣a= 產(chǎn)生一個空矩陣,當對一項操作無結(jié)產(chǎn)生一個空矩陣,當對一項操作無結(jié) 果時,返回空矩陣,空矩陣的大小為零果時,返回空矩陣,空矩陣的大小為零. 例 m=1 2 3 4;5 6 7 8;9 10 11 12 p=1 1 1 1 2 2 2 2 3 3 3 3 a= p+a=p b=zeros(2,3) b=0 0 0;0 0 0 c=on

21、es(2,3) c=1 1 1;1 1 1 d=eye(2,3) d=1 0 0;0 1 0 e=eye(3,3) e=1 0 0;0 1 0;0 0 12、矩陣中元素的操作、矩陣中元素的操作(1)矩陣)矩陣A的第的第r行:行:A(r,:),:)(2)矩陣)矩陣A的第的第r列:列:A(:,(:,r)(4)取矩陣)取矩陣A的第的第i1i2行、第行、第j1j2列構(gòu)成新矩陣列構(gòu)成新矩陣:A(i1:i2, j1:j2)(5)以逆序提取矩陣)以逆序提取矩陣A的第的第i1i2行,構(gòu)成新矩陣行,構(gòu)成新矩陣:A(i2:-1:i1,:),:)(6)以逆序提取矩陣)以逆序提取矩陣A的第的第j1j2列,構(gòu)成新矩陣列

22、,構(gòu)成新矩陣:A(:, j2:-1:j1 )(7)刪除)刪除A的第的第i1i2行,構(gòu)成新矩陣行,構(gòu)成新矩陣:A(i1:i2,:,:)= (8)刪除)刪除A的第的第j1j2列,構(gòu)成新矩陣列,構(gòu)成新矩陣:A(:,:, j1:j2)= (9)將矩陣)將矩陣A和和B拼接成新矩陣:拼接成新矩陣:A B;A;B(3)依次提取矩陣)依次提取矩陣A的每一列,將的每一列,將A拉伸為一個列向量:拉伸為一個列向量:A(:)(:)例 a=1 2 3;4 5 6;7 8 9 a1=a(2,:) a1=4 5 6 a2=a(:,2) a2=2 5 8 a3=a( :) a3=1 2 3 4 5 6 7 8 9 a4=a(

23、1:2,2:3) a4=2 3;5 6 a5=a(2:-1:1,:) a5=4 5 6;1 2 3 a6=a(:,3:-1:2) a6=3 2; 6 5; 9 8 a7=a; a7(1:2,:)= a7=7 8 9 a8=a; a8(:,1)= a8=2 3;5 6;8 9 a9=a a2 a9=1 2 3 2;4 5 6 5;7 8 9 8 a10=a;a1 a10=1 2 3;4 5 6;7 8 9;4 5 6 (2)矩陣)矩陣-矩陣運算矩陣運算 1 元素對元素元素對元素的運算,同數(shù)組的運算,同數(shù)組-數(shù)組運算。數(shù)組運算。 3、矩陣的運算、矩陣的運算(1)標量)標量-矩陣運算矩陣運算 同標量

24、同標量-數(shù)組運算。數(shù)組運算。 2矩陣運算:矩陣運算:矩陣加法:矩陣加法:A+B矩陣乘法:矩陣乘法:A*B方陣的行列式:方陣的行列式:det(A)方陣的逆:方陣的逆:inv(A)方陣的特征值與特征向量:方陣的特征值與特征向量:V,D=eigAa=1 2;3 4;b= 3 5; 5 9a*b=13 23; 29 51a/b=-0.50 0.50;3.50 1.50ab=-1 -1;2 3a3=37 54; 81 118a.*b=3 10;15 36a./b=0.33 0.40;0.60 0.44a.b=3.00 2.50;1.67 2.25a.3= 1 8; 27 64 乘法運算與點運算運算與點運

25、算 只有維數(shù)相同的矩陣才能進行加減運算。 注意只有當兩個矩陣中前一個矩陣的列數(shù)和后一個矩陣的行數(shù)相同時,才可以進行乘法運算。ab運算等效于運算等效于求求a*x=b的解;而的解;而a/b等效于求等效于求x*b=a的解。的解。只有方陣才可以求冪。 點運算點運算是兩個維數(shù)相同矩陣對應元素之間的運算,在有的教材中也定義為數(shù)組運算。 逆矩陣與行列式計算逆矩陣與行列式計算a=1 2 3; 4 5 6; 2 3 5;b=inv(a)b = -2.3333 0.3333 1.0000 2.6667 0.3333 2.0000 -0.6667 -0.3333 1.0000det(a)ans = -3例 a=1

26、2 3;4 5 6 b=1 2;1 2;1 2 c1=a+a c1=2 4 6;8 10 12 c2=a*b c2=6 12;15 30 C=2 7 3;3 9 4;1 5 3 C3=det(c) %方陣方陣C的行列式的行列式 C4=inv(c) %方陣方陣C的逆的逆 v,d=eig(c) %方陣方陣C的特征值與特征向量的特征值與特征向量 對于實矩陣用()符號或(.)求轉(zhuǎn)置結(jié)果是一樣的;然而對于含復數(shù)的矩陣,則()將同時對復數(shù)進行共軛處理,而 (.)則只是將其排列形式進行轉(zhuǎn)置。a=1 2 3;4 5 6a = 1 4 2 5 3 6b=1+2i 2-7ib = 1.0000 - 2.0000i

27、 2.0000 + 7.0000ib=1+2i 2-7i.b = 1.0000 + 2.0000i 2.0000 - 7.0000i矩陣的矩陣的轉(zhuǎn)置轉(zhuǎn)置 det(Adet(A) ) : 方陣的行列式;方陣的行列式; rank(A)rank(A): 矩陣的秩;矩陣的秩; eig(Aeig(A) ): 方陣的特征值和特征向量;方陣的特征值和特征向量; trace(A)trace(A): 矩陣的跡;矩陣的跡; rref(Arref(A) ): 初等變換階梯化矩陣初等變換階梯化矩陣A A svd(Asvd(A) ): 矩陣奇異值分解。矩陣奇異值分解。 cond(Acond(A) ): 矩陣的條件數(shù);矩

28、陣的條件數(shù); 在MATLAB中,多項式使用降冪系數(shù)的行向量表示, 如:多項式11625012234xxxx 多項式處理多項式處理(1 1)多項式的建立與表示方法)多項式的建立與表示方法表示為:p=1 -12 0 25 116,。r=roots(p)r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672ip=poly(r)p = 1 -12 -0 25 116使用函數(shù)函數(shù)roots可以求出多項式等于0的根,根用列向量表示若已知多項式等于0的根,函數(shù)函數(shù)poly可以求出相應多項式。 多項式的運算多項式的運算多項式多項式相乘相乘conv a=1 2

29、 3 ; b=1 2 c=conv(a,b)=1 4 7 6 conv指令可以嵌套使用,如conv(conv(a,b),c)多項式多項式相除相除deconv q,r=deconv(c,b) q=1 2 3 商多項式 r=0 0 0 余多項式求多項式的微分多項式求多項式的微分多項式polyder polyder(a)=2 2求多項式函數(shù)值求多項式函數(shù)值polyval(p,n): 將值n代入多項式求解。 polyval(a,2)=11 多項式的擬合多項式的擬合 多項式擬合又稱為曲線擬合,其目的就是在眾多的樣本點中進行擬合,找出滿足樣本點分布的多項式。這在分析實驗數(shù)據(jù),將實驗數(shù)據(jù)做解析描述時非常有用

30、。命令格式:命令格式:p=polyfit(x,y,n), 其中x和y為樣本點向量,n為所求多項式的階數(shù),p為求出的多項式?!纠?】 對于給定數(shù)據(jù)對x0 , y0 ,求擬合三階多項式,并圖示擬合情況。x0=0:0.1:1;y0= -.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22;n=3;P=polyfit(x0,y0,n) % 多項式擬合P = 56.6915 -87.1174 40.0070 -0.9043xx=0:0.01:1;yy=polyval(P,xx); % 擬合多項式的函數(shù)值plot(xx,yy,-b,x0,y0,.r

31、,MarkerSize,20),xlabel(x) 00.81-20246810 x 采用三次多項式所得的擬合曲線用用MATLABMATLAB作插值計算作插值計算一維插值函數(shù):一維插值函數(shù):yi=interp1(x,y,xi,method)插值方法插值方法被插值點被插值點插值節(jié)點插值節(jié)點xixi處的插處的插值結(jié)果值結(jié)果nearest :最鄰近插值:最鄰近插值linear : 線性插值;線性插值;spline : 三次樣條插值;三次樣條插值;cubic : 立方插值。立方插值。缺省時:缺省時: 分段線性插值。分段線性插值。 注意:所有的插值方法都要求注意:所有的插值方法都要求x

32、 x是單調(diào)的,并且是單調(diào)的,并且xi不能不能 夠超過夠超過x的范圍。的范圍。 在有限樣本點向量xs與ys中,插值產(chǎn)生向量x和y,所用方法定義在method中,有4種選擇: nearest:執(zhí)行速度最快,輸出結(jié)果為直角轉(zhuǎn)折 linear:默認值,在樣本點上斜率變化很大 spline:最花時間,但輸出結(jié)果也最平滑 cubic:最占內(nèi)存,輸出結(jié)果與spline差不多 所用指令有一維的interp1、二維的interp2、三維的interp3. 這些指令分別有不同的方法(method),設計者可以根據(jù)需要選擇適當?shù)姆椒?,以滿足系統(tǒng)屬性的要求. Help polyfun可以得到更詳細的內(nèi)容。例:在例:在

33、1-121-12的的1111小時內(nèi),每隔小時內(nèi),每隔1 1小時測量一次溫度,小時測量一次溫度,測得的溫度依次為:測得的溫度依次為:5 5,8 8,9 9,1515,2525,2929,3131,3030,2222,2525,2727,2424。試估計每隔。試估計每隔1/101/10小時的溫度小時的溫度值。值。hours=1:12;temps=5 8 9 15 25 29 31 30 22 25 27 24;h=1:0.1:12;t=interp1(hours,temps,h,spline); %直接輸出數(shù)據(jù)將是很多的plot(hours,temps,+,h,t,hours,temps,r:)

34、%作圖xlabel(Hour),ylabel(Degrees Celsius)【例 】以所給數(shù)據(jù),研究一維插值,并觀察插值與擬合的區(qū)別。1.一維插值x0=0:0.1:1;y0=-.447,1.978,3.11,5.25,5.02, 4.66,4.01,4.58,3.45,5.35,9.22; xi=0:0.02:1;yi=interp1(x0,y0,xi,cubic); plot(xi,yi,b,x0,y0,.r,MarkerSize,20),xlabel(x) 00.81-20246810 x通過三次多項式插值所得的曲線x0=0:0.1:1;y0= -.447,1.978,

35、3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22;n=3;P=polyfit(x0,y0,n) % 多項式擬合P = 56.6915 -87.1174 40.0070 -0.9043xx=0:0.01:1;yy=polyval(P,xx); % 擬合多項式的函數(shù)值plot(xx,yy,-b,x0,y0,.r,MarkerSize,20),xlabel(x)2.多項式擬合00.81-20246810 x采用三次多項式擬合所得的曲線 要求要求x0,y0 x0,y0單調(diào);單調(diào);x x,y y可取可取為矩陣,或為矩陣,或x x取行向取行向量,量

36、,y y取為列向量,取為列向量,x,yx,y的值分別不能超出的值分別不能超出x0,y0 x0,y0的范的范圍。圍。z=interp2(x0,y0,z0,x,y,method)被插值點插值方法用用MATLAB作網(wǎng)格節(jié)點數(shù)據(jù)的插值作網(wǎng)格節(jié)點數(shù)據(jù)的插值插值節(jié)點被插值點的函數(shù)值nearest nearest 最鄰近插值最鄰近插值linear linear 雙線性插值雙線性插值cubic cubic 雙三次插值雙三次插值缺省時缺省時, , 雙線性插值雙線性插值例:測得平板表面例:測得平板表面3 3* *5 5網(wǎng)格點處的溫度分別為:網(wǎng)格點處的溫度分別為: 8282 81 80 82 84 81 80 82

37、 84 79 63 61 65 81 79 63 61 65 81 84 8484 84 82 85 86 82 85 86 試作出平板表面的溫度分布曲面試作出平板表面的溫度分布曲面z=f(x,y)z=f(x,y)的圖形。的圖形。輸入以下命令:x=1:5;y=1:3;temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;mesh(x,y,temps);1. 先在三維坐標畫出原始數(shù)據(jù),畫出粗糙的溫度分布曲圖.再輸入以下命令:xi=1:0.2:5;yi=1:0.2:3;zi=interp2(x,y,temps,xi,yi,cubic);mesh(xi

38、,yi,zi)畫出插值后的溫度分布曲面圖. 2以平滑數(shù)據(jù),在x、y方向上每隔0.2個單位的地方進行插值.擬合與插值的關(guān)系擬合與插值的關(guān)系 函數(shù)插值與曲線擬合都是要根據(jù)一組數(shù)據(jù)構(gòu)造一個函數(shù)作函數(shù)插值與曲線擬合都是要根據(jù)一組數(shù)據(jù)構(gòu)造一個函數(shù)作為近似,由于近似的要求不同,二者的數(shù)學方法上是完全不同為近似,由于近似的要求不同,二者的數(shù)學方法上是完全不同的。的。 實例:實例:下面數(shù)據(jù)是某次實驗所得,希望得到X和 f之間的關(guān)系?x124791 21 31 51 7f1 .53 .96 .611 .71 5 .61 8 .81 9 .62 0 .62 1 .1問題:問題:給定一批數(shù)據(jù)點,需確定滿足特定要求的

39、曲線或曲面解決方案:解決方案:若不要求曲線(面)通過所有數(shù)據(jù)點,而是要求它反映對象整體的變化趨勢,這就是數(shù)據(jù)擬合數(shù)據(jù)擬合,又稱曲線擬合或曲面擬合。若要求所求曲線(面)通過所給所有數(shù)據(jù)點,就是插值問題插值問題;最臨近插值與最臨近插值與曲線擬合曲線擬合0246810121416180510152025已知數(shù)據(jù)點nearest三次多項式插值0246810121416180510152025已知數(shù)據(jù)點linest三次多項式插值線性插值與線性插值與曲線擬合曲線擬合0246810121416180510152025已知數(shù)據(jù)點spline三次多項式插值樣條插值與樣條插值與曲線擬合曲線擬合1、for循環(huán):循環(huán)

40、:允許一組命令以固定的和預定的次數(shù)重復允許一組命令以固定的和預定的次數(shù)重復 for x=array commands end 在在for和和end語句之間的命令串語句之間的命令串commands按數(shù)組(按數(shù)組(array)中)中的每一列執(zhí)行一次的每一列執(zhí)行一次. 在每一次迭代中,在每一次迭代中,x被指定為數(shù)組的下一列,即被指定為數(shù)組的下一列,即在第在第n次循環(huán)中,次循環(huán)中,x=array(:,:,n)控制流控制流MATLAB提供三種決策或控制流結(jié)構(gòu):提供三種決策或控制流結(jié)構(gòu): for循環(huán)、循環(huán)、while循環(huán)、循環(huán)、if-else-end結(jié)構(gòu)結(jié)構(gòu). 這些結(jié)構(gòu)經(jīng)常包含大量的這些結(jié)構(gòu)經(jīng)常包含大量的

41、MATLAB命令,故經(jīng)常出現(xiàn)在命令,故經(jīng)常出現(xiàn)在MATLAB程序中,而不是直接加在程序中,而不是直接加在MATLAB提示符下提示符下. for n=1:10 x(n)=sin(n*pi/10);endxx = Columns 1 through 5 0.3090 0.5878 0.8090 0.9511 1.0000 Columns 6 through 10 0.9511 0.8090 0.5878 0.3090 0.0000 例例 對對n=1,2,10,求求x(n)= 的值的值 10sinn while expression commands end 只要在表達式只要在表達式(express

42、ion)里的所有元素為真,就執(zhí)行里的所有元素為真,就執(zhí)行while和和end語句之間的命令串語句之間的命令串commands. 2、While循環(huán)循環(huán) 與與for循環(huán)以固定次數(shù)求一組命令相反,循環(huán)以固定次數(shù)求一組命令相反,while循環(huán)以不定的次循環(huán)以不定的次數(shù)求一組語句的值數(shù)求一組語句的值. money=10000years=0while money1 f=x2+1endif x1 f=x2+1else if x=0 f=x3 else f=2*x endend【例】 利用函數(shù)文件,實現(xiàn)直角坐標(x,y)與極坐標(,)之間的轉(zhuǎn)換。 % M函數(shù)文件tran.m: function gama,t

43、heta=tran(x,y) gama=sqrt(x*x+y*y); theta=atan(y/x); % 調(diào)用tran.m的命令文件main1.m: x=input(Please input x=:); y=input(Please input y=:); gama,theta=tran(x,y); gama theta【例】 利用函數(shù)的遞歸調(diào)用,求n!。 function f=factor(n) if n=1 f=1; else f=factor(n-1)*n; end return; %返回 在命令文件main2.m中調(diào)用函數(shù)文件factor.m: for n=1:10 fac(n)=f

44、actor(n); end fac程序運行結(jié)果是: fac = Columns 1 through 6 1 2 6 24 120 720 Columns 7 through 10 504 40320 362880 3628800【例9】 編寫函數(shù)文件求小于任意自然數(shù)n的Fibonacci數(shù)列各項。% 用于求Fibonacci數(shù)列的函數(shù)文件 function f=ffib(n) f=1,1; i=1; while f(i)+f(i+1)n f(i+2)=f(i)+f(i+1); i=i+1; end以上文件以ffib.m文件存盤,然后在命令窗口輸入:ffib(2000).用Matlab符號工具箱

45、(Symbolic Toolbox)可以進行符號演算1.1.創(chuàng)建單個符號變量;創(chuàng)建單個符號變量; sym varsym var 2;2;創(chuàng)建多個符號變量;創(chuàng)建多個符號變量; symssyms var1 var2 var1 var2 3. 3.創(chuàng)建符號表達式,賦予創(chuàng)建符號表達式,賦予f f; f=sym(f=sym(符號表達式符號表達式) ) 4. 4. 創(chuàng)建符號方程創(chuàng)建符號方程 。 equ=sym(equationequ=sym(equation) ) 極限limit(表達式,var,a):求當var a,表達式的極限例:求極限: sin(x)sin(3x)sin(x)lim0 x syms

46、x limit(sin(x)-sin(3*x)/sin(x),x,0)運行結(jié)果 -2【例】求解單邊極限問題Syms x;limit(exp(x3)-1)/(1-cos(sqrt(x-sin(x),x,0,right)【例【例】試求解極限問題syms x a b;f=x*(1+a/x)x*sin(b/x);L=limit(f,x,inf)求導求導diff(f,var,ndiff(f,var,n) ) 求求 f f 對變量對變量varvar 的的n n階導數(shù)階導數(shù)缺省缺省n n時為求一階導數(shù)時為求一階導數(shù)缺省變量缺省變量varvar 時,默認變量為時,默認變量為x x可用來求單變量函數(shù)導數(shù)可用來求單變量函數(shù)導數(shù)多變量函數(shù)的偏導數(shù)多變量函數(shù)的偏導數(shù)還可以求抽象函數(shù)的導數(shù)還可以求抽象函數(shù)的導數(shù)例:例:求求 ) ) )c co os s( (3 3x x( (e ed dx xd d2 21 12 2x xsymssyms x y x y f=sym(exp(-2 f=sym(exp(-2* *x) x) * * cos(3 cos(3 * * x(1/2)x(1/2) diff(f,x) diff(f,x)例

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論