版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
最優(yōu)化方法
課程設計報告班級:姓名:學號:成績:2021年5月21日TOC\o"1-5"\h\z一、摘要1二、單純形算法2單純形算法的根本思路2算法流程圖3用matlab編寫源程序4二、黃金分割法7黃金分割法的根本思路7算法流程圖8用matlab編寫源程序9黃金分割法應用舉例11三、最速下降法11最速下降法的根本思路11算法流程圖13用matlab編寫源程序13最速下降法應用舉例13四、懲罰函數(shù)法17懲罰函數(shù)法的根本思路17算法流程圖18用matlab編寫源程序18懲罰函數(shù)法應用舉例19五、自我總結(jié)20六、參考文獻20運籌學是一門以人機系統(tǒng)的組織、治理為對象,應用數(shù)學和計算機等工具來研究各類有限資源的合理規(guī)劃使用并提供優(yōu)化決策方案的科學.通過對數(shù)據(jù)的調(diào)查、收集和統(tǒng)計分析,以及具體模型的建立.收集和統(tǒng)計上述擬定之模型所需要的各種根底數(shù)據(jù),并最終將數(shù)據(jù)整理形成分析和解決問題的具體模型.最優(yōu)化理論和方法日益受到重視,已經(jīng)滲透到生產(chǎn)、治理、商業(yè)、軍事、決策等各個領域,而最優(yōu)化模型與方法廣泛應用于工業(yè)、農(nóng)業(yè)、交通運輸、商業(yè)、國防、建筑、通信、政府機關(guān)等各個部門及各個領域.伴隨著計算機技術(shù)的高速開展,最優(yōu)化理論與方法的迅速進步為解決實際最優(yōu)化問題的軟件也在飛速發(fā)展.其中,MATLA歆件已經(jīng)成為最優(yōu)化領域應用最廣的軟件之一.有了MATLAB這個強大的計算平臺,既可以利用MATLA就化工具箱(OptimizationToolbox)中的函數(shù),又可以通過算法變成實現(xiàn)相應的最優(yōu)化計算.關(guān)鍵詞:優(yōu)化、線性規(guī)劃、黃金分割法、最速下降法、懲罰函數(shù)法二、單純形算法單純形算法的根本思路線性規(guī)劃問題的可行域是n維向量空間Rn中的多面凸集,其最優(yōu)值如果存在必在該凸集的某頂點處到達.頂點所對應的可行解稱為根本可行解.單純形法的根本思想是:先找出一個根本可行解,對它進行鑒別,看是否是最優(yōu)解;假設不是,那么根據(jù)一定法那么轉(zhuǎn)換到另一改良的根本可行解,再鑒別;假設仍不是,那么再轉(zhuǎn)換,按此重復進行.因根本可行解的個數(shù)有限,故經(jīng)有限次轉(zhuǎn)換必能得出問題的最優(yōu)解.如果問題無最優(yōu)解也可用此法判別.單純形法是從某一基可行解出發(fā),連續(xù)地尋找相鄰的基可行解,直到到達最優(yōu)的迭代過程,其實質(zhì)是解線性方程組.概述:根據(jù)單純形法的原理,在線性規(guī)劃問題中,決策變量〔限制變量〕x1,x2,…飛門的值稱為一個解,滿足所有的約束條件的解稱為可行解.使目標函數(shù)達到最大值〔或最小值〕的可行解稱為最優(yōu)解.這樣,一個最優(yōu)解能在整個由約束條件所確定的可行區(qū)域內(nèi)使目標函數(shù)到達最大值〔或最小值〕.求解線性規(guī)劃問題的目的就是要找出最優(yōu)解.用單純形法求解線性規(guī)劃問題所需的迭代次數(shù)主要取決于約束條件的個數(shù).現(xiàn)在一般的線性規(guī)劃問題都是應用單純形法標準軟件在計算機上求解,對于具有106個決策變量和104個約束條件的線性規(guī)劃問題已能在計算機上解得.求解時可能出現(xiàn)以下情況之一:①存在著一個最優(yōu)解;②存在著無窮多個最優(yōu)解;③不存在最優(yōu)解,這只在兩種情況下發(fā)生,即沒有可行解或各項約束條件不阻止目標函數(shù)的值無限增大〔或向負的方向無限增大〕.要縮小對最優(yōu)解的搜索范圍,就必須熟悉最優(yōu)解的一般性質(zhì),最優(yōu)解如果存在的話,那么它必然處于可行區(qū)域的邊界上.任何一項約束條件的邊界方程是用號來替換該約束條件中的或“學〞號而得到的.每一個邊界方程確定一個超平面.因此,可行區(qū)域的邊界是由那些滿足一個或同時滿足幾個邊界方程〔即處在作為邊界的一個或幾個超平面上〕的可行解所組成,而且最優(yōu)解必在其中.最優(yōu)解不僅是在可行區(qū)域的邊界上,而且也在這個區(qū)域的一個隔角上.一個可行解,如果不處在由另兩個可行解連接起來的任何線段上,它就是一個角點可行解.如果連接兩個角點可行解的線段處在可行區(qū)域的邊界上,這兩個角點可行解就稱為相鄰的角點可行解.角點可行解具有以下三個重要性質(zhì):①如果存在著一個最優(yōu)解,那么它必定是角點可行解.如果存在有多個最優(yōu)解,那么至少有兩個最優(yōu)解必定是相鄰的角點可行解.②只存在有限個數(shù)的角點可行解.③如果一個角點可行解按目標函數(shù)值來衡量時比其所有的相鄰角點可行解更好一些,那它就比所有其他角點可行解都更好,也就是最優(yōu)解.上述這些性質(zhì)構(gòu)成單純形法的原理根底.最后一個性質(zhì)的重要性在于它為一個角點可行解是否是最優(yōu)解提供了一種簡便的檢驗標準,因而毋需列舉所有的可行解.單純形法正是利用了這個性質(zhì),只要檢查少數(shù)的角點可行解,并且一旦這個最優(yōu)性檢驗獲得通過就可立即停止運算.
算法流程圖(1)、確定初始基可行解①從線性規(guī)劃標準形的系數(shù)矩陣中能直接找出m個線性獨立的單位向量;②對約束條件全為“<=〞連接的LP,化為標準形,左端添加松弛變量后即形成一個單位子矩陣;③約束條件中含有“<二〞或“二〞連接的方程,在插入剩余變量后找不到單位矩陣,那么必須采用“人造基〞法,(2)、單純形法的運算步驟可歸結(jié)為:①起始步驟——在一個角點可行解上開始.②迭代步驟——移動至一個更好一些的相鄰角點可行解(根據(jù)需要反復進行這一步驟).③停止法那么——在當前角點可行解比所有相鄰角點可行解都更好些時停止.當前角點可行解就是一個最優(yōu)解.單純形法的優(yōu)點及其成功之處在于它只需要較少的有限次數(shù)的迭代,即可找到最優(yōu)解.(3)、單純形法的算法流程如下:①把線性規(guī)劃問題的約束方程組表達成典范型方程組,找出根本可行解作為初始根本可行解.②假設根本可行解不存在,即約束條件有矛盾,那么問題無解.③假設根本可行解存在,從初始根本可行解作為起點,根據(jù)最優(yōu)性條件和可行性條件,引入非基變量取代某一基變量,找出目標函數(shù)值更優(yōu)的另一根本可行解.④按步驟3進行迭代,直到對應檢驗數(shù)滿足最優(yōu)性條件(這時目標函數(shù)值不能再改善),即得到問題的最優(yōu)解.⑤假設迭代過程中發(fā)現(xiàn)問題的目標函數(shù)值無界,那么終止迭代.轉(zhuǎn)軸^轉(zhuǎn)軸^寸換用matlab編寫源程序Matlab程序源代碼:simplexTab.m子函數(shù)functionsimplexTab(mat,numFreeVar)maxRow=length(mat(:,1));maxCol=length(mat(1,:));objEntryExcludingMaxPayOff=mat(maxRow,1:maxCol-2);[objEntbestColToPivot]=min(objEntryExcludingMaxPayOff);while(objEnt<0)lastColExcludingObjEnty=mat(1:(maxRow-1),maxCol);ithColExcludingObjEnty=mat(1:(maxRow-1),bestColToPivot);a=lastColExcludingObjEnty./ithColExcludingObjEnty;[valbestRowToPivot]=min(a);sprintf('thebestPivotis%drowand%dcol',bestRowToPivot,bestColToPivot)disp('單純形表化為:');[mat,[a;0]]disp('按任意鍵繼續(xù)');pause;if(val<0)[sindices]=sort(a);if(max(a)>0)count=1;while(s(count)<0)count=count+1;endbestRowToPivot=indices(count);endendif(length(a)==0)length(a)returnendmat=pivot(mat,bestRowToPivot,bestColToPivot);objEntryExcludingMaxPayOff=mat(maxRow,1:maxCol-2);[objEntbestColToPivot]=min(objEntryExcludingMaxPayOff);endsprintf('thebestPicotis%d行and%d列',bestRowToPivot,bestColToPivot)disp('單純形表化為:');[mat,[a;0]]disp('運行結(jié)束!’);interChange.m子函數(shù)functionnewMat=interChange(mat,row1,row2)temp=mat(row1,:);mat(row1,:)=mat(row2,:);mat(row2,:)=temp;newMat=mat;multiFromRowToRow.m子函數(shù)functionnewMat=multiFromRowToRow(mat,fromRow,toRow,multiplier)rG=mat(fromRow,:)*multiplier;mat(toRow,:)=rG+mat(toRow,:);newMat=mat;multMat.m子函數(shù)fuctionnewMat=multMat(mat,row,mult)%multiplyarowofamatrixbyanonzeroconstantmat(row,:)=mat(row,:)*mult;newMat=mat;—pivot.m子函數(shù)functionnewMat=pivot(mat,row,col)%normalizethisrowmat(row,:)=mat(row,:)./mat(row,col);%maketheleadinganumbera1forr=1:length(mat(:,1))if(r~=row)mat=multiFromRowToRow(mat,row,r,-mat(r,col));endendnewMat=mat;單純形算法應用舉例題目:使用單純形法解下面線性規(guī)劃問題:TOC\o"1-5"\h\z目標函數(shù)為:maxfXiX2X3;約束條件是:,7xi3x29x31St.8X15x24x316x19x25x31Xi,X2,X3
解:化為標準形式:max解:化為標準形式:maxgXiX2X30x40x50x677Xi3X29X3X40X50X68Xi5X24X30X4X50X66Xi9X25X30X40X5X6Xi,X2,X3,X4,X5,X60利用Matlab程序計算:命令窗口輸入:mat=[739i00i;8540i0i;69500ii;-i-i-i0000];numFreeVar=3;%自由變量個數(shù)simpleXTab(mat,numFreeVar)結(jié)果輸出:初始結(jié)果:ans=thebestPivotis2rowandicol單純形表化為:7.00003.00009.0000I.000000I.00000.I4298.00005.00004.00000I.00000I.00000.I2506.00009.00005.000000I.0000I.00000.I667-I.0000-I.0000-I.00000第一次轉(zhuǎn)換結(jié)果:ans=thebestPivotisirowand3col單純形表化為:00000-I.37505.5000I.0000-0.875000.I2500.0227I.00000.62500.500000.I25000.I2500.250005.25002.00000-0.7500I.00000.25000.I2500-0.3750-0.50000第二次轉(zhuǎn)換結(jié)果:ans=thebestPivotisirowand2col單純形表化為:0.I25000.I25000-0.2500I.00000.I8I8-0.I59I00.0227-0.0909I.00000.75000-0.09090.204500.II360.I5I505.75000-0.3636-0.43I8I.00000.20450.03560■■0.500000.09090.045500.I3640第三次轉(zhuǎn)換結(jié)果:ans=thebestPicotis3rowandicol單純形表化為:001.00000.1660-0.17790.04350.0316-0.09091.000000-0.04350.2609-0.13040.08700.151501.00000-0.0632-0.07510.17390.03560.03560000.05930.00790.08700.15420運行結(jié)束!〔并表示程序運行完畢〕最后單純形表為:XiX2X3X4X5X6bthetaA001.00000.1660-0.17790.04350.0316-0.09091.000000-0.04350.2609-0.13040.08700.151501.00000-0.0632-0.07510.17390.03560.0356判別數(shù)0000.05930.00790.08700.15420x(0.0316,0.0870,0.0356),g0.1542,fx1x2x30.1542所以該線性規(guī)劃的最優(yōu)解是g0.1542.黃金分割法黃金分割法的根本思路一維搜索是解函數(shù)極小值的方法之一,其解法思想為沿某一方向求目標函數(shù)的極小值點.一維搜索的解法很多,這里主要采用黃金分割法〔0.618法〕.該方法用不變的區(qū)間縮短率0.618代替斐波那契法每次不同的縮短率,從而可以看成是斐波那契法的近似,實現(xiàn)起來比擬容易,也易于人們所接受.黃金分割法是用于一元函數(shù)f〔x〕在給定初始區(qū)間[a,b]內(nèi)搜索極小點xmin的一種方法.它是優(yōu)化計算中的經(jīng)典算法,以算法簡單、收斂速度均勻、效果較好而著稱,是許多優(yōu)化算法的根底,但它只適用于一維區(qū)間上的凸函數(shù),即只在單峰區(qū)間內(nèi)才能進行一維尋優(yōu),其收斂效率較低.其根本原理是:依照“去劣存優(yōu)〞原那么、對稱原那么、以及等比收縮原那么來逐步縮小搜索區(qū)間.具體步驟是:在區(qū)間[a,b]內(nèi)取點:a[,a2把[a,b]分為三段.①如果f(a1)>f(a2),令a=a1,a1=a2,a2=a+0.618*(b-a);
2)如果f(a1)<f(a2),令b=a2,a2=a1,a1=b-0.618*(b-a);如果〔ba〕/b和〔yiy?〕/y2都大于收斂精度重新開始循環(huán)由于[a,b]為單峰區(qū)間,這樣每次可將搜索區(qū)間縮小0.618倍,處理后的區(qū)間都將包含極小點的區(qū)間縮小,然后在保存下來的區(qū)間上作同樣的處理,如此迭代下去,將使搜索區(qū)[a,b]逐步縮小,直到滿足預先給定的精度時,即獲得一維優(yōu)化問題的近似最優(yōu)解.22插入點原理圖如下:220.618所謂的黃金分割法,是指將一線段分成兩段的方法,使整段的長與較長段的長的長度比值等于較長段與較短段的比值,即:1::(1)算法流程圖黃金分割法的算法步驟:給定a,b〔a>b〕,限制誤差0.一般?。踑,b]為[0,1],當然也可以根據(jù)自己需要調(diào)整.如果目標函數(shù)對變量非常靈敏,可以將補償?shù)目尚蟹秶M行范圍縮小,以提升搜索精度;反之,可以將步長的可行范圍放大,以提升算法的計算速度.
培iiz虐fr.f力一*一用3一詡門叼】療工-tl+1(*£1)(站索)用matlab編寫源程序Matlab程序源代碼:golden.m子函數(shù)functionPa=golden(x,p,LowBound,UpBound)%goldenisfunctionforgoldenlinearsearch%x(k+1)=x(k)+Pa*p;%input:%x:搜索初始點%p:搜索方向%LowBound,UpBound:搜索區(qū)間%output:%Pa搜索步長%disp('itisthegoldenlinereasch');%搜索步長范圍[0,1]可以根據(jù)需要修改gold_a=LowBound;gold_b=UpBound;z2=gold_a+0.618*(gold_b-gold_a);%%step1f2=objfun(x+z2*p);z1=gold_a+0.382*(gold_b-gold_a);%%step2f1=objfun(x+z1*p);in_itera=0;whileabs(gold_b-gold_a)>0.0000000001%absa=0,b=1goldenlinesearchin_itera=in_itera+1;%f1,f2iff1<f2gold_b=z2;z2=z1;f2=f1;z1=gold_a+0.382*(gold_b-gold_a);f1=objfun(x+z1*p);continueelseiff1==f2gold_a=z1;gold_b=z2;z2=gold_a+0.618*(gold_b-gold_a);%%step2f2=objfun(x+z2*p);z1=gold_a+0.382*(gold_b-gold_a);%%step2f1=objfun(x+z1*p);continueelsegold_a=z1;z1=z2;f1=f2;z2=gold_a+0.618*(gold_b-gold_a);f2=objfun(x+z2*p);endendPa=(gold_a+gold_b)/2;%Pax(k+1)=x(k)+Pa*p;disp('最優(yōu)漏是:’)一%Pa,in_itera%obj(x+Pa*p)objfun.m子函數(shù)functionf=objfun(x)f=x(1)A3+x(2)A2-10*x(1)*x(2)+1;
2.4黃金分割法應用舉例題目:利用黃金分割法求解下面函數(shù)的最優(yōu)解:fx13x210x1x21解:利用Matlab程序計算:命令窗口輸入:X=[0,0];P=[1,1];Pa=golden(X,P,0,1)結(jié)果輸出:最優(yōu)解是:Pa=1.0000三、最速下降法3.1最速下降法的根本思路最速下降法從目標函數(shù)的fX(k)T最速下降法的搜索法向是目標函數(shù)的負梯度方向,負梯度方向一直前最速下降法從目標函數(shù)的fX(k)T目標函數(shù)在X(k)點的梯度為:(k)fX(k)fX(k)fX(k)XixXix2Xn當求目標函數(shù)的最小點時,由于函數(shù)沿負梯度方向下降最快,故在X的點的探索方向應取該點的負梯度方向,即S(S(k)fX(k)fX(k)(k).顯然,S為單位向量.這樣第k1次迭代計算所得的新點為X(k1)X(k1)X(k)(k)0(k)X(k)(k)fx(k)X(k)負梯度僅給出了最優(yōu)化方向,而沒有給出步長的大小,所以可能有各種各樣的最(k)速下降的過程,它們依賴于nf的大小.fX(k)
步長的有兩種取法:一種方法是任意給定一個初始步長,使?jié)M足條件:f(X(k)(k)s(k))f(X(k))另外一種方法是沿負梯度方向做一維探索,以求解一維最優(yōu)化問題的最優(yōu)步長,即對目標函數(shù)極小,以得到最優(yōu)步長:minf(X(k)S(k))f(X(k)(k)S(k))以此最優(yōu)步長作為由X(k)點出發(fā)沿該點的負梯度方向探索的步長(k)0這種這種方法的迭代計算的收斂性,進行判斷:可用以下三式中的任一式或二式作為準那么來fX(k)fX(k)fX(k1)fX(k)v(k)v(k1)XX用最速下降法求無約束多維極值問題minf(x),xRn的算法步驟如下:(1)、取初始點x(0),精度0,令k0(2)、計算搜索方向v(k)f(x(k)),其中f(x(k))表示函數(shù)f(x)在點x-處的梯度;(3)、假設Mk)||,那么停止計算;否那么,從x(k)出發(fā),沿v(k)進行一維搜索,即求…使得f(x(k)朋的)minf(x(k)v的).此處的一維搜索可以用MATLAB的fminunc函數(shù);令x(k1)x(k)kV(k),kk1,轉(zhuǎn)步驟(2).
用matlab編寫源程序BanaFunWithGrad.m子函數(shù)function[f,g]=BanaFunWithGrad(x)%(不含導數(shù)解析式)f=100*(x(2)-x(1)A2)A2+(1-x(1))A2;g=[100*(4*x(1)A3-4*x(1)*x(2))+2*x(1)-2;100*(2*x(2)-2*x(1)A2)];BanaFun.m子函數(shù)functionf=BanaFun(x)%(含導數(shù)解析式)f=100*(x(2)-x(1)A2)A2+(1-x(1))A2;最速下降法應用舉例題目:求解函數(shù)f100(x2x;)2(1x1)2解:利用Matlab程序計算:命令窗口輸入:OPTIONS=optimset('LargeScale','off','HessUpdate','steepdesc','gradobj','on','MaxFunEvals',250,'display','iter');x=[-1.9,2];[x,fval,exitflag,output]=fminunc(@BanaFunWithGrad,x,OPTIONS)結(jié)果輸出:迭代次數(shù)函數(shù)計算次數(shù)函數(shù)值步k一階導數(shù)最優(yōu)性Gradient'sIterationFunc-countf(x)Step-sizeinfinity-norm01267.621.23e+00312214.4160.000813405519295.836390.0009849313.43155.782920.0005673051.584185.731270.038797912.95245.680230.0005837361.596275.630810.036759912.57335.58190.0006002911.68365.534440.034948212.19425.487430.0006170091.6110455.441730.033324511.711515.396410.0006339251.6212545.352280.031858711.313605.308490.0006510741.6314635.265790.03052711115695.223380.0006684871.6416725.181970.029310610.717785.140820.0006861941.6418815.100590.028193710.419875.060580.0007042251.6520905.021440.027163510.121964.982490.0007226091.6622994.944330.02620959.89231054.906350.0007413761.67241084.869120.02532289.65251144.832040.0007605541.68261174.795660.02449589.42271234.75940.0007801741.69281264.723810.0237229.2291324.688330.0008002671.7301354.653470.0229968.99311414.618710.0008208661.7
321444.584530.0223138.79331504.550430.0008420021.71341534.51690.02166898.6351594.483430.0008637111.72361624.450490.02106018.42371684.41760.0008860291.73381714.385220.02048348.24391774.352890.0009089951.74401804.321030.0199368.07411864.28920.0009326491.75421894.257840.01941547.91431954.22650.0009570331.76441984.195590.01891947.75452044.16470.0009821941.77462074.134230.01844627.6472134.103770.001008181.78482164.073710.01799397.45492224.043640.001035051.79502254.013960.01756097.3512313.984270.001062841.8522343.954950.01714587.16532403.925610.001088861.8542433.894410.01810857.29552493.863210.001117641.82Maximumnumberoffunctionevaluationsexceeded;〔達至U最大的函數(shù)值計算次數(shù)〕increaseoptions.MaxFunEvals〔建議增加最大的函數(shù)值計算次數(shù)〕x=-0.96340.9372〔最后迭代點〕fval=3.8632〔最優(yōu)點對應的函數(shù)值〕exitflag=0output=〔函數(shù)根本信息〕iterations:56〔迭代次數(shù)〕funcCount:250〔目標函數(shù)最大計算次數(shù)〕stepsize:0.0011〔步長〕firstorderopt:1.8155algorithm:'medium-scale:Quasi-Newtonlinesearch'message:[1x78char]從結(jié)果可見:在250次最大的目標函數(shù)計算次數(shù)內(nèi),算法沒有到最優(yōu)點[1,1].將最大目標函數(shù)計算次數(shù)調(diào)高到2500次,那么:命令窗口輸入:OPTIONS=optimset〔'LargeScale','off,'HessUpdate','steepdesc','gradobj','on','MaxFunEvals',2500,'display','iter'〕;x=[-1.9,2];[x,fval,exitflag,output]=fminunc〔@BanaFunWithGrad,x,OPTIONS〕結(jié)果輸出:
迭代次數(shù)函數(shù)計算次數(shù)函數(shù)值步k一階導數(shù)最優(yōu)性Gradient'sIterationFunc-countf(x)Step-sizeinfinity-norm01267.621.23e+00312214.4160.000813405519295.836390.0009849313.43155.782920.0005673051.584185.731270.038797912.95245.680230.0005837361.596275.630810.036759912.57335.58190.0006002911.68365.534440.034948212.19425.487430.0006170091.6110455.441730.033324511.711515.396410.0006339251.6212545.352280.031858711.313605.308490.0006510741.6314635.265790.03052711115695.223380.0006684871.6416725.181970.029310610.717785.140820.0006861941.6418815.100590.028193710.419875.060580.0007042251.65…400…14590.0005415110.00111768…0.016240114620.0005380840.01415250.0574Maximumnumberofiterationsexceeded;increaseoptions.MaxIter.x=0.97700.9542fval=5.3808e-004exitflag=0output=iterations:401funcCount:1462stepsize:0.0142firstorderopt:0.0574algorithm:'medium-scale:Quasi-Newtonlinesearch'message:[1x67char]從以上兩個算法的結(jié)果可以看出,最速下降法對bana函數(shù)不是十分有效.當目標函數(shù)不可微或者導數(shù)求解復雜時,可以無需提供目標函數(shù)的導函數(shù)的解析形式,MATLABT以使用差分的方法求導(下降方向).命令窗口輸入對應的代碼為:OPTIONS=optimset('LargeScale','off','HessUpdate','steepdesc','MaxFunEvals',250);x=[-1.9,2];[x,fval,exitflag,output]=fminunc(@BanaFun,x,OPTIONS)結(jié)果輸出:Maximumnumberoffunctionevaluationsexceeded;increaseoptions.MaxFunEvalsx=-1.2553fval=5.1002exitflag=0output=iterations:funcCount:stepsize:1.5640192520.0282firstorderopt:10.4149algorithm:'medium-scale:Quasi-Newtonlinesearch'message:[1x78char]從計算結(jié)果可以明顯看出,這對于最速下降發(fā),有導數(shù)解析式會比沒有導數(shù)解析式時,計算質(zhì)量會有所提升.四、懲罰函數(shù)法4.1懲罰函數(shù)法的根本思路懲罰函數(shù)法是應用廣泛,非常有效的間接解法,又稱為序列無約束極小化方法(SUMTS).該方法通過將原約束優(yōu)化問題中的等式和不等式約束函數(shù)加權(quán)處理后與原目標函數(shù)結(jié)合,得到新的目標函數(shù)(懲罰函數(shù)).原問題轉(zhuǎn)化為新的無約束優(yōu)化問題,求解該新的無約束優(yōu)化問題,問接得到原約束優(yōu)化問題的最優(yōu)解.程序步驟:①選擇適當?shù)某跏剂P因子M⑼、初始點X(0)、收斂精度和罰因子系數(shù)c.在本程序中分別取令迭代步數(shù)k=0.②采用牛頓法求無約束問題min(X,M(k))的極值點X*(M(k)).③檢驗迭代終止準那么,假設滿足||X*(M的)X(M(k1))||f[X*(M(k))]f[X*(Mf[X*(M(k1))]那么停止迭代計算,輸出最優(yōu)點XX*(M(k));否那么,轉(zhuǎn)入步驟④.④取M(k1)cM(k),X(0)X*(M(k)),k=k+1,轉(zhuǎn)入步驟②繼續(xù)迭代.用matlab編寫源程序Matlab程序源代碼:主程序symsx1x2M;%M為罰因子.m(1)=1;a(1)=20;b(1)=20;c=8;%c為遞增系數(shù).賦初值.f=(x1-2
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人間車輛購置借款合同4篇
- 2025年度個人向公司提供短期周轉(zhuǎn)借款合同協(xié)議書3篇
- 2025版售后客服外包服務費用年度優(yōu)化合同6篇
- 二零二五年度餐飲加盟店食材供應鏈管理合同3篇
- 2025工程量清單合同
- 2025贊助合同樣書
- 2025不動產(chǎn)買賣合同書
- 2025合同模板小額貸款公司借款合同范本
- 二零二五年度生物制藥研發(fā)成果轉(zhuǎn)化合同3篇
- 二零二五年度車貸擔保機構(gòu)風險監(jiān)控合同4篇
- 七年級數(shù)學新北師大版(2024)下冊第一章《整式的乘除》單元檢測習題(含簡單答案)
- 五年級上冊寒假作業(yè)答案(人教版)
- 2025年山東浪潮集團限公司招聘25人高頻重點提升(共500題)附帶答案詳解
- 2024年財政部會計法律法規(guī)答題活動題目及答案一
- 2024年云網(wǎng)安全應知應會考試題庫
- 化學用語專項訓練
- 芳香植物與芳香療法講解課件
- 不孕癥診斷、治療新進展課件
- 學校食堂食品質(zhì)量控制方案
- 天津2021公需課量子信息技術(shù)答案
- 切實加強領導干部的作風建設課件
評論
0/150
提交評論