第二章MATLAB數(shù)值計(jì)算課件_第1頁(yè)
第二章MATLAB數(shù)值計(jì)算課件_第2頁(yè)
第二章MATLAB數(shù)值計(jì)算課件_第3頁(yè)
第二章MATLAB數(shù)值計(jì)算課件_第4頁(yè)
第二章MATLAB數(shù)值計(jì)算課件_第5頁(yè)
已閱讀5頁(yè),還剩118頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、MATLAB的數(shù)值計(jì)算Matlab 具有出色的數(shù)值計(jì)算能力,占據(jù)世界上數(shù)值計(jì)算軟件的主導(dǎo)地位1數(shù)值運(yùn)算的功能創(chuàng)建矩陣矩陣運(yùn)算多項(xiàng)式運(yùn)算線性方程組數(shù)值統(tǒng)計(jì)線性插值、擬合函數(shù)優(yōu)化微分方程的數(shù)值解非線性方程與最優(yōu)問(wèn)題求解2數(shù)值型數(shù)據(jù)結(jié)構(gòu)雙精度數(shù)值變量IEEE標(biāo)準(zhǔn),64位 (8字節(jié)),11指數(shù)位,53數(shù)值位和一個(gè)符號(hào)位 double() 函數(shù)的轉(zhuǎn)換其他數(shù)據(jù)類型uint8,值域?yàn)?至255,常用于圖像表示和處理,8位int8(), int16(), int32(),uint16(), uint32()3數(shù)值型數(shù)據(jù)結(jié)構(gòu)支持復(fù)數(shù)向量、矩陣和字符串型矩陣。從5.0開(kāi)始,允許其他更高級(jí)的數(shù)據(jù)結(jié)構(gòu),如多維數(shù)組、數(shù)

2、據(jù)結(jié)構(gòu)體、單元數(shù)據(jù)、類和對(duì)象等4MATLAB 支持的其他數(shù)據(jù)結(jié)構(gòu)基本數(shù)值變量類型:雙精度復(fù)數(shù)矩陣字符串型數(shù)據(jù):用單引號(hào)括起來(lái) 多維數(shù)組:是矩陣的直接擴(kuò)展,多個(gè)下標(biāo)單元數(shù)組:將不同類型數(shù)據(jù)集成到一個(gè)變量名下面,用表示結(jié)構(gòu)體:A.b, 引用也用 A.b,不是A-b類與對(duì)象:可以定義重載函數(shù)5 MATLAB 語(yǔ)言基礎(chǔ)MATLAB 語(yǔ)言的變量名規(guī)則由一個(gè)字母引導(dǎo),后面可以為其他字符區(qū)分大小寫 Abc ABc有效 MYvar12, MY_Var12 和 MyVar12_錯(cuò)誤的變量名 12MyVar, _MyVar12 MATLAB 的保留常量eps, i, j, i=sqrt(-1) , pi, NaN

3、, Inflastwarn, lasterr 6符號(hào)型變量數(shù)據(jù)類型符號(hào)型,sym(A), 常用于公式推導(dǎo) 變量聲明 采用變精度函數(shù)求值【例2-1】求出自然對(duì)數(shù)底 的前300位有效數(shù)字vpa(exp(sym(1),300)7MATLAB 的基本語(yǔ)句結(jié)構(gòu)直接賦值語(yǔ)句【例2-2】表示矩陣A= A; 1 2 3 1;2;3;4 8【例2-3】 試輸入復(fù)數(shù)矩陣需要避免的語(yǔ)句9函數(shù)調(diào)用語(yǔ)句冒號(hào)表達(dá)式U S V=svd(X);10【例2-4】 用不同的步距生成 (0,p) 間向量v1=0 : 0.2 : piv2=0 : -0.1 : piv3=0 : piv4=pi:-1:0v5=0:0.2:pi, pi

4、v6=pi : -1 : 0 011語(yǔ)句生成用線性等間距生成向量矩陣(start:step:end)start為起始值step為步長(zhǎng),步長(zhǎng)為1時(shí)可省略step參數(shù);另外step也可以取負(fù)數(shù)end為終止值a=linspace(n1,n2,n)在線性空間上,行矢量的值從n1到n2,數(shù)據(jù)個(gè)數(shù)為n,缺省n為100例:a=linspace(1,10,10)a= 1 2 3 4 5 6 7 8 9 1012a=logspace(n1,n2,n)在對(duì)數(shù)空間上,行矢量的值從10n1到10n2,數(shù)據(jù)個(gè)數(shù)為n,缺省n為50。這個(gè)指令為建立對(duì)數(shù)頻域軸坐標(biāo)提供了方便。例:a=logspace(1,3,3)a= 10

5、100 100013特殊矩陣的生成單位矩陣 eye(n) %生成n維單位陣 eye(m,n)%生成mn的單位陣eye(m,n) %生成mn的單位陣eye(size(A) %生成與A矩陣同樣大小的單位陣全1矩陣ones(n) ones(m,n) ones(m,n) ones(size(A)全0矩陣zeros(n)zeros(m,n) zeros(m,n)zeros(size(A)隨機(jī)矩陣rand(n) rand(m,n) rand(m,n) rand(size(A)生成的隨機(jī)矩陣的各個(gè)元素值在0和1之間。14例2-4 建立隨機(jī)矩陣:(1) 在區(qū)間20,50內(nèi)均勻分布的5階隨機(jī)矩陣。(2) 均值為

6、0.6、方差為0.1的5階正態(tài)分布隨機(jī)矩陣。命令如下:此外,常用的函數(shù)還有reshape(A,m,n),它在矩陣總元素保持不變的前提下,將矩陣A重新排成mn的二維矩陣。x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)15A(m,n):提取第m行,第n列元素A(:,n):提取第n列元素A(m,:):提取第m行元素A(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到 第n2列的所有元素(提取子塊)。A(:):得到一個(gè)長(zhǎng)列矢量,該矢量的元素按矩陣的列進(jìn)行排列。矩陣的提取1、矩陣下標(biāo)MATLAB通過(guò)確認(rèn)矩陣下標(biāo),可以對(duì)矩陣進(jìn)行插入子塊,提取子塊和重排

7、子塊的操作。16基本語(yǔ)句格式子矩陣提取提取 A 矩陣全部奇數(shù)行,所有列 提取 A 矩陣 3,2,1 行、2,3,4 列構(gòu)成子矩陣將 A 矩陣左右翻轉(zhuǎn),即最后一列排在最前面17(3) 矩陣的抽取用下標(biāo)可以從大矩陣?yán)锩娉槿∧承┰亟M成小的矩陣。例: A=1 2 3;4 5 6;7 8 9; B=A(1,1),A(2,3) B = 1 6(4) 刪除矩陣的行和列把空的 稱為空矩陣,即矩陣大小為00??梢酝ㄟ^(guò)把矩陣的行或列賦值為空矩陣來(lái)刪除某行或某列。182. 矩陣的組合即把小矩陣組合成大矩陣,組合符號(hào)為中括號(hào)。例:A=1 2;3 4; B=5 6;7 8; C=A B C=A;B C = C = 1

8、 2 5 6 1 2 3 4 7 8 3 4 5 6 7 819例: X %將一個(gè)00的矩陣賦給X A(:,2 4)= %將A的第二列和第四列刪除 A(:,2)= %刪除矩陣A的第二列(5)矩陣擴(kuò)展如果在原矩陣中一個(gè)不存在的地址位置上設(shè)定一個(gè)數(shù)(賦值),則該矩陣會(huì)自動(dòng)擴(kuò)展行列數(shù),并在該位置上添加這個(gè)數(shù),而且在其他沒(méi)有指定的位置補(bǔ)零。202、矩陣的大小m,n=size(A,x):返回矩陣的行列數(shù)m與n,當(dāng)x=1,則只返回行數(shù)m,當(dāng)x=2,則只返回列數(shù)n。length(A)=max(size(A):返回行數(shù)或列數(shù)的最大值。rank(A):求矩陣的秩a=1 2 3;3 4 5;m,n=size(a)

9、m = 2n = 3length(a)ans = 3max(size(a)ans = 3rank(a)ans = 2211矩陣元素 通過(guò)下標(biāo)引用矩陣的元素,例如 A(3,2)=200采用矩陣元素的序號(hào)來(lái)引用矩陣元素。矩陣元素的序號(hào)就是相應(yīng)元素在內(nèi)存中的排列順序。在MATLAB中,矩陣元素按列存儲(chǔ),先第一列,再第二列,依次類推。例如A=1,2,3;4,5,6;A(3)ans = 222矩陣多維數(shù)組形式23完全下標(biāo)元素賦值建立三維數(shù)組b=1 1;2 2; b(:,:,2)=5;size(b)=2 2 2; bb(:,:,1) = 1 1 2 2b(:,:,2) = 5 5 5 524ones,ze

10、ros,rand和randn直接創(chuàng)建多維數(shù)組的方法ones(2,3,3)cat(維,p1,p2,)按指定行列數(shù)放置模塊數(shù)組生成多維數(shù)組。參數(shù)維是指沿著第幾維連接模塊數(shù)組p1和p2等。rand(2,3,3)25cat(維,p1,p2,)按指定行列數(shù)放置模塊數(shù)組生成多維數(shù)組。參數(shù)維是指沿著第幾維連接模塊數(shù)組p1和p2等。a=1 2;3 4; b=5 6;7 8;cat(3,a,b)ans(:,:,1) = 1 2 3 4ans(:,:,2) = 5 6 7 8cat(1,a,b)ans = 1 2 3 4 5 6 7 8cat(2,a,b)ans = 1 2 5 6 3 4 7 826數(shù)據(jù)結(jié)構(gòu)體

11、數(shù)據(jù)結(jié)構(gòu)體將某一類相關(guān)的信息納入一個(gè)統(tǒng)一的變量名下進(jìn)行管理。比如要建立學(xué)生檔案就可以采用數(shù)據(jù)結(jié)構(gòu)體。結(jié)構(gòu)體可以理解成在MATLAB語(yǔ)言下的一個(gè)小型“數(shù)據(jù)庫(kù)”例. 考慮建立學(xué)生檔案結(jié)構(gòu)體,這里應(yīng)包含下列信息:編號(hào)(用number表示,而在結(jié)構(gòu)體下number又稱為其成員變量或域):數(shù)值型。姓名(name):字符串型。身高(height):數(shù)值型考試成績(jī)(test):矩陣,其第i行為第i次考試的成績(jī),第j列為第j門考試的成績(jī)結(jié)構(gòu)體的建立、修改及應(yīng)用27建立結(jié)構(gòu)體student_rec student_rec.number=1; student_=張三; student_rec.he

12、ight=180;student_rec.test=100,80,75;77,60,92;67,28,90;100,89,78;顯示結(jié)構(gòu)體的內(nèi)容 student_recstudent_rec = number: 1 name: 張三 height: 180 test: 4x3 double28和C語(yǔ)言不同,引用結(jié)構(gòu)體中成員變量時(shí)直接引用即可,而無(wú)需用-算符來(lái)引用。獲得該結(jié)構(gòu)體中的test成員變量 student_rec.testans = 100 80 75 77 60 92 67 28 90 100 89 7829建立一組100個(gè)學(xué)生(假設(shè)2個(gè)年級(jí),每個(gè)年級(jí)50人)的新的結(jié)構(gòu)體變量b b(5

13、0,2)=struct(student_rec) %構(gòu)造502結(jié)構(gòu)體矩陣b = 50 x2 struct array with fields: number name height test二年級(jí)第43個(gè)學(xué)生的有關(guān)信息的填寫 b(43,2).number=50+43; b(43,2).name=李四; b(43,2).height=178; b(43,2).test=83 80 78;97 80 72;69 88 80;87 99 100;30結(jié)構(gòu)體的添加,修改給b變量加一個(gè)成員變量體重(weight),則可以將結(jié)構(gòu)體中任意一個(gè)變量后面加一個(gè)weight成員變量,即 b(1,2).weight

14、=90b = 50 x2 struct array with fields: number name hight test weight31成員變量的消除 rmfield()消除b結(jié)構(gòu)體中weight成員變量 b=rmfield(b,weight)b = 50 x2 struct array with fields: number name hight test32單元結(jié)構(gòu)單元 (cell)結(jié)構(gòu)。該結(jié)構(gòu)把不同屬性的數(shù)據(jù)都納入到一個(gè)變量之下,而這個(gè)變量稱為單元。單元結(jié)構(gòu)的概念有些類似于結(jié)構(gòu)體,所不同的是,結(jié)構(gòu)體下的各子項(xiàng)稱為成員變量,每個(gè)成員變量都有自己的名字。單元變量的表示方法更類似于帶有下標(biāo)

15、的矩陣和多維數(shù)組。并且單元結(jié)構(gòu)不要求每個(gè)矩陣元素具有相同的屬性。用戶可以將各種不同屬性的數(shù)據(jù)全部歸并到一個(gè)單元變量中。33用單元數(shù)據(jù)結(jié)構(gòu)來(lái)構(gòu)造某個(gè)學(xué)生檔案 B=1,張三,180,100 80 75;77 60 92;67 28 90;100 89 78B = 1 張三 180 4x3 double size(B)ans = 1 4 B4ans = 100 80 75 77 60 92 67 28 90 100 89 78從顯示中不能直接看出此單元數(shù)據(jù)的第4個(gè)元素代表的矩陣具體內(nèi)容是什么不能用圓括號(hào)去訪問(wèn)單元數(shù)組34使用 celldisp( ) 函數(shù)顯示整個(gè)單元 celldisp(B) %顯示整

16、個(gè)單元變量 B1 = 1 B2 = 張三 B3 = 180 B4 = 100 80 75 77 60 92 67 28 90 100 89 7835消除單元元素 刪除B單元變量的第三個(gè)單元元素 B(3)= B = 1 張三 4x3 double這里用的是B(3)而不是B3,后者只能將第3單元置成空矩陣,而不能消除它36基本數(shù)學(xué)運(yùn)算 矩陣的代數(shù)運(yùn)算 矩陣的邏輯運(yùn)算 矩陣的比較運(yùn)算解析結(jié)果的化簡(jiǎn)與變換 基本數(shù)論運(yùn)算37 矩陣的代數(shù)運(yùn)算矩陣表示矩陣轉(zhuǎn)置數(shù)學(xué)表示 MATLAB 求解復(fù)數(shù)不變復(fù)數(shù)求共軛38矩陣加減法注意其一為標(biāo)量的情形矩陣乘法數(shù)學(xué)表示MATLAB 表示 注意相容性 39矩陣除法矩陣左除:

17、AX = B,求 XMATLAB 求解:X=AB最小二乘解 矩陣右除:XA = B,求 X MATLAB求解:X=B/A最小二乘解 40矩陣翻轉(zhuǎn)左右翻轉(zhuǎn) 上下翻轉(zhuǎn)旋轉(zhuǎn) 90o如何旋轉(zhuǎn)180o? 矩陣乘方 A 為方陣,求 MATLAB 實(shí)現(xiàn): 41點(diǎn)運(yùn)算 矩陣對(duì)應(yīng)元素的直接運(yùn)算點(diǎn)運(yùn)算在MATLAB中起著非常重要的作用,例如當(dāng)x是一個(gè)向量時(shí),則求取數(shù)值 ,不能直接寫成 而必須寫成 。在進(jìn)行矩陣的點(diǎn)運(yùn)算時(shí),同樣要求運(yùn)算的兩個(gè)矩陣的維數(shù)一致,或其中一個(gè)變量為標(biāo)量。其實(shí)一些特殊的函數(shù),如sin()也是由點(diǎn)運(yùn)算的形式進(jìn)行的,因?yàn)樗獙?duì)矩陣的每個(gè)元素求正弦值。42算數(shù)運(yùn)算符算術(shù)運(yùn)算符按照運(yùn)算符的優(yōu)先級(jí)可把算

18、術(shù)運(yùn)算符分為五級(jí),在每一級(jí)里運(yùn)算符有同樣的優(yōu)先級(jí),在運(yùn)算時(shí)自左向右結(jié)合例: exp2_1, exp2_2+加.數(shù)組冪-減左除或反斜杠*矩陣乘法/右除或斜杠.*數(shù)組乘法./數(shù)組除矩陣冪:冒號(hào)43在MATLAB里共有六個(gè)關(guān)系運(yùn)算符 大于 =大于等于 = 等于 =不等于關(guān)系運(yùn)算符將生成一個(gè)0-1矩陣,當(dāng)運(yùn)算數(shù)相應(yīng)元素為真時(shí)對(duì)應(yīng)位置上生成1,否則為0。關(guān)系運(yùn)算符44Matlab還提供一些特殊的函數(shù),在編程中很實(shí)用 find( ) 函數(shù) 可以查詢出滿足某種關(guān)系數(shù)組的下標(biāo) C=1 1 1 1;0 1 1 1; find(C=1)ans = 1 3 4 5 6 7 8 i,j=find(C=1); i,ja

19、ns = 1 1 1 2 2 2 1 3 2 3 1 4 2 445查詢函數(shù)all( )和any( ) C=1 1 1 1;0 1 1 1; all(C=1)ans = 0 1 1 1 C=1 1 1 1;0 1 1 1; any(C=1)ans = 1 1 1 1all( )和any( )函數(shù)可以互相嵌套例如,判定一個(gè)矩陣C是否元素均非零可以使用all(all(C) all(C(:)46矩陣元素的數(shù)據(jù)變換對(duì)由小數(shù)構(gòu)成的矩陣A來(lái)說(shuō),如果想對(duì)它取整,有 floor(A) 將A中的元素按負(fù)無(wú)窮方向取整ceil(A)將A中元素按正無(wú)窮方向取整round(A) 將A中元素按最近的整數(shù)取整,即 四舍五入

20、fix(A) 將A中元素按離0近的方向取整求取矩陣元素的余數(shù) C=rem(A,x)將小數(shù)表示成兩個(gè)整數(shù)的除式形式n,d=rat(A), A=n./d47 floor(A) %向-Inf方向取整ans = -3 2 1 1 -1 0 -1 -1 -2 A=-2.5+5*rand(3) %生成-2.5 2.5區(qū)間上均勻分布的隨機(jī)數(shù)A = -2.42363036485482 2.15907289230832 1.73110708912162 1.23392838282215 -0.17002829162288 0.12576248152586 -0.27451783856027 -0.4067526

21、6136247 -1.48676321174806 ceil(A) %向+Inf方向取整ans = -2 3 2 2 0 1 0 0 -1 round(A) %取最近的整數(shù)ans = -2 2 2 1 0 0 0 0 -1 fix(A) %向0方向取整ans = -2 2 1 1 0 0 0 0 -148 例: 產(chǎn)生5階隨機(jī)方陣A,其元素為10,90區(qū)間的隨機(jī)整數(shù),然后判斷A的元素是否能被3整除。生成5階隨機(jī)方陣A。A=fix(90-10+1)*rand(5)+10) (2)判斷A的元素是否可以被3整除。 P=rem(A,3)=0其中,rem(A,3)是矩陣A的每個(gè)元素除以3的余數(shù)矩陣。此時(shí),

22、0被擴(kuò)展為與A同維數(shù)的零矩陣,P是進(jìn)行等于(=)比較的結(jié)果矩陣。49上次課內(nèi)容Matlab語(yǔ)言的變量與常量數(shù)據(jù)結(jié)構(gòu):數(shù)值型、符號(hào)型、其它數(shù)據(jù)結(jié)構(gòu)(字符串型、多維數(shù)組、結(jié)構(gòu)體、單元數(shù)組、類與對(duì)象)Matlab語(yǔ)言的基本語(yǔ)句結(jié)構(gòu):直接賦值語(yǔ)句、函數(shù)調(diào)用語(yǔ)句冒號(hào)表達(dá)式與子矩陣的提取基本數(shù)學(xué)運(yùn)算:矩陣的代數(shù)運(yùn)算、矩陣的邏輯運(yùn)算、矩陣的比較運(yùn)算、基本數(shù)論運(yùn)算50本次課內(nèi)容 多項(xiàng)式運(yùn)算 多項(xiàng)式曲線的擬合 多項(xiàng)式插值(一維、二維) 最小二乘曲線擬合技術(shù) 代數(shù)方程的求解 微分方程的求解 非線性方程與最優(yōu)問(wèn)題求解 無(wú)約束最優(yōu)化問(wèn)題求解 二次型規(guī)劃問(wèn)題求解 一般非線性規(guī)劃問(wèn)題求解51Matlab語(yǔ)言把多項(xiàng)式表達(dá)成

23、一個(gè)行向量,該向量中的元素是按多項(xiàng)式降冪排列的。 f(x)=anxn+an-1xn-1+l a0 可用行向量 p=an an-1 a1 a0表示poly 產(chǎn)生特征多項(xiàng)式系數(shù)向量特征多項(xiàng)式一定是n+1維的特征多項(xiàng)式第一個(gè)元素一定是1多項(xiàng)式運(yùn)算 52例:a=1 2 3;4 5 6;7 8 0;p=poly(a)p =1.00 -6.00 -72.00 -27.00 p是多項(xiàng)式p(x)=x3-6x2-72x-27的matlab描述方法,我們可用:p1=poly2str(p,x) 函數(shù)文件,顯示數(shù)學(xué)多項(xiàng)式的形式p1 =x3 - 6 x2 - 72 x - 2753多項(xiàng)式的常用函數(shù)roots ( ) %

24、求多項(xiàng)式的根 p=poly(A) %求矩陣的特征多項(xiàng)式 polyval(p,x) %求當(dāng)多項(xiàng)式p的參數(shù)為某個(gè)特定值x 時(shí)的多項(xiàng)式的值 polyvalm(p,A) %和polyval作用相同,輸入?yún)?shù)值也可為方陣A多項(xiàng)式運(yùn)算(1) c=conv(A,B) %多項(xiàng)式乘法函數(shù)conv指令可以嵌套使用,如conv(conv(a,b),c)(2) Q,R=deconv (A,B) %多項(xiàng)式除法函數(shù)(3) Polyder(A) %求多項(xiàng)式的微分多項(xiàng)式54例:a(x)=x2+2x+3; b(x)=4x2+5x+6;c = (x2+2x+3)(4x2+5x+6)a=1 2 3;b=4 5 6;c=conv(a

25、,b)=conv(1 2 3,4 5 6)c = 4.00 13.00 28.00 27.00 18.00p=poly2str(c,x)p = 4 x4 + 13 x3 + 28 x2 + 27 x + 1855多項(xiàng)式曲線的擬合 多項(xiàng)式擬合又稱為曲線擬合,其目的就是在眾多的樣本點(diǎn)中進(jìn)行擬合,找出滿足樣本點(diǎn)分布的多項(xiàng)式。這在分析實(shí)驗(yàn)數(shù)據(jù),將實(shí)驗(yàn)數(shù)據(jù)做解析描述時(shí)非常有用。格式為:p=polyfit(x,y,n)其中,x和y為已知數(shù)據(jù)的橫坐標(biāo)和縱坐標(biāo)向量,n為多項(xiàng)式的次數(shù)。56多項(xiàng)式擬合函數(shù)例exp2_15.m57多項(xiàng)式插值多項(xiàng)式插值是指根據(jù)給定的有限個(gè)樣本點(diǎn),產(chǎn)生另外的估計(jì)點(diǎn)以達(dá)到數(shù)據(jù)更為平滑的效

26、果(內(nèi)插,外插)。該技巧在信號(hào)處理與圖像處理上應(yīng)用廣泛。所用指令有一維的interp1、二維的interp2。這些指令分別有不同的方法(method),設(shè)計(jì)者可以根據(jù)需要選擇適當(dāng)?shù)姆椒ǎ詽M足系統(tǒng)屬性的要求。58在有限樣本點(diǎn)向量xs與ys中,插值產(chǎn)生向量x和y,所用方法定義在method中,有4種選擇:nearest:執(zhí)行速度最快,輸出結(jié)果為直角轉(zhuǎn)折linear:默認(rèn)值,在樣本點(diǎn)上斜率變化很大spline:最花時(shí)間,但輸出結(jié)果也最平滑cubic:最占內(nèi)存,輸出結(jié)果與spline差不多例 exp2_16.my=interp1(xs,ys,x,method)59二維數(shù)據(jù)的插值擬合二維插值函數(shù)60

27、x,y=meshgrid(-3:.6:3, -2:.4:2);z=(x.2-2*x).*exp(-x.2-y.2-x.*y);mesh(x,y,z), axis(-3,3,-2,2,-0.7,1.5)二元函數(shù)繪制已知數(shù)據(jù)的網(wǎng)格圖Exp3_5061默認(rèn)插值算法立方和樣條插值算法x1,y1=meshgrid(-3:.2:3, -2:.2:2);z1=interp2(x,y,z,x1,y1); mesh(x1,y1,z1), axis(-3,3,-2,2,-0.7,1.5)z1=interp2(x,y,z,x1,y1,cubic); z2=interp2(x,y,z,x1,y1,spline);me

28、sh(x1,y1,z1), axis(-3,3,-2,2,-0.7,1.5)figure; mesh(x1,y1,z2), axis(-3,3,-2,2,-0.7,1.5)62MATLAB提供的二維插值函數(shù)能比較好地進(jìn)行二維插值運(yùn)算,它只能處理以網(wǎng)格形式給出的數(shù)據(jù),如果已知數(shù)據(jù)不是以網(wǎng)格形式給出的,則用該函數(shù)是無(wú)能為力的。在實(shí)際應(yīng)用中大部分問(wèn)題都是以實(shí)測(cè)的 給出的,所以不能直接使用該函數(shù)進(jìn)行二維插值。63最優(yōu)曲線擬合方法64根據(jù)函數(shù)原型建立MATLAB函數(shù)求待定系數(shù)向量待定系數(shù)向量a目標(biāo)函數(shù)值原型函數(shù)名優(yōu)化初值原始輸入輸出數(shù)據(jù)向量Exp3_5165【例2-38】用最小二乘擬合方法擬合函數(shù)的待定

29、系數(shù)66examp2_38指定函數(shù)最小/最大值67代數(shù)方程組求解matlab中有兩種除運(yùn)算左除和右除。對(duì)于方程ax+b,a 為anm矩陣,有三種情況: 當(dāng)n=m時(shí),此方程成為“恰定”方程 當(dāng)nm時(shí),此方程成為“超定”方程 當(dāng)nm時(shí),此方程成為“欠定”方程 matlab定義的除運(yùn)算可以很方便地解上述三種方程681.恰定方程組的解方程ax=b(a為非奇異) x=a-1 b 矩陣逆兩種解:x=inv(a)b 采用求逆運(yùn)算解方程 x=ab 采用左除運(yùn)算解方程 69方程ax=ba=1 2;2 3;b=8;13;x=inv(a)*b x=ab x = x = 2.00 2.00 3.00 3.00 = a

30、 x = b例: x1+2x2=8 2x1+3x2=13702.超定方程組的解方程 ax=b ,m Optimization terminated successfully: First-order optimality is less than options.TolFun.x = 0.3570 0.9341Y = 1.0e-009 * 0.1215 0.0964c = 1d = iterations: 7 funcCount: 21 algorithm: trust-region dogleg firstorderopt: 1.3061e-010初值的選擇有時(shí)對(duì)整個(gè)問(wèn)題的求解有很大的影響,

31、在某些初值下甚至無(wú)法搜索到方程的解105MATLAB最優(yōu)化工具箱中的函數(shù)只能解決實(shí)數(shù)解問(wèn)題,再配以符號(hào)運(yùn)算工具箱則可以解出所有的解 syms x y; X=solve(x2+y2-1=0,0.75*x3-y+0.9=0)106解析求解方法并不是萬(wàn)能的,因?yàn)檫@里的例子最終可以轉(zhuǎn)換為一元高次代數(shù)方程所以能用它求解,但更一般的方程是不能解出的。 X=solve(x2*sin(x)=x+1,y=x*cos(0.1*x2+3*x)+0.5); X.x;X.y 107 ezplot(x2*sin(y)-x-1);hold on ezplot(-y+x*cos(0.1*x2+3*x)+0.5)方程求根過(guò)程中

32、不能過(guò)分依賴數(shù)值方法和解析方法,有時(shí)還應(yīng)該適當(dāng)考慮圖解的方法108 最優(yōu)化問(wèn)題的 MATLAB 求解無(wú)約束最優(yōu)化問(wèn)題求解 無(wú)約束最優(yōu)化問(wèn)題的一般描述為109目標(biāo)函數(shù)的MATLAB表示function y=opt_fun0(x)y=3*x(1)*x(1)-2*x(1)*x(2)+x(2)*x(2)+4*x(1)+3*x(2);求解最優(yōu)化問(wèn)題format long; x,f_opt,c,d=fminsearch(opt_fun0,-1.2, 1);x, f_opt, kk=d.funcCountExp_3.45110有約束最優(yōu)化問(wèn)題求解線性規(guī)劃問(wèn)題的數(shù)學(xué)描述為調(diào)用格式線性等式約束線性不等式約束上界

33、向量與下界向量111將之轉(zhuǎn)換為最小化問(wèn)題線性等式約束線性不等式約束上界向量與下界向量Exp_3.46112f=1,-2,1,-3; Aeq=1,1,3,1; Beq=6;A=0,-2,1,1; 0,-1,6,-1; B=3; 4; LB=zeros(4,1); UB=;x,f_opt=linprog(f,A,B,Aeq,Beq,LB,UB) Optimization terminated successfully.x = 0.00000000000000 1.00000000000000 0.00000000000000 4.99999999999999f_opt = -16.99999999

34、999998113二次型規(guī)劃問(wèn)題二次型規(guī)劃的數(shù)學(xué)表示為二次型規(guī)劃問(wèn)題函數(shù) quadprog( )114Exp_3.47115f=-2,-4,-6,-8; H=diag(2,2,2,2);OPT=optimset; OPT.LargeScale=off; % 不使用大規(guī)模問(wèn)題求解A=1,1,1,1; 3,3,2,1; B=5;10; Aeq=; Beq=; LB=zeros(4,1);x,f_opt=quadprog(H,f,A,B,Aeq,Beq,LB,OPT) Optimization terminated successfully.x = 0.00000000000000 0.66666666666667 1.66666666666667 2.66666666666667f_opt = -23.66666666666666別忘記補(bǔ)上已經(jīng)除去了的常數(shù)項(xiàng)116有約束非線性最優(yōu)化問(wèn)題的一般描述為117MATLAB提供的求解各種約束下的最優(yōu)化問(wèn)題函數(shù) fmincon( )目標(biāo)函數(shù)的M函數(shù)初始搜索點(diǎn)不等式約束等式約束上下界非線性約束的M函數(shù)控制選項(xiàng)118寫出目標(biāo)函數(shù)function y=opt_fun1(x)y=

溫馨提示

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