版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
優(yōu)化設(shè)計(jì)實(shí)驗(yàn)課件現(xiàn)代工程計(jì)算-MATLAB優(yōu)化設(shè)計(jì)實(shí)驗(yàn)課件現(xiàn)代工程計(jì)算目錄第1章MATLAB基礎(chǔ)第2章優(yōu)化計(jì)算目錄第1章MATLAB基礎(chǔ)1.1MATLAB環(huán)境簡介1.2數(shù)據(jù)表示1.3矩陣運(yùn)算1.4MATLAB的圖形系統(tǒng)簡介
1.5源文件(M-文件)第1章MATLAB基礎(chǔ)1.1MATLAB環(huán)境簡介1.1MATLAB窗口
啟動(dòng)MATLAB其窗口如右1.1MATLAB窗口啟動(dòng)MATLAB1.1MATLAB窗口1、CommandWindow(命令窗口)一行可寫入一個(gè)或多個(gè)命令,命令之間用逗號(hào)或分號(hào)隔開,如果命令尾帶分號(hào)將不顯示該命令的執(zhí)行結(jié)果;如果命令有返回結(jié)果,如果不賦給自定義變量,將默認(rèn)賦給變量ans;變量還可有續(xù)行;最后用回車提交命令。命令窗口常用鍵↑鍵—顯示前個(gè)命令↓鍵—顯示后個(gè)命令Esc鍵-取消輸入Ctrl+x—剪切Ctrl+c—復(fù)制1.1MATLAB窗口1、CommandWindow(命1.1MATLAB窗口2、Workspace(工作區(qū))程序運(yùn)行中的自定義變量和默認(rèn)變量都包含在工作區(qū)中??赏ㄟ^工作區(qū)觀察變量的大小、類型,雙擊變量名可查看數(shù)值大小。 也可用who和whos命令查看3、CommandHistory(命令記錄)記錄了CommandWindow中的每一條命令,雙擊CommandHistory中的命令,即可重復(fù)那條命令。1.1MATLAB窗口2、Workspace(工作區(qū))1.1MATLAB的幫助系統(tǒng)
4.幫助命令:help文件名或函數(shù)名
幫助菜單:
演示命令:demo總體看,matlab可以被視為一個(gè)計(jì)算工具、繪圖工具、編程工具1.1MATLAB的幫助系統(tǒng)
4.幫助命令:hel1.2數(shù)據(jù)表示
1.2.1數(shù)據(jù)類型有整型、實(shí)型、復(fù)型、字符串四種類型1、常數(shù)1)整型常數(shù):-100102)實(shí)型常數(shù):0.3.33.-3914e-2(表示范圍約10±308)3)復(fù)型常數(shù):1+2i3.5-6.18i1+3.2i4)字符串常數(shù):'MATLAB''Ican''tdo.'(兩個(gè)連寫的單撇號(hào)表示一個(gè)單撇號(hào))注意:沒有邏輯型,但與C語言那樣,非0為真,0為假
1.2數(shù)據(jù)表示
1.2.1數(shù)據(jù)類型1.2.1數(shù)據(jù)類型2、變量變量用標(biāo)識(shí)符表示(字母打頭、字母、數(shù)字、下劃線組成,長度≤19)??梢院戏ǔ霈F(xiàn)而定義。區(qū)分大小寫字母,以當(dāng)前值定義其類型。3、函數(shù)名函數(shù)名用標(biāo)識(shí)符表示。4、特殊常數(shù)ANS、PI等。
1.2.1數(shù)據(jù)類型2、變量1.2.1數(shù)據(jù)的輸出格式輸出格式:SHORT按5位小數(shù)(含小數(shù)點(diǎn)、下同)輸出LONG按15位小數(shù)(含小數(shù)點(diǎn)、下同)輸出SHORTe按5位小數(shù)、科學(xué)記數(shù)方式輸出LONGe按15位小數(shù)、科學(xué)記數(shù)方式輸出HEX按16進(jìn)制輸出1.2.1數(shù)據(jù)的輸出格式輸出格式:1.2.1數(shù)據(jù)的輸出格式在MATLAB中,數(shù)據(jù)的存儲(chǔ)和運(yùn)算都以雙精度進(jìn)行,但輸出結(jié)果可指定格式。指定輸出格式的方法有兩種:1菜單命令法V6.1中,選擇File中的Preferences命令,在General、CommandWindow等項(xiàng)目中設(shè)置。2使用Format命令法格式:Format格式串1.2.1數(shù)據(jù)的輸出格式在MATLAB中,數(shù)據(jù)的存儲(chǔ)和運(yùn)1.2.1數(shù)據(jù)的輸出格式例如:formatlonge5/3ans=1.66666666666667e+000formatrat0.75ans=3/41.2.1數(shù)據(jù)的輸出格式例如:1.2.2數(shù)組1.2.2數(shù)組分為行向量、列向量、矩陣。普通變量可看成1×1數(shù)組。1、創(chuàng)建數(shù)組的基本方法1)直接列表定義數(shù)組
變量=[元素值1元素值2…元素值n]變量=[元素值1,元素值2,…,元素值n]變量=[行1各元素;行2各元素;…;行n各元素]例如:x=[1234567890]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ù)組1.2.2數(shù)組1.2.2數(shù)組2)域表定義數(shù)組
變量=初值:增量:終值|初值:終值變量=(初值:增量:終值)*常數(shù)例如:x=0:0.02:10y=1:80z=(1:0.1:7)*10e-51.2.2數(shù)組2)域表定義數(shù)組1.2.2數(shù)組3)利用函數(shù)定義數(shù)組
變量=linspace(初值,終值,元素個(gè)數(shù))如:x=linspace(0,pi,11)
的結(jié)果為:
x=Columns1through400.31420.62830.9425Columns5through81.25661.57081.88502.1991Columns9through112.51332.82743.1416
1.2.2數(shù)組3)利用函數(shù)定義數(shù)組1.2.2數(shù)組2、數(shù)組的訪問(一維)數(shù)組名表示全體元素?cái)?shù)組名(k)表示第k元素?cái)?shù)組名(k1:k2)表示第k1到k2元素?cái)?shù)組名(k1:k2:k3)表示第k1、k1+k2、k1+2k2,…,到k3元素?cái)?shù)組名([k1,k2,…,kn])表示第k1,k2,…,kn元素其中:kp也可為初值:終值或初值:增量:終值的形式。1.2.2數(shù)組2、數(shù)組的訪問(一維)1.2.2數(shù)組例如:a=1:2:15則:13a(2)5a(3:5)7a(5:-1:2)9a([2,6,8])111315a的值1.2.2數(shù)組例如:a=1:2:15a的值1.2.3數(shù)組運(yùn)算1、數(shù)組的基本運(yùn)算設(shè)有數(shù)組變量或常量1)一維數(shù)組拼接u=[ax]結(jié)果為[a1…anx1…xm]或u=[ac1c2…ck]結(jié)果為[a1…anc1c2…ck]2)轉(zhuǎn)置a.'點(diǎn)轉(zhuǎn)置a'共軛轉(zhuǎn)置
1.2.3數(shù)組運(yùn)算1、數(shù)組的基本運(yùn)算1.2.3數(shù)組運(yùn)算2.純量與數(shù)組的算術(shù)運(yùn)算aωc1或c1ωa其中ω可為+、-、*結(jié)果為[a1ωc1a2ωc1…anωc1]或[c1ωa1c1ωa2…c1ωan]3.數(shù)組加(減)使兩數(shù)組的對(duì)應(yīng)各元素相加(減)a+b結(jié)果為[a1+b1a2+b2…an+bn]a–b結(jié)果為[a1–b1a2–b2…an–bn](a與b的維數(shù)必須相同)1.2.3數(shù)組運(yùn)算2.純量與數(shù)組的算術(shù)運(yùn)算1.2.3數(shù)組運(yùn)算4.數(shù)組點(diǎn)乘使兩數(shù)組的對(duì)應(yīng)元素相乘a.*b結(jié)果為[a1*b1a2*b2…an*bn](a與b的維數(shù)必須相同)5.數(shù)組點(diǎn)正除(右除)使兩數(shù)組的對(duì)應(yīng)元素正除a./b結(jié)果為:
(a、b維數(shù)必須相同)1.2.3數(shù)組運(yùn)算4.數(shù)組點(diǎn)乘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é)果為[a1^c1a2^c1…an^c1]c1.^a結(jié)果為[c1^a1c1^a2…c1^an]a.^b結(jié)果為[a1^b1a2^b2…an^bn]1.2.3數(shù)組運(yùn)算6.數(shù)組點(diǎn)反除(左除)a.\b1.2.3數(shù)組運(yùn)算8、1數(shù)組和0數(shù)組1)1數(shù)組ones(n)建立n×n全為1的數(shù)組ones(r,c)建立r行c列的1數(shù)組2)0數(shù)組zeros(n)建立n×n全為0的數(shù)組zeros(r,c)建立r行c列的0數(shù)組1.2.3數(shù)組運(yùn)算8、1數(shù)組和0數(shù)組1.2.3數(shù)組運(yùn)算9.用邏輯數(shù)組操作一個(gè)數(shù)組對(duì)數(shù)組的邏輯運(yùn)算產(chǎn)生邏輯數(shù)組,且結(jié)果中用1表示真,0表示假如:x=–3:3x=–3–2–10123t=abs(x)>1%t為邏輯數(shù)組t=1100011y=x(t)%提取t中為真對(duì)應(yīng)的x元素y=–3–2231.2.3數(shù)組運(yùn)算9.用邏輯數(shù)組操作一個(gè)數(shù)組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)行~(非)運(yùn)算如:
A&BA|BXOR(A,B)~AA&21.2.3數(shù)組運(yùn)算對(duì)數(shù)組有以下的邏輯運(yùn)算:1.3矩陣運(yùn)算二維數(shù)組(矩陣)的訪問g(r,c)訪問gr,c元素g(r,:)訪問g中第r行各元素g(:,c)訪問g中第r列各元素g(i)訪問g按列排列后的第i個(gè)元素2.插入新元素而擴(kuò)展如:
A=[1,2,3;4,5,6;7,8,9];
插入:A(2,6)=10
插入后,A變成3行6列矩陣,未定義的新元素值內(nèi)定為0。即1.3矩陣運(yùn)算二維數(shù)組(矩陣)的訪問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的各列元素倒排生成BB=7894561231.3矩陣運(yùn)算3.重排1.3矩陣運(yùn)算4.提取如:A(:,[13])%提取A的第1、3列A(1:2,2:3)%提取A中前兩行的后兩列設(shè)C=[13]則:A(C,C)%提取A第1、3行中第1、3列各元素,效果與A([13],[13])相同.1.3矩陣運(yùn)算4.提取1.3矩陣運(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)算5.置空(刪去某行或某列)1.3矩陣運(yùn)算6.置零如:A(2,:)=[0,0,0]
將把A的第2行置零。注意:不能寫成A(2,:)=07.數(shù)組的規(guī)模s=size(A)
生成行向量s,值為A的行數(shù),列數(shù)[r,c]=size(A)
返回A的行數(shù)r,列數(shù)cr=size(A,1)返回A的行數(shù)rc=size(A,2)返回A的列數(shù)1.3矩陣運(yùn)算6.置零1.3矩陣運(yùn)算8.矩陣乘設(shè)gm×n和hn×m,則g*h結(jié)果為m×m矩陣h*g結(jié)果為n×n矩陣注意:矩陣乘(*)與數(shù)組乘(.*)的區(qū)別9.矩陣除矩陣正除(右除):A/B矩陣反除(左除):A\B由于在MATLAB中是根據(jù)關(guān)系式:B\A=(A'/B')’所以A\B相當(dāng)于A–1×B1.3矩陣運(yùn)算8.矩陣乘1.3矩陣運(yùn)算10.矩陣乘方☆矩陣的標(biāo)量乘方A^p當(dāng)p為整數(shù)時(shí),A應(yīng)為方陣:p>0則A^p=A*A*…*Ap次p=0則A^p=A^0等于與A同維的單位矩陣p<0則A^p=inv(A^abs(p))即求A自乘|p|次后的逆矩陣1.3矩陣運(yùn)算10.矩陣乘方1.3矩陣運(yùn)算11.逆矩陣?yán)胕nv函數(shù)可以求得逆矩陣?yán)篈=[12;32] x=inv(A)則x=[-0.50.5;0.75-0.25]若I=inv(A)*A則I=[10;01]12.特征向量利用eig函數(shù)可以求得矩陣的特征向量1.3矩陣運(yùn)算11.逆矩陣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.3矩陣運(yùn)算[練習(xí)]輸入數(shù)組1.4MATLAB圖形系統(tǒng)簡介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)簡介1.PLOT命令1.4MATLAB圖形系統(tǒng)簡介3.GRIDON命令 用來顯示繪圖網(wǎng)格4.編輯圖形對(duì)象屬性 點(diǎn)擊工具欄上的箭頭按鈕(editplot),選中繪制的圖形,單擊右鍵,選“properties”命令。 linestyle linewidthlinecolor markerstylemarkersizemarkercolor5.添加輔助說明 點(diǎn)擊工具欄上的A(inserttext)和右箭頭(insertarrow)按鈕,在圖形中添加輔助說明的箭頭和文字1.4MATLAB圖形系統(tǒng)簡介3.GRIDON命令1.4MATLAB圖形系統(tǒng)簡介6.PATCH命令PATCH命令用來繪制二維面例:在命令窗口輸入X=[5,6,7];y=[8,12,6];z=[5,4,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.4MATLAB圖形系統(tǒng)簡介6.PATCH命令1.5源文件(M-文件)分為兩類:函數(shù)文件和非函數(shù)文件。都用擴(kuò)展名.M1.5.1函數(shù)文件(相當(dāng)于子程序)格式1(無返回值函數(shù))Function函數(shù)名(輸入表)%稱為函數(shù)頭
函數(shù)體
例如:function
box(opt_box);格式2(有返回值函數(shù))function[輸出表]=函數(shù)名(輸入表)
函數(shù)體1.5源文件(M-文件)分為兩類:函數(shù)文件和非函數(shù)文件。都1.5.1函數(shù)文件其中:[輸出表]是函數(shù)的返回值,若輸出表中只有一項(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.1函數(shù)文件其中:[輸出表]是函數(shù)的返回值,若輸出1.5.2非函數(shù)文件實(shí)例:見例3.7.1文件objfun.m為函數(shù)文件;文件main.m為非函數(shù)文件1.5.2非函數(shù)文件是無函數(shù)頭的M文件,由若干命令和注釋構(gòu)成。相當(dāng)于批處理文件或主程序如:
%Filenameisasine.mx=0:0.1:2*pi;y=sin(x);plot(x,y)%可包含漢字注釋1.5.2非函數(shù)文件實(shí)例:見例3.7.1文件obj1.5.3M-文件的操作1、建立新M-文件在命令窗中選File/New/M-file命令,打開編輯窗口可同時(shí)打開多個(gè)M文件2、保存M-文件在文本編輯器中選File/SaveAs…命令1.5.3M-文件的操作1、建立新M-文件1.5.3M-文件的操作3、編輯M-文件在命令窗口/文本編輯器中選File/Open…
命令4運(yùn)行M-文件在文本編輯器中選Debug/Run
命令或按F5鍵或在命令窗口使用命令行調(diào)用,格式為:文件名1.5.3M-文件的操作3、編輯M-文件第2章優(yōu)化計(jì)算2.1線性規(guī)劃及其優(yōu)化工具箱函數(shù)2.2無約束非線性及其優(yōu)化函數(shù)2.3約束及其優(yōu)化函數(shù)2.4綜合應(yīng)用第2章優(yōu)化計(jì)算2.1線性規(guī)劃及其優(yōu)化工具箱函數(shù)2.1線性規(guī)劃及其優(yōu)化函數(shù)線性規(guī)劃問題是目標(biāo)函數(shù)和約束條件均為線性函數(shù)的問題,MATLAB解決的線性規(guī)劃問題的標(biāo)準(zhǔn)形式為:
其中:。2.1線性規(guī)劃及其優(yōu)化函數(shù)線性規(guī)劃問題是目標(biāo)函數(shù)和約束條件均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]=linprog(…)[x,fval,exitflag,output]=linprog(…)[x,fval,exitflag,output,lambda]=linprog(…)2.1線性規(guī)劃及其優(yōu)化函數(shù)[函數(shù)]linprog2.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ù)[說明]2.1線性規(guī)劃及其優(yōu)化函數(shù)[應(yīng)用舉例]求使函數(shù)取最小值的x值,且滿足約束條件:
2.1線性規(guī)劃及其優(yōu)化函數(shù)[應(yīng)用舉例]2.1線性規(guī)劃及其優(yōu)化函數(shù)[代碼]f=[-5;-4;-6];A=[1-11;324;320];b=[20;42;30];lb=zeros(3,1);[x,fval]=linprog(f,A,b,[],[],lb)[結(jié)果]x=0.000015.00003.0000fval=-78.00002.1線性規(guī)劃及其優(yōu)化函數(shù)[代碼]f=[-5;-4;[練習(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)品各多少件,才能獲得最大的利潤。2.1線性規(guī)劃及其優(yōu)化函數(shù)提示:[練習(xí)]解下面線性規(guī)劃問題某車間生產(chǎn)甲、乙兩種產(chǎn)品。生產(chǎn)甲種2.2無約束非線性及其優(yōu)化函數(shù)[函數(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ù)[函數(shù)]fminsearch2.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ù)[說明]2.2無約束非線性及其優(yōu)化函數(shù)[應(yīng)用舉例]求函數(shù)取最小值時(shí)的值。[代碼]%首先編寫f(x)的.m文件functionf=myfun(x)f=sin(x)+3;%然后調(diào)用函數(shù)fminsearchx0=2;%起始點(diǎn)[x,fval]=fminsearch(myfun,x0)[結(jié)果]x=4.7124fval=2.00002.2無約束非線性及其優(yōu)化函數(shù)[應(yīng)用舉例]求函數(shù)[練習(xí)]的最小值提示:[x,fval]=fminsearch(fun,x0)的基本格式不能動(dòng)。因此x和x0應(yīng)為1×2向量,目標(biāo)函數(shù)可寫成2.2無約束非線性及其優(yōu)化函數(shù)或[練習(xí)]2.2無約束非線性及其優(yōu)化函數(shù)[函數(shù)]fminunc[格式]x=fminunc(fun,x0)x=fminunc(fun,x0,options)[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ù)[函數(shù)]fminunc2.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)解x點(diǎn)的梯度hessian返回目標(biāo)函數(shù)在最優(yōu)解x點(diǎn)的Hessian矩陣值2.2無約束非線性及其優(yōu)化函數(shù)[說明]2.2無約束非線性及其優(yōu)化函數(shù)[應(yīng)用舉例]的最小值[代碼]%首先編寫目標(biāo)的.m文件functionf=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ù)[應(yīng)用舉例]2.2無約束非線性及其優(yōu)化函數(shù)[結(jié)果]x=1.0e-008*-0.75120.2479fval=1.3818e-0162.2無約束非線性及其優(yōu)化函數(shù)[結(jié)果]2.3約束及其優(yōu)化函數(shù)[函數(shù)]fminbnd[格式]x=fminbnd(fun,x1,x2)x=fminbnd(fun,x1,x2,options)[x,fval]=fminbnd(…)[x,fval,exitflag]=fminbnd(…)[x,fval,exitflag,output]=fminbnd(…)[應(yīng)用背景]給定區(qū)間x1<x<x2,求函數(shù)f(x)的最小值。X可以是多元向量2.3約束及其優(yōu)化函數(shù)[函數(shù)]fminbnd[應(yīng)用背景]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ù)[說明]2.3約束及其優(yōu)化函數(shù)[應(yīng)用舉例]求函數(shù)在區(qū)間(0,5)內(nèi)的最小值[代碼]%首先編寫目標(biāo)函數(shù)的.m文件functionf=myfun(x)f=(x-3).^2-1;%調(diào)用函數(shù)fminbnd[x,fval]=fminbnd(myfun,0,5)[結(jié)果]x=3fval=-12.3約束及其優(yōu)化函數(shù)[應(yīng)用舉例]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,x0,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ù)[函數(shù)]fmincon2.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)化選項(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矩陣值2.3約束及其優(yōu)化函數(shù)[x,fval,exitflag,ou 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均是向量 nonlcon:函數(shù)由每一個(gè)輸入變量x計(jì)算出c和ceq,2.3約束及其優(yōu)化函數(shù)[應(yīng)用舉例]計(jì)算使函數(shù)取最小值時(shí)的x值,,約束條件為分析:將約束條件化為兩個(gè)不等式:
從而可將它們寫成矩陣不等式的形式:
其中A=[-1,-2,-2;1,2,2],b=[0;27]2.3約束及其優(yōu)化函數(shù)[應(yīng)用舉例]計(jì)算使函數(shù)2.3約束及其優(yōu)化函數(shù)代碼:%首先編寫目標(biāo)函數(shù)的.m文件functionf=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ù)代碼:%首先編寫目標(biāo)函數(shù)的.m文件2.3約束及其優(yōu)化函數(shù)解得x=1.0e+006*2.0057-0.5014-0.5014fval=-5.0426e+0172.3約束及其優(yōu)化函數(shù)解得2.4綜合應(yīng)用一、基礎(chǔ)1、options:設(shè)置優(yōu)化選項(xiàng)參數(shù),它是一個(gè)結(jié)構(gòu)參數(shù),主要參數(shù)如下:Display設(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)用一、基礎(chǔ)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ù)來獲取指定的options結(jié)構(gòu)成員參數(shù)的值。[語法]val=optimget(options,‘param’);val=optimget(options,‘param’,default);2.4綜合應(yīng)用2、optimget函數(shù)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)用[說明]2.4綜合應(yīng)用3、optimset函數(shù)[功能]設(shè)置或編輯優(yōu)化算法的特征參數(shù)值。[工程應(yīng)用背景]在實(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)用3、optimset函數(shù)2.4綜合應(yīng)用options=optimset(oldoptions,newoptions)[說明]param是options的成員特征參數(shù),value是其所要設(shè)置的值,oldoptions代表以前的優(yōu)化參數(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)用options=optimset(oldopt2.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)用(2)將oldoptions的值復(fù)制給newo2.4綜合應(yīng)用二、范例1、已知函數(shù)求且滿足非線形約束:邊界約束:2.4綜合應(yīng)用二、范例2.4綜合應(yīng)用[分析]這樣的非線性約束優(yōu)化問題可以用MATLAB優(yōu)化工具箱中的fmincon函數(shù)來求解,因?yàn)榧s束為非線性約束,所以不能將約束條件信息直接包含在函數(shù)的輸入中,必須編寫函數(shù)返回在每一點(diǎn)x處的約束值,然后再調(diào)用優(yōu)化函數(shù)fmincon;另一方面,fmincon函數(shù)要求的約束條件一般為c(x)≤0,所以將約束改為:2.4綜合應(yīng)用[分析]2.4綜合應(yīng)用[程序清單]%編寫目標(biāo)函數(shù)functiony=objfun(x)y=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);%編寫返回約束值的函數(shù)function[c,ceq]=confun(x)%非線性不等式約束C=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];2.4綜合應(yīng)用[程序清單]2.4綜合應(yīng)用%線形等式約束ceq=[];%初始點(diǎn)x0=[-1,1];%設(shè)置下界lb=[0,0];%無上界ub=[];2.4綜合應(yīng)用%線形等式約束2.4綜合應(yīng)用%采用標(biāo)準(zhǔn)算法options=optimset(‘largescale’,‘off’);[x,fval]=fmincon(‘objfun’,x0,[],[],[],[],lb,ub,‘confun’,options)[c,ceq]=confun(x);[結(jié)果輸出]x=01.5000fval=8.50002.4綜合應(yīng)用%采用標(biāo)準(zhǔn)算法2.4綜合應(yīng)用2、傳遞轉(zhuǎn)矩并承受彎矩的等截面軸的最優(yōu)化設(shè)計(jì)具體見書P164[分析]1、數(shù)學(xué)模型已建見書2、選用fmincon函數(shù)3、參數(shù)選?。翰牧掀胀ㄌ紕?cè)?800扭轉(zhuǎn)角許用值軸所傳遞的最大轉(zhuǎn)短矩1000N*m許用扭轉(zhuǎn)應(yīng)力110Mpa材料的剪切彈性模數(shù)81Gpa2.4綜合應(yīng)用2、傳遞轉(zhuǎn)矩并承受彎矩的等截面軸的最優(yōu)化設(shè)計(jì)2.4綜合應(yīng)用%編寫目標(biāo)函數(shù)()functiony=objfun(x)y=7800*pi*x(1)^2*x(2)/4;%編寫返回約束值的函數(shù)function[c,ceq]=confun(x)%不等式約束c=[16*0.01/pi/(x(1)^3)-110;32*0.01*x(2)/pi/81000/(x(1)^4)-5/180*pi];%等式約束ceq=[];2.4綜合應(yīng)用%編寫目標(biāo)函數(shù)()2.4綜合應(yīng)用%dmindmax----直徑上下界lmax----傳動(dòng)元件間距上下界%初始點(diǎn)x0=[-2,2];%設(shè)置下界lb=[0.05,0.8];%s設(shè)置上界ub=[0.2,1];%采用標(biāo)準(zhǔn)算法options=optimset('largescale','off');[x,w,existflag,output]=fmincon('objfun',x0,[],[],[],[],lb,ub,'confun',options)[c,ceq]=confun(x);2.4綜合應(yīng)用%dmindmax----直徑上下界lma2.4綜合應(yīng)用[結(jié)果]x=0.08710.8000w=37.2082即當(dāng)軸的直徑取87.1mm、傳動(dòng)元件間距取800mm時(shí),軸的質(zhì)量最小37.21kg。2.4綜合應(yīng)用[結(jié)果]2.4綜合應(yīng)用[練習(xí)]1、無約束優(yōu)化問題 教材P146計(jì)算3-13至3-17題2、約束優(yōu)化問題 教材P146、P147計(jì)算3-21至3-27題2.4綜合應(yīng)用[練習(xí)]優(yōu)化設(shè)計(jì)實(shí)驗(yàn)課件現(xiàn)代工程計(jì)算-MATLAB優(yōu)化設(shè)計(jì)實(shí)驗(yàn)課件現(xiàn)代工程計(jì)算目錄第1章MATLAB基礎(chǔ)第2章優(yōu)化計(jì)算目錄第1章MATLAB基礎(chǔ)1.1MATLAB環(huán)境簡介1.2數(shù)據(jù)表示1.3矩陣運(yùn)算1.4MATLAB的圖形系統(tǒng)簡介
1.5源文件(M-文件)第1章MATLAB基礎(chǔ)1.1MATLAB環(huán)境簡介1.1MATLAB窗口
啟動(dòng)MATLAB其窗口如右1.1MATLAB窗口啟動(dòng)MATLAB1.1MATLAB窗口1、CommandWindow(命令窗口)一行可寫入一個(gè)或多個(gè)命令,命令之間用逗號(hào)或分號(hào)隔開,如果命令尾帶分號(hào)將不顯示該命令的執(zhí)行結(jié)果;如果命令有返回結(jié)果,如果不賦給自定義變量,將默認(rèn)賦給變量ans;變量還可有續(xù)行;最后用回車提交命令。命令窗口常用鍵↑鍵—顯示前個(gè)命令↓鍵—顯示后個(gè)命令Esc鍵-取消輸入Ctrl+x—剪切Ctrl+c—復(fù)制1.1MATLAB窗口1、CommandWindow(命1.1MATLAB窗口2、Workspace(工作區(qū))程序運(yùn)行中的自定義變量和默認(rèn)變量都包含在工作區(qū)中。可通過工作區(qū)觀察變量的大小、類型,雙擊變量名可查看數(shù)值大小。 也可用who和whos命令查看3、CommandHistory(命令記錄)記錄了CommandWindow中的每一條命令,雙擊CommandHistory中的命令,即可重復(fù)那條命令。1.1MATLAB窗口2、Workspace(工作區(qū))1.1MATLAB的幫助系統(tǒng)
4.幫助命令:help文件名或函數(shù)名
幫助菜單:
演示命令:demo總體看,matlab可以被視為一個(gè)計(jì)算工具、繪圖工具、編程工具1.1MATLAB的幫助系統(tǒng)
4.幫助命令:hel1.2數(shù)據(jù)表示
1.2.1數(shù)據(jù)類型有整型、實(shí)型、復(fù)型、字符串四種類型1、常數(shù)1)整型常數(shù):-100102)實(shí)型常數(shù):0.3.33.-3914e-2(表示范圍約10±308)3)復(fù)型常數(shù):1+2i3.5-6.18i1+3.2i4)字符串常數(shù):'MATLAB''Ican''tdo.'(兩個(gè)連寫的單撇號(hào)表示一個(gè)單撇號(hào))注意:沒有邏輯型,但與C語言那樣,非0為真,0為假
1.2數(shù)據(jù)表示
1.2.1數(shù)據(jù)類型1.2.1數(shù)據(jù)類型2、變量變量用標(biāo)識(shí)符表示(字母打頭、字母、數(shù)字、下劃線組成,長度≤19)??梢院戏ǔ霈F(xiàn)而定義。區(qū)分大小寫字母,以當(dāng)前值定義其類型。3、函數(shù)名函數(shù)名用標(biāo)識(shí)符表示。4、特殊常數(shù)ANS、PI等。
1.2.1數(shù)據(jù)類型2、變量1.2.1數(shù)據(jù)的輸出格式輸出格式:SHORT按5位小數(shù)(含小數(shù)點(diǎn)、下同)輸出LONG按15位小數(shù)(含小數(shù)點(diǎn)、下同)輸出SHORTe按5位小數(shù)、科學(xué)記數(shù)方式輸出LONGe按15位小數(shù)、科學(xué)記數(shù)方式輸出HEX按16進(jìn)制輸出1.2.1數(shù)據(jù)的輸出格式輸出格式:1.2.1數(shù)據(jù)的輸出格式在MATLAB中,數(shù)據(jù)的存儲(chǔ)和運(yùn)算都以雙精度進(jìn)行,但輸出結(jié)果可指定格式。指定輸出格式的方法有兩種:1菜單命令法V6.1中,選擇File中的Preferences命令,在General、CommandWindow等項(xiàng)目中設(shè)置。2使用Format命令法格式:Format格式串1.2.1數(shù)據(jù)的輸出格式在MATLAB中,數(shù)據(jù)的存儲(chǔ)和運(yùn)1.2.1數(shù)據(jù)的輸出格式例如:formatlonge5/3ans=1.66666666666667e+000formatrat0.75ans=3/41.2.1數(shù)據(jù)的輸出格式例如:1.2.2數(shù)組1.2.2數(shù)組分為行向量、列向量、矩陣。普通變量可看成1×1數(shù)組。1、創(chuàng)建數(shù)組的基本方法1)直接列表定義數(shù)組
變量=[元素值1元素值2…元素值n]變量=[元素值1,元素值2,…,元素值n]變量=[行1各元素;行2各元素;…;行n各元素]例如:x=[1234567890]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ù)組1.2.2數(shù)組1.2.2數(shù)組2)域表定義數(shù)組
變量=初值:增量:終值|初值:終值變量=(初值:增量:終值)*常數(shù)例如:x=0:0.02:10y=1:80z=(1:0.1:7)*10e-51.2.2數(shù)組2)域表定義數(shù)組1.2.2數(shù)組3)利用函數(shù)定義數(shù)組
變量=linspace(初值,終值,元素個(gè)數(shù))如:x=linspace(0,pi,11)
的結(jié)果為:
x=Columns1through400.31420.62830.9425Columns5through81.25661.57081.88502.1991Columns9through112.51332.82743.1416
1.2.2數(shù)組3)利用函數(shù)定義數(shù)組1.2.2數(shù)組2、數(shù)組的訪問(一維)數(shù)組名表示全體元素?cái)?shù)組名(k)表示第k元素?cái)?shù)組名(k1:k2)表示第k1到k2元素?cái)?shù)組名(k1:k2:k3)表示第k1、k1+k2、k1+2k2,…,到k3元素?cái)?shù)組名([k1,k2,…,kn])表示第k1,k2,…,kn元素其中:kp也可為初值:終值或初值:增量:終值的形式。1.2.2數(shù)組2、數(shù)組的訪問(一維)1.2.2數(shù)組例如:a=1:2:15則:13a(2)5a(3:5)7a(5:-1:2)9a([2,6,8])111315a的值1.2.2數(shù)組例如:a=1:2:15a的值1.2.3數(shù)組運(yùn)算1、數(shù)組的基本運(yùn)算設(shè)有數(shù)組變量或常量1)一維數(shù)組拼接u=[ax]結(jié)果為[a1…anx1…xm]或u=[ac1c2…ck]結(jié)果為[a1…anc1c2…ck]2)轉(zhuǎn)置a.'點(diǎn)轉(zhuǎn)置a'共軛轉(zhuǎn)置
1.2.3數(shù)組運(yùn)算1、數(shù)組的基本運(yùn)算1.2.3數(shù)組運(yùn)算2.純量與數(shù)組的算術(shù)運(yùn)算aωc1或c1ωa其中ω可為+、-、*結(jié)果為[a1ωc1a2ωc1…anωc1]或[c1ωa1c1ωa2…c1ωan]3.數(shù)組加(減)使兩數(shù)組的對(duì)應(yīng)各元素相加(減)a+b結(jié)果為[a1+b1a2+b2…an+bn]a–b結(jié)果為[a1–b1a2–b2…an–bn](a與b的維數(shù)必須相同)1.2.3數(shù)組運(yùn)算2.純量與數(shù)組的算術(shù)運(yùn)算1.2.3數(shù)組運(yùn)算4.數(shù)組點(diǎn)乘使兩數(shù)組的對(duì)應(yīng)元素相乘a.*b結(jié)果為[a1*b1a2*b2…an*bn](a與b的維數(shù)必須相同)5.數(shù)組點(diǎn)正除(右除)使兩數(shù)組的對(duì)應(yīng)元素正除a./b結(jié)果為:
(a、b維數(shù)必須相同)1.2.3數(shù)組運(yùn)算4.數(shù)組點(diǎn)乘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é)果為[a1^c1a2^c1…an^c1]c1.^a結(jié)果為[c1^a1c1^a2…c1^an]a.^b結(jié)果為[a1^b1a2^b2…an^bn]1.2.3數(shù)組運(yùn)算6.數(shù)組點(diǎn)反除(左除)a.\b1.2.3數(shù)組運(yùn)算8、1數(shù)組和0數(shù)組1)1數(shù)組ones(n)建立n×n全為1的數(shù)組ones(r,c)建立r行c列的1數(shù)組2)0數(shù)組zeros(n)建立n×n全為0的數(shù)組zeros(r,c)建立r行c列的0數(shù)組1.2.3數(shù)組運(yùn)算8、1數(shù)組和0數(shù)組1.2.3數(shù)組運(yùn)算9.用邏輯數(shù)組操作一個(gè)數(shù)組對(duì)數(shù)組的邏輯運(yùn)算產(chǎn)生邏輯數(shù)組,且結(jié)果中用1表示真,0表示假如:x=–3:3x=–3–2–10123t=abs(x)>1%t為邏輯數(shù)組t=1100011y=x(t)%提取t中為真對(duì)應(yīng)的x元素y=–3–2231.2.3數(shù)組運(yùn)算9.用邏輯數(shù)組操作一個(gè)數(shù)組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)行~(非)運(yùn)算如:
A&BA|BXOR(A,B)~AA&21.2.3數(shù)組運(yùn)算對(duì)數(shù)組有以下的邏輯運(yùn)算:1.3矩陣運(yùn)算二維數(shù)組(矩陣)的訪問g(r,c)訪問gr,c元素g(r,:)訪問g中第r行各元素g(:,c)訪問g中第r列各元素g(i)訪問g按列排列后的第i個(gè)元素2.插入新元素而擴(kuò)展如:
A=[1,2,3;4,5,6;7,8,9];
插入:A(2,6)=10
插入后,A變成3行6列矩陣,未定義的新元素值內(nèi)定為0。即1.3矩陣運(yùn)算二維數(shù)組(矩陣)的訪問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的各列元素倒排生成BB=7894561231.3矩陣運(yùn)算3.重排1.3矩陣運(yùn)算4.提取如:A(:,[13])%提取A的第1、3列A(1:2,2:3)%提取A中前兩行的后兩列設(shè)C=[13]則:A(C,C)%提取A第1、3行中第1、3列各元素,效果與A([13],[13])相同.1.3矩陣運(yùn)算4.提取1.3矩陣運(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)算5.置空(刪去某行或某列)1.3矩陣運(yùn)算6.置零如:A(2,:)=[0,0,0]
將把A的第2行置零。注意:不能寫成A(2,:)=07.數(shù)組的規(guī)模s=size(A)
生成行向量s,值為A的行數(shù),列數(shù)[r,c]=size(A)
返回A的行數(shù)r,列數(shù)cr=size(A,1)返回A的行數(shù)rc=size(A,2)返回A的列數(shù)1.3矩陣運(yùn)算6.置零1.3矩陣運(yùn)算8.矩陣乘設(shè)gm×n和hn×m,則g*h結(jié)果為m×m矩陣h*g結(jié)果為n×n矩陣注意:矩陣乘(*)與數(shù)組乘(.*)的區(qū)別9.矩陣除矩陣正除(右除):A/B矩陣反除(左除):A\B由于在MATLAB中是根據(jù)關(guān)系式:B\A=(A'/B')’所以A\B相當(dāng)于A–1×B1.3矩陣運(yùn)算8.矩陣乘1.3矩陣運(yùn)算10.矩陣乘方☆矩陣的標(biāo)量乘方A^p當(dāng)p為整數(shù)時(shí),A應(yīng)為方陣:p>0則A^p=A*A*…*Ap次p=0則A^p=A^0等于與A同維的單位矩陣p<0則A^p=inv(A^abs(p))即求A自乘|p|次后的逆矩陣1.3矩陣運(yùn)算10.矩陣乘方1.3矩陣運(yùn)算11.逆矩陣?yán)胕nv函數(shù)可以求得逆矩陣?yán)篈=[12;32] x=inv(A)則x=[-0.50.5;0.75-0.25]若I=inv(A)*A則I=[10;01]12.特征向量利用eig函數(shù)可以求得矩陣的特征向量1.3矩陣運(yùn)算11.逆矩陣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.3矩陣運(yùn)算[練習(xí)]輸入數(shù)組1.4MATLAB圖形系統(tǒng)簡介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)簡介1.PLOT命令1.4MATLAB圖形系統(tǒng)簡介3.GRIDON命令 用來顯示繪圖網(wǎng)格4.編輯圖形對(duì)象屬性 點(diǎn)擊工具欄上的箭頭按鈕(editplot),選中繪制的圖形,單擊右鍵,選“properties”命令。 linestyle linewidthlinecolor markerstylemarkersizemarkercolor5.添加輔助說明 點(diǎn)擊工具欄上的A(inserttext)和右箭頭(insertarrow)按鈕,在圖形中添加輔助說明的箭頭和文字1.4MATLAB圖形系統(tǒng)簡介3.GRIDON命令1.4MATLAB圖形系統(tǒng)簡介6.PATCH命令PATCH命令用來繪制二維面例:在命令窗口輸入X=[5,6,7];y=[8,12,6];z=[5,4,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.4MATLAB圖形系統(tǒng)簡介6.PATCH命令1.5源文件(M-文件)分為兩類:函數(shù)文件和非函數(shù)文件。都用擴(kuò)展名.M1.5.1函數(shù)文件(相當(dāng)于子程序)格式1(無返回值函數(shù))Function函數(shù)名(輸入表)%稱為函數(shù)頭
函數(shù)體
例如:function
box(opt_box);格式2(有返回值函數(shù))function[輸出表]=函數(shù)名(輸入表)
函數(shù)體1.5源文件(M-文件)分為兩類:函數(shù)文件和非函數(shù)文件。都1.5.1函數(shù)文件其中:[輸出表]是函數(shù)的返回值,若輸出表中只有一項(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.1函數(shù)文件其中:[輸出表]是函數(shù)的返回值,若輸出1.5.2非函數(shù)文件實(shí)例:見例3.7.1文件objfun.m為函數(shù)文件;文件main.m為非函數(shù)文件1.5.2非函數(shù)文件是無函數(shù)頭的M文件,由若干命令和注釋構(gòu)成。相當(dāng)于批處理文件或主程序如:
%Filenameisasine.mx=0:0.1:2*pi;y=sin(x);plot(x,y)%可包含漢字注釋1.5.2非函數(shù)文件實(shí)例:見例3.7.1文件obj1.5.3M-文件的操作1、建立新M-文件在命令窗中選File/New/M-file命令,打開編輯窗口可同時(shí)打開多個(gè)M文件2、保存M-文件在文本編輯器中選File/SaveAs…命令1.5.3M-文件的操作1、建立新M-文件1.5.3M-文件的操作3、編輯M-文件在命令窗口/文本編輯器中選File/Open…
命令4運(yùn)行M-文件在文本編輯器中選Debug/Run
命令或按F5鍵或在命令窗口使用命令行調(diào)用,格式為:文件名1.5.3M-文件的操作3、編輯M-文件第2章優(yōu)化計(jì)算2.1線性規(guī)劃及其優(yōu)化工具箱函數(shù)2.2無約束非線性及其優(yōu)化函數(shù)2.3約束及其優(yōu)化函數(shù)2.4綜合應(yīng)用第2章優(yōu)化計(jì)算2.1線性規(guī)劃及其優(yōu)化工具箱函數(shù)2.1線性規(guī)劃及其優(yōu)化函數(shù)線性規(guī)劃問題是目標(biāo)函數(shù)和約束條件均為線性函數(shù)的問題,MATLAB解決的線性規(guī)劃問題的標(biāo)準(zhǔn)形式為:
其中:。2.1線性規(guī)劃及其優(yōu)化函數(shù)線性規(guī)劃問題是目標(biāo)函數(shù)和約束條件均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]=linprog(…)[x,fval,exitflag,output]=linprog(…)[x,fval,exitflag,output,lambda]=linprog(…)2.1線性規(guī)劃及其優(yōu)化函數(shù)[函數(shù)]linprog2.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)志;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽公安職業(yè)學(xué)院《環(huán)境工程實(shí)驗(yàn)》2024 - 2025 學(xué)年第一學(xué)期期末試卷
- 深度解析(2026)《YBT 6260-2024 炭復(fù)合氧化亞硅》
- 2026年語言藝術(shù)與修辭運(yùn)用題庫及答案
- 2025年山東鋼鐵集團(tuán)有限公司社會(huì)招聘(13人)筆試參考題庫附帶答案詳解
- 2026年能源政策研究新能源開發(fā)與節(jié)能減排試題
- 網(wǎng)絡(luò)安全管理在企業(yè)中的實(shí)施策略
- 軋鋼技能大賽考試題庫及答案
- 2026年消化內(nèi)科內(nèi)鏡操作理論綜合考核試卷及答案
- 建筑演變基礎(chǔ)知識(shí)
- (一模)常德市2025-2026學(xué)年度上學(xué)期高三檢測考試語文試卷
- 2025年廣東省深圳市輔警招聘《行政職業(yè)能力測驗(yàn)》真題及答案
- 醫(yī)院醫(yī)療糾紛案例匯報(bào)
- 紅外線桑拿毯行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- 2025安徽職高單招試題及答案
- 《文獻(xiàn)檢索與科技論文寫作入門》課件(共八章)
- 2025至2030鑄鐵產(chǎn)業(yè)行業(yè)市場深度研究及發(fā)展前景投資可行性分析報(bào)告
- 機(jī)電設(shè)備安裝工程中電梯系統(tǒng)全生命周期質(zhì)量管控體系
- 碎石樁施工技術(shù)
- 2025年政府采購和招標(biāo)法考試試題及答案
- 2025中考九年級(jí)語文《標(biāo)點(diǎn)符號(hào)》復(fù)習(xí)練習(xí)題
- 智能化建筑機(jī)器人施工方案和技術(shù)措施
評(píng)論
0/150
提交評(píng)論