版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、優(yōu)化設(shè)計(jì)實(shí)驗(yàn)課件,現(xiàn)代工程計(jì)算 - MATLAB,目錄,第1章 MATLAB基礎(chǔ) 第2章 優(yōu)化計(jì)算,第1章 MATLAB基礎(chǔ),1.1 MATLAB環(huán)境簡(jiǎn)介 1.2 數(shù)據(jù)表示 1.3 矩陣運(yùn)算 1.4 MATLAB的圖形系統(tǒng)簡(jiǎn)介 1.5 源文件(M文件),1.1 MATLAB窗口,啟動(dòng)MATLAB 其窗口如右,1.1 MATLAB窗口,1、Command Window(命令窗口) 一行可寫入一個(gè)或多個(gè)命令,命令之間用逗號(hào)或分號(hào)隔開,如果命令尾帶分號(hào)將不顯示該命令的執(zhí)行結(jié)果;如果命令有返回結(jié)果,如果不賦給自定義變量,將默認(rèn)賦給變量ans;變量還可有續(xù)行;最后用回車提交命令。 命令窗口常用鍵 鍵顯示
2、前個(gè)命令 鍵顯示后個(gè)命令 Esc鍵取消輸入 Ctrl+x剪切 Ctrl+c復(fù)制,1.1 MATLAB窗口,2、Workspace(工作區(qū)) 程序運(yùn)行中的自定義變量和默認(rèn)變量都包含在工作 區(qū)中??赏ㄟ^工作區(qū)觀察變量的大小、類型,雙擊變量 名可查看數(shù)值大小。 也可用who和whos命令查看 3、Command History(命令記錄) 記錄了Command Window 中的每一條命令,雙擊 Command History中的命令,即可重復(fù)那條命令。,1.1MATLAB的幫助系統(tǒng),4. 幫助命令: help 文件名 或 函數(shù)名 幫助菜單: 演示命令:demo 總體看,matlab可以被視為一個(gè)計(jì)
3、算工具、繪圖工具、編程工具,1.2 數(shù)據(jù)表示,1.2.1數(shù)據(jù)類型 有整型、實(shí)型、復(fù)型、字符串四種類型 1、常數(shù) 1)整型常數(shù):10 0 10 2)實(shí)型常數(shù):0.3 .3 3. 3914e-2 (表示范圍約10308) 3)復(fù)型常數(shù):12i 3.56.18i 13.2i 4)字符串常數(shù): MATLAB I cant do. (兩個(gè)連寫的單撇號(hào)表示一個(gè)單撇號(hào)) 注意:沒有邏輯型,但與C語言那樣,非0為真,0為假,1.2.1數(shù)據(jù)類型,2、變量 變量用標(biāo)識(shí)符表示(字母打頭、字母、數(shù)字、下劃線組成,長(zhǎng)度19)。可以合法出現(xiàn)而定義。區(qū)分大小寫字母,以當(dāng)前值定義其類型。 3、函數(shù)名 函數(shù)名用標(biāo)識(shí)符表示。 4
4、、特殊常數(shù) ANS、PI等。,1.2.1數(shù)據(jù)的輸出格式,輸出格式 : SHORT 按5位小數(shù)(含小數(shù)點(diǎn)、下同)輸出 LONG 按15位小數(shù)(含小數(shù)點(diǎn)、下同)輸出 SHORT e 按5位小數(shù)、科學(xué)記數(shù)方式輸出 LONG e 按15位小數(shù)、科學(xué)記數(shù)方式輸出 HEX 按16進(jìn)制輸出,1.2.1數(shù)據(jù)的輸出格式,在MATLAB中,數(shù)據(jù)的存儲(chǔ)和運(yùn)算都以雙精度進(jìn)行,但輸出結(jié)果可指定格式。 指定輸出格式的方法有兩種: 1 菜單命令法 V6.1中,選擇File中的Preferences命令,在General、Command Window等項(xiàng)目中設(shè)置。 2 使用Format命令法 格式: Format 格式串,1
5、.2.1數(shù)據(jù)的輸出格式,例如: format long e 5/3 ans = 1.66666666666667e + 000 format rat 0.75 ans = 3/4,1.2.2數(shù)組,1.2.2 數(shù)組 分為行向量、列向量、矩陣。普通變量可看成11數(shù)組。 1、創(chuàng)建數(shù)組的基本方法 1)直接列表定義數(shù)組 變量元素值1 元素值2 元素值n 變量元素值1,元素值2 ,元素值n 變量行1各元素;行2各元素;行n各元素 例如: x=1 2 3 4 5 6 7 8 9 0 y=1,2,3,4,5,6,7,8,9,0 z=1,2,3,4,5;2,3,4,5,6,7,1.2.2數(shù)組,2)域表定義數(shù)組
6、變量初值:增量:終值初值:終值 變量(初值:增量:終值)常數(shù) 例如: x=0:0.02:10 y=1:80 z=(1:0.1:7)*10e-5,1.2.2數(shù)組,3)利用函數(shù)定義數(shù)組 變量linspace(初值,終值,元素個(gè)數(shù)) 如:x = linspace(0,pi,11) 的結(jié)果為: x = Columns 1 through 4 0 0.3142 0.6283 0.9425 Columns 5 through 8 1.2566 1.5708 1.8850 2.1991 Columns 9 through 11 2.5133 2.8274 3.1416,1.2.2數(shù)組,2、 數(shù)組的訪問(一維
7、) 數(shù)組名 表示全體元素 數(shù)組名(k) 表示第k元素 數(shù)組名(k1:k2) 表示第k1到k2元素 數(shù)組名(k1:k2:k3) 表示第k1、k1+k2、 k1+2k2,到k3元素 數(shù)組名(k1,k2,kn) 表示第k1,k2,kn元素 其中:kp也可為初值:終值或初值:增量:終值的形式。,1.2.2數(shù)組,例如:a = 1:2:15 則: 1 3 a(2) 5 a(3:5) 7 a(5:-1:2) 9 a(2,6,8) 11 13 15,a的值,1.2.3 數(shù)組運(yùn)算,1、數(shù)組的基本運(yùn)算 設(shè)有數(shù)組 變量或常量 1)一維數(shù)組拼接 u = a x 結(jié)果為a1an x1xm 或u = a c1 c2 ck
8、 結(jié)果為 a1an c1 c2 ck 2)轉(zhuǎn)置 a. 點(diǎn)轉(zhuǎn)置 a 共軛轉(zhuǎn)置,1.2.3數(shù)組運(yùn)算,2. 純量與數(shù)組的算術(shù)運(yùn)算 a c1 或 c1 a 其中可為、 結(jié)果為a1c1 a2c1 anc1 或c1a1 c1a2 c1an 3. 數(shù)組加(減) 使兩數(shù)組的對(duì)應(yīng)各元素相加(減) a+b 結(jié)果為a1+b1 a2+b2an+bn ab 結(jié)果為a1b1 a2b2anbn (a與b的維數(shù)必須相同),1.2.3 數(shù)組運(yùn)算,4. 數(shù)組點(diǎn)乘 使兩數(shù)組的對(duì)應(yīng)元素相乘a.*b 結(jié)果為a1b1 a2b2anbn (a與b的維數(shù)必須相同) 5. 數(shù)組點(diǎn)正除(右除) 使兩數(shù)組的對(duì)應(yīng)元素正除 a./b 結(jié)果為: (a、
9、b維數(shù)必須相同),1.2.3 數(shù)組運(yùn)算,6. 數(shù)組點(diǎn)反除(左除)a.b 結(jié)果為: 顯然:a./b = b.a (a、b維數(shù)必須相同) 7. 數(shù)組的冪運(yùn)算 a.c1 結(jié)果為a1c1 a2c1anc1 c1.a 結(jié)果為c1a1 c1a2c1an a.b 結(jié)果為a1b1 a2b2anbn,1.2.3 數(shù)組運(yùn)算,8、 1數(shù)組和0數(shù)組 1) 1數(shù)組 ones(n) 建立nn全為1的數(shù)組 ones(r,c) 建立r行c列的1數(shù)組 2) 0數(shù)組 zeros(n) 建立nn全為0的數(shù)組 zeros(r,c) 建立r行c列的0數(shù)組,1.2.3 數(shù)組運(yùn)算,9. 用邏輯數(shù)組操作一個(gè)數(shù)組 對(duì)數(shù)組的邏輯運(yùn)算產(chǎn)生邏輯數(shù)組
10、,且結(jié)果中用1表示真,0表示假 如: x = 3:3 x = 3 2 1 0 1 2 3 t = abs(x) 1 t為邏輯數(shù)組 t = 1 1 0 0 0 1 1 y = x(t) 提取t中為真對(duì)應(yīng)的x元素 y = 3 2 2 3,1.2.3 數(shù)組運(yùn)算,對(duì)數(shù)組有以下的邏輯運(yùn)算: l 比較運(yùn)算符: = = 兩數(shù)組對(duì)應(yīng)元素相比較,或一個(gè)數(shù)組的各元素與一個(gè)純量相比較,結(jié)果為邏輯數(shù)組。顯然相比較的數(shù)組必須具有相同大小 l 邏輯運(yùn)算符 (與) (或) (非) XOR(異或) 兩相同大小的數(shù)組進(jìn)行(與)、(或)、XOR(異或)運(yùn)算是對(duì)應(yīng)元素的運(yùn)算(也允許一個(gè)數(shù)組與一純量進(jìn)行這些運(yùn)算)。對(duì)任一數(shù)組都可以進(jìn)
11、行(非)運(yùn)算 如: A4,5,6;7,8,9; 插入:A(2,6) = 10 插入后,A變成3行6列矩陣,未定義的新元素值內(nèi)定為0。即,1.3 矩陣運(yùn)算,3. 重排 如對(duì)A = 1,2,3;4,5,6;7,8,9; B = A(3:1:1,:) 或B = A(3:1:1,1:3) 將把A的各列元素倒排生成B B= 7 8 9 4 5 6 1 2 3,1.3 矩陣運(yùn)算,4. 提取 如: A(:,1 3) %提取A的第1、3列 A(1:2,2:3) %提取A中前兩行的后兩列 設(shè) C = 1 3 則: A(C,C) %提取A第1、3行中第1、3列各元素,效果與 A(1 3,1 3)相同.,1.3 矩
12、陣運(yùn)算,5. 置空(刪去某行或某列) 如: A = 1,2,3;4,5,6;7,8,9; B = A; B(:,2) = ; 將B的第2列刪掉 B = A; B(1,:) = ; 刪去B的第1行,1.3 矩陣運(yùn)算,6. 置零 如:A(2,:) = 0,0,0 將把A的第2行置零。注意:不能寫成 A(2,:) = 0 7. 數(shù)組的規(guī)模 s = size(A) 生成行向量s,值為A的行數(shù),列數(shù) r,c = size(A) 返回A的行數(shù)r,列數(shù)c r = size(A,1) 返回A的行數(shù)r c = size(A,2) 返回A的列數(shù),1.3 矩陣運(yùn)算,8. 矩陣乘 設(shè)gmn和hnm,則 gh 結(jié)果為m
13、m矩陣 hg 結(jié)果為nn矩陣 注意:矩陣乘()與數(shù)組乘(.)的區(qū)別 9. 矩陣除 矩陣正除(右除):A/B 矩陣反除(左除):AB 由于在MATLAB中是根據(jù)關(guān)系式: BA = (A/B) 所以 AB相當(dāng)于A1B,1.3 矩陣運(yùn)算,10. 矩陣乘方 矩陣的標(biāo)量乘方 Ap 當(dāng)p為整數(shù)時(shí),A應(yīng)為方陣: p0 則 Ap = AAA p次 p=0 則 Ap = A0 等于與A同維的單位矩陣 p0 則Ap=inv(Aabs(p) 即求A自乘|p|次后的逆矩陣,1.3 矩陣運(yùn)算,11. 逆矩陣 利用inv函數(shù)可以求得逆矩陣 例:A=1 2 ;3 2 x=inv(A) 則 x=-0.5 0.5;0.75 -
14、0.25 若 I=inv(A)*A 則 I=1 0 ;0 1 12. 特征向量 利用eig函數(shù)可以求得矩陣的特征向量,1.3 矩陣運(yùn)算,練習(xí)輸入數(shù)組 計(jì)算 2*a、a+b、a-b、a.*b、a、a,b、a.2、a./b 練習(xí)求解線性方程組 提示:將方程組化為 的矩陣形式,利用矩陣運(yùn)算求解,1.4MATLAB圖形系統(tǒng)簡(jiǎn)介,1.PLOT命令 PLOT命令用來繪制二維圖形 例:在命令窗口輸入 X=0:0.1:1 Y=0:0.3:3 Plot(x,y) 2.LINE命令 LINE命令用來根據(jù)點(diǎn)畫線 例:在命令窗口輸入 X=5,6,7;y=8,12,6 Line(x,y),1.4MATLAB圖形系統(tǒng)簡(jiǎn)介
15、,3.GRID ON命令 用來顯示繪圖網(wǎng)格 4. 編輯圖形對(duì)象屬性 點(diǎn)擊工具欄上的箭頭按鈕(edit plot),選中繪制的圖形,單擊右鍵,選“properties”命令。 line styleline width line color marker style marker size marker color 5.添加輔助說明 點(diǎn)擊工具欄上的A(insert text)和右箭頭(insert arrow)按鈕,在圖形中添加輔助說明的箭頭和文字,1.4MATLAB圖形系統(tǒng)簡(jiǎn)介,6.PATCH命令 PATCH 命令用來繪制二維面 例:在命令窗口輸入 X=5,6,7;y=8,12,6;z=5,4,
16、3 Patch(y,z,4); patch(x,y,3) 7.圖表生成命令 pie命令用來生成餅圖;bar命令用來生成直方圖 例:在命令窗口輸入 X=5,6,7; y=8,12,6;z=5,4,3 Pie(x); bar(x,z),1.5 源文件(M文件),分為兩類:函數(shù)文件和非函數(shù)文件。都用擴(kuò)展名.M 1.5.1函數(shù)文件(相當(dāng)于子程序) 格式1(無返回值函數(shù)) Function 函數(shù)名(輸入表) %稱為函數(shù)頭 函數(shù)體 例如:function box(opt_box); 格式2(有返回值函數(shù)) function 輸出表函數(shù)名(輸入表) 函數(shù)體,1.5.1 函數(shù)文件,其中:輸出表 是函數(shù)的返回值
17、,若輸出表中只有一項(xiàng), 則方括號(hào)可省略。 例如:function ab = getobj(HG) 注意: 函數(shù)名必須與定義它的文件名主名相同 函數(shù)體是對(duì)各參數(shù)、局部變量和全局變量的操作。輸入、輸出變量間用逗號(hào)隔開。 函數(shù)體內(nèi)必須對(duì)輸出表中的變量賦值。 函數(shù)頭與函數(shù)體之間可以有多個(gè)以符號(hào)“”開始的注釋行,說明函數(shù)的功能和使用方法。 語句后加分號(hào),則在命令窗口中顯示其計(jì)算結(jié)果。,1.5.2 非函數(shù)文件,實(shí)例:見例3.7.1 文件objfun.m為函數(shù)文件; 文件main.m為非函數(shù)文件,1.5.2非函數(shù)文件 是無函數(shù)頭的M文件,由若干命令和注釋構(gòu)成。相當(dāng)于批處理文件或主程序 如: %Filenam
18、e is a sine.m x = 0:0.1:2*pi; y = sin(x); plot(x,y) %可包含漢字注釋,1.5.3 M-文件的操作,1、建立新M-文件 在命令窗中選File/New/M-file命令,打開編輯窗口可同時(shí)打開多個(gè)M文件 2、保存M文件 在文本編輯器中選File/Save As 命令,1.5.3 M-文件的操作,3、編輯M文件 在命令窗口/文本編輯器中選 File/ Open 命令 4 運(yùn)行M文件 在文本編輯器中選Debug/Run 命令 或按F5鍵 或在命令窗口使用命令行調(diào)用,格式為: 文件名,第2章優(yōu)化計(jì)算,2.1線性規(guī)劃及其優(yōu)化工具箱函數(shù) 2.2無約束非線性
19、及其優(yōu)化函數(shù) 2.3約束及其優(yōu)化函數(shù) 2.4綜合應(yīng)用,2.1線性規(guī)劃及其優(yōu)化函數(shù),線性規(guī)劃問題是目標(biāo)函數(shù)和約束條件均為線性函數(shù)的問 題,MATLAB解決的線性規(guī)劃問題的標(biāo)準(zhǔn)形式為 : 其中: 。,2.1線性規(guī)劃及其優(yōu)化函數(shù),函數(shù) linprog 格式 x = linprog(f,A,b,Aeq,beq) x = linprog(f,A,b,Aeq,beq,lb,ub) x = linprog(f,A,b,Aeq,beq,lb,ub,x0) x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) x,fval = linprog() x,fval,exitflag
20、 = linprog() x,fval,exitflag,output = linprog() x,fval,exitflag,output,lambda = linprog(),2.1線性規(guī)劃及其優(yōu)化函數(shù),說明 f: 是優(yōu)化參數(shù)x的系數(shù)矩陣; lb,ub: 設(shè)置優(yōu)化參數(shù)x的上下界; fval: 返回目標(biāo)函數(shù)在最優(yōu)解x點(diǎn)的函數(shù)值; exitflag:返回算法的終止標(biāo)志; output: 返回優(yōu)化算法信息的一個(gè)數(shù)據(jù)結(jié)構(gòu)。,2.1線性規(guī)劃及其優(yōu)化函數(shù),應(yīng)用舉例 求使函數(shù) 取最小值的x值, 且滿足約束條件:,2.1線性規(guī)劃及其優(yōu)化函數(shù),代碼f = -5; -4; -6; A = 1 -1 1;3 2
21、 4;3 2 0; b = 20; 42; 30; lb = zeros(3,1); x,fval = linprog(f,A,b,lb) 結(jié)果 x = 0.0000 15.0000 3.0000 fval = -78.0000,練習(xí)解下面線性規(guī)劃問題,某車間生產(chǎn)甲、乙兩種產(chǎn)品。生產(chǎn)甲種產(chǎn)品每件需要材料9Kg、3個(gè)工時(shí)、4KW電,可獲利60元。生產(chǎn)乙種產(chǎn)品每件需要材料4Kg、10個(gè)工時(shí)、5KW電,可獲利120元。若每天能供應(yīng)材料360Kg,有300個(gè)工時(shí),能供200KW電,問每天生產(chǎn)甲、乙兩種產(chǎn)品各多少件,才能獲得最大的利潤(rùn)。,2.1線性規(guī)劃及其優(yōu)化函數(shù),提示:,2.2無約束非線性及其優(yōu)化函數(shù)
22、,函數(shù) fminsearch 格式 x = fminsearch(fun,x0) x = fminsearch(fun,x0,options) x,fval = fminsearch() x,fval,exitflag = fminsearch() x,fval,exitflag,output = fminsearch(),2.2無約束非線性及其優(yōu)化函數(shù),說明 fun 是目標(biāo)函數(shù) options 設(shè)置優(yōu)化選項(xiàng)參數(shù) fval 返回目標(biāo)函數(shù)在最優(yōu)解 x點(diǎn)的函數(shù)值 exitflag 返回算法的終止標(biāo)志 output 返回優(yōu)化算法信息的一個(gè)數(shù)據(jù)結(jié)構(gòu),2.2無約束非線性及其優(yōu)化函數(shù),應(yīng)用舉例求函數(shù) 取最
23、小值時(shí)的值。 代碼%首先編寫f(x)的.m 文件 function f=myfun(x) f=sin(x)+3; %然后調(diào)用函數(shù)fminsearch x0=2 ; %起始點(diǎn) x,fval=fminsearch(myfun,x0) 結(jié)果 x = 4.7124 fval = 2.0000,練習(xí) 的最小值 提示: x,fval = fminsearch(fun,x0)的基本格式不能動(dòng)。因此x和x0應(yīng)為12向量,目標(biāo)函數(shù)可寫成,2.2無約束非線性及其優(yōu)化函數(shù),或,2.2無約束非線性及其優(yōu)化函數(shù),函數(shù)fminunc 格式x = fminunc(fun,x0) x = fminunc(fun,x0,opt
24、ions) x,fval = fminunc() x,fval,exitflag = fminunc() x,fval,exitflag,output = fminunc() x,fval,exitflag,output,grad = fminunc() x,fval,exitflag,output,grad,hessian = fminunc(),2.2無約束非線性及其優(yōu)化函數(shù),說明 fun 是目標(biāo)函數(shù) options 設(shè)置優(yōu)化選項(xiàng)參數(shù) fval 返回目標(biāo)函數(shù)在最優(yōu)解x點(diǎn)的函數(shù)值 exitflag 返回算法的終止標(biāo)志 output 返回優(yōu)化算法信息的一個(gè)數(shù)據(jù)結(jié)構(gòu) grad 返回目標(biāo)函數(shù)在最優(yōu)
25、解x點(diǎn)的梯度 hessian 返回目標(biāo)函數(shù)在最優(yōu)解x點(diǎn)的Hessian矩陣值,2.2無約束非線性及其優(yōu)化函數(shù),應(yīng)用舉例 的最小值 代碼%首先編寫目標(biāo)的.m文件 function f=myfun(x) f=3*x(1)2+2*x(1)*x(2)+x(2)2 %然后調(diào)用函數(shù) fminunc %起始點(diǎn) x0=1,1; x,fval=fminunc(myfun,x0),2.2無約束非線性及其優(yōu)化函數(shù),結(jié)果 x = 1.0e-008 * -0.7512 0.2479 fval = 1.3818e-016,2.3約束及其優(yōu)化函數(shù),函數(shù) fminbnd 格式 x = fminbnd(fun,x1,x2) x
26、 = fminbnd(fun,x1,x2,options) x,fval = fminbnd() x,fval,exitflag = fminbnd() x,fval,exitflag,output = fminbnd(),應(yīng)用背景給定區(qū)間x1xx2,求函數(shù)f(x)的最小值。X可以是多元向量,2.3約束及其優(yōu)化函數(shù),說明 fun 是目標(biāo)函數(shù) x1,x2 設(shè)置優(yōu)化變量給定區(qū)間的上下界 options 設(shè)置優(yōu)化選項(xiàng)參數(shù) fval 返回目標(biāo)函數(shù)在最優(yōu)解x點(diǎn)的函數(shù)值 exitflag 返回算法的終止標(biāo)志 output 是一個(gè)返回優(yōu)化算法信息的結(jié)構(gòu),2.3約束及其優(yōu)化函數(shù),應(yīng)用舉例 求函數(shù) 在區(qū)間(0,
27、5)內(nèi)的最小值 代碼 %首先編寫目標(biāo)函數(shù)的.m文件 function f=myfun(x) f=(x-3).2-1; %調(diào)用函數(shù)fminbnd x,fval=fminbnd(myfun,0,5) 結(jié)果 x = 3 fval = -1,2.3約束及其優(yōu)化函數(shù),函數(shù) fmincon 格式 x = fmincon(fun,x0,A,b) x = fmincon(fun,x0,A,b,Aeq,beq) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) x = fmincon(fun,x
28、0,A,b,Aeq,beq,lb,ub,nonlcon,options) x,fval = fmincon() x,fval,exitflag = fmincon() x,fval,exitflag,output = fmincon(),2.3約束及其優(yōu)化函數(shù),x,fval,exitflag,output,lambda = fmincon() x,fval,exitflag,output,lambda,grad = fmincon() x,fval,exitflag,output,lambda,grad,hessian = fmincon() 說明fun 是目標(biāo)函數(shù) options 設(shè)置優(yōu)化選
29、項(xiàng)參數(shù) fval 返回目標(biāo)函數(shù)在最優(yōu)解x點(diǎn)的函數(shù)值 exitflag 返回算法的終止標(biāo)志 output 返回優(yōu)化算法信息的一個(gè)數(shù)據(jù)結(jié)構(gòu) grad 返回目標(biāo)函數(shù)在最優(yōu)解x點(diǎn)的梯度 hessian 返回目標(biāo)函數(shù)在最游解x點(diǎn)Hessian矩陣值,nonlcon:函數(shù)由每一個(gè)輸入變量x計(jì)算出c和ceq,用于估計(jì)給定x點(diǎn)的非線性不等式 和非線性等式 。 和 見綜合應(yīng)用例。 應(yīng)用背景約束條件如下,求解函數(shù)f(x)的最小值,其中A、Aeq是矩陣,b、x、beq、lb、ub均是向量,2.3約束及其優(yōu)化函數(shù),應(yīng)用舉例計(jì)算使函數(shù) 取最小值時(shí)的x值, ,約束條件為 分析:將約束條件化為兩個(gè)不等式 : 從而可將它們寫
30、成矩陣不等式的形式: 其中A=-1,-2,-2;1,2,2,b=0;27,2.3約束及其優(yōu)化函數(shù),代碼:%首先編寫目標(biāo)函數(shù)的.m文件 function f=myfun(x) f=-x(1)*x(2)*x(3); x0=10;10;10%起始點(diǎn) A=-1,-2,-2;1,2,2; b=0;27; x,fval=fmincon(myfun,x0,A,b),2.3約束及其優(yōu)化函數(shù),解得 x = 1.0e+006 * 2.0057 -0.5014 -0.5014 fval = -5.0426e+017,2.4綜合應(yīng)用,一、基礎(chǔ) 1、options:設(shè)置優(yōu)化選項(xiàng)參數(shù),它是一個(gè)結(jié)構(gòu)參數(shù),主要參數(shù)如下: D
31、isplay 設(shè)置顯示算法返回值的類別,“off”表示不顯示結(jié)果,“iter”表示每次迭代都顯示返回值,“final”表示只顯示最后返回值; MaxFunEval 設(shè)置算法中函數(shù)估計(jì)的最大數(shù)目; MaxIter 設(shè)置算法迭代的最大次數(shù); Tolx 設(shè)置使算法終止的x值。 Tolfun 設(shè)置使算法終止的f(x)值 LargeScale 是采用large-scale算法還是medium-scale算法,2.4綜合應(yīng)用,2、optimget函數(shù) 功能 獲取優(yōu)化算法的特征參數(shù)值。 工程應(yīng)用背景 優(yōu)化函數(shù)的語法中都帶有一個(gè)參數(shù)options,它是一個(gè)結(jié)構(gòu)參數(shù),可以通過調(diào)用optimget函數(shù)來獲取指定的
32、options結(jié)構(gòu)成員參數(shù)的值。 語法 val=optimget(options, param); val=optimget(options,param,default);,2.4綜合應(yīng)用,說明 一般來說,調(diào)用optimget函數(shù)時(shí)指定的param參數(shù)應(yīng)該在options中有定義;如果param 參數(shù)在options中沒有定義,則返回default指定的參數(shù)值。 實(shí)例分析 要返回某一優(yōu)化函數(shù)的options的Display的值。 分析: val=optimget(options,Display);,2.4綜合應(yīng)用,3、optimset函數(shù) 功能 設(shè)置或編輯優(yōu)化算法的特征參數(shù)值。 工程應(yīng)用背景
33、在實(shí)際應(yīng)用中,可能需要對(duì)優(yōu)化算法的特征結(jié)構(gòu)參數(shù)options的某些成員參數(shù)進(jìn)行具體設(shè)置或編輯以達(dá)到預(yù)期的效果,這時(shí)可以應(yīng)用optimset函數(shù) 語法 options=optimset(param1,value1, param2,value2,.) options=optimset(optimfun) options=optimset(oldoptions, param1,value1,.),2.4綜合應(yīng)用,options=optimset(oldoptions,newoptions) 說明 param 是options的成員特征參數(shù),value是其所要設(shè)置的值,oldoptions代表以前的優(yōu)
34、化參數(shù),newoptions代表另一個(gè)優(yōu)化參數(shù),從而用newoptions的非空參數(shù)值代替oldoptions中相應(yīng)的參數(shù)的值。 實(shí)例分析 (1)設(shè)置options 的Display屬性為iter,TolFun的屬性值為1e-8: options=optimset(Display, iter, TolFun,1e-8),2.4綜合應(yīng)用,(2)將oldoptions的值復(fù)制給newoptions: newoptions=optimset(oldoptions) (3)將oldoptions的值復(fù)制給 newoptions,同時(shí)改變其中的TolX屬性值為1e-8: newoptions=optimset(oldoptions, TolX,1e-8),2.4綜合應(yīng)用,二、范例 1、已知函數(shù) 求 且滿足非線形約束: 邊界約束:,2.4綜合應(yīng)用,分析 這樣的非線性約束優(yōu)化問題可以用MATLAB優(yōu)化工具箱中的fmincon函數(shù)來求解,因?yàn)榧s束為非線性約束,所以不能將約束條件信息直接包含在函數(shù)的輸入中,必須編寫函數(shù)返回在每一點(diǎn)x處的約
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026陜西寧強(qiáng)縣漢江源景區(qū)招聘考試參考試題及答案解析
- 2026西安經(jīng)開第十四小學(xué)舞蹈教師招聘考試備考試題及答案解析
- 2026四川德陽市第六人民醫(yī)院(東汽醫(yī)院)面向社會(huì)招聘編外人員10人考試參考試題及答案解析
- 2026磨憨開發(fā)投資有限責(zé)任公司市場(chǎng)化選聘高級(jí)管理人員2人(云南)考試備考題庫(kù)及答案解析
- 2026福建莆田市城廂區(qū)考核招聘編內(nèi)新任教師20人考試參考試題及答案解析
- 2026重慶合川區(qū)人民醫(yī)院招聘8人考試備考試題及答案解析
- 2026年甘肅蘭州紅古區(qū)醫(yī)保局招聘公益性崗位人員考試備考題庫(kù)及答案解析
- 2026渭南市富平縣和諧幼兒園招聘(4人)考試備考試題及答案解析
- 2026年桂林師范高等??茖W(xué)校單招綜合素質(zhì)考試備考題庫(kù)帶答案解析
- 2026海南??谑旋埲A區(qū)勞動(dòng)就業(yè)和社會(huì)保障管理中心招聘公益性崗位工作人員4人考試參考試題及答案解析
- 《生活中的經(jīng)濟(jì)學(xué)》課件
- 地質(zhì)勘查現(xiàn)場(chǎng)安全風(fēng)險(xiǎn)管控清單
- JJG 52-2013彈性元件式一般壓力表、壓力真空表和真空表
- 高考生物學(xué)二輪復(fù)習(xí)備課素材:多變量實(shí)驗(yàn)題的類型及審答思維
- 松下panasonic-經(jīng)銷商傳感器培訓(xùn)
- 瀝青瀝青混合料試驗(yàn)作業(yè)指導(dǎo)書
- 建設(shè)工程項(xiàng)目施工風(fēng)險(xiǎn)管理課件
- 口腔門診行政人事制度
- 護(hù)理死亡病例討論總結(jié)
- 鋼板樁支護(hù)工程投標(biāo)文件(54頁)
- 國(guó)家職業(yè)技能標(biāo)準(zhǔn) (2021年版) 無人機(jī)裝調(diào)檢修工
評(píng)論
0/150
提交評(píng)論