優(yōu)化課程實驗_第1頁
優(yōu)化課程實驗_第2頁
優(yōu)化課程實驗_第3頁
優(yōu)化課程實驗_第4頁
優(yōu)化課程實驗_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗一一維搜索方法實驗實驗學時:2h實驗類型:常規(guī)實驗要求:必修一、 實驗?zāi)康模赫莆沾_定搜索區(qū)間的進退法,一維搜索的黃金分割法、牛頓法(切線法)、二次插值法的基本思想及迭代過程。掌握上述常用一維搜索方法的優(yōu)缺點及程序編制的方法。掌握采用一維優(yōu)化方法求優(yōu)時如何提高搜索效率,減少盲目性。二、 實驗內(nèi)容1、 任選實驗以下內(nèi)容之一,自編程序;用0.618法求函數(shù)f(x)=x(x+2)在區(qū)間[-3,5]中的極小點,要求精度為£=0.01。.用0.618法求函數(shù)f(x)=x2+x+2的近似極小點及近似極小值,以致[a,b]=[-1,3],縮短的相對精度為£=0.08。用牛頓法求函數(shù)f(x)=x4-5x3-4x2-6x+60的極小點及極小值,已知[a,b]=[3,4],要求精度為£=0.01o用二次插值法求f(x)=x2+e-x的極小點及極小值,已知[a,b]=[0,1],要求精度為£=0.001。用二次插值法求f(x)=3x4-16x3+30x2-24x+8的極小點及極小值,已知[a,b]=[0,3],要求精度為£=0.001。2、 改變初始搜索區(qū)間或精度要求,觀察程序運行結(jié)果及迭代次數(shù)的變化情況。三、 實驗原理、方法和手段一維搜索方法的內(nèi)容包括搜索區(qū)間的確定和區(qū)間縮小兩個內(nèi)容,首先給定初始點,應(yīng)用外推法確定一個高一低一高的單谷區(qū)間,在采用黃金分割法或插值法進行區(qū)間縮小,當區(qū)間縮小到收斂精度。四、實驗組織運行要求本實驗為上機實驗,采用單人單機,集中授課形式。五、實驗條件人均計算機一臺,安裝有C語言軟件。六、 實驗步驟實驗課前,明確實驗?zāi)康暮鸵螅A(yù)習相關(guān)內(nèi)容,應(yīng)用選擇的算法語言編寫程序;在C語言環(huán)境下輸入和調(diào)試程序;運行程序,分析結(jié)果的正確性;改變搜索區(qū)間,運行程序,觀察結(jié)果和迭代次數(shù)的變化;改變收斂精度,觀察結(jié)果和迭代次數(shù)的變化。七、 思考題對黃金分割法和二次插值法的特點進行總結(jié),具體使用時應(yīng)如何選擇?八、 實驗報告1、 寫清上機實驗的名稱及要求。2、 所選優(yōu)化方法的基本原理簡述。3、 繪制程序框圖。4、 程序中變量及參數(shù)說明。5、 運行結(jié)果分析。(要求輸出迭代過程中搜索區(qū)間上下限、迭代次數(shù)、極小點和極小值)#include<math.h>#include<stdio.h>doubleobfunc(doublex) /*目標函數(shù)*/(doubleff;ff=pow(x,2)+9*x;return(ff);}voidjts(doublex0,doubleh0,doubles[],intn,doublea[],doubleb[])/*進退法*/inti;doublex[3],h,fl,f2,f3:h=hO;for(i=0;i<n;i++)x[0]=x0;fl=obfunc(x[0]);for(i=0:i<n;i++)x[l]=x[0]+h^s[i];f2=obfunc(x[1]);if(f2>=fl){h=-hO;for(i=0;i<n;i++)x[2]=x[0]:f3=fl;for(i=0:i<n;i++){x[0]=x[l]:x[l]=x[2]:}fl=f2;f2=f3:}for(;;){h=2.0*h;for(i=0;i<n;i++)x[2]=x[l]+h^s[i]:f3=obfunc(x[2]);if(f2<f3)break;else(for(i=0;i<n;i++)(x[0]=x[1];x[1]=x[2];}f1=f2;f2=f3;}}if(h<0)for(i=0;i<n;i++)(a[i]=x[2];b[i]=x[0];}elsefor(i=0;i<n;i++)(a[i]=x[0];b[i]=x[2];}printf("%4d",n);}doublegold(doublea[],doubleb[],doubleeps,intn,doublexx)/*黃金分割法*/(inti;doublef1,f2,ff,q,w;doublex[3];for(i=0;i<n;i++)(x[0]=a[i]+0.618*(b[i]-a[i]);x[1]=a[i]+0.382*(b[i]-a[i]);}f1=obfunc(x[0]);f2=obfunc(x[1]);do(if(f1>f2)(for(i=0;i<n;i++)(b[i]=x[0];x[0]=x[1];}f1=f2;for(i=0;i<n;i++)x[1]=a[i]+0.382*(b[i]-a[i]);f2=obfunc(x[1]);}else(for(i=0;i<n;i++)(a[i]=x[1];x[1]=x[0];}f2=f1;for(i=0;i<n;i++)x[0]=a[i]+0.618*(b[i]-a[i]);f1=obfunc(x[0]);}q=0;for(i=0;i<n;i++)q=q+(b[i]-a[i])*(b[i]-a[i]);w=sqrt(q);}while(w>eps);for(i=0;i<n;i++)xx=0.5*(a[i]+b[i]);ff=obfunc(xx);printf("xx=ff=%5.2f,,,,%5.2f”,xx,ff);return(ff);}voidmain()(intn=1;doublea[1],b[1],xx;doubles[]={1},x0=0;doubleeps1=0.001,h0=0.1;jts(x0,h0,s,n,a,b);gold(a,b,eps1,n,xx);實驗二 多維無約束優(yōu)化一、 實驗?zāi)康模赫莆粘S脽o約束優(yōu)化方法的基本思想及迭代過程。掌握最速下降法、共軛梯度法、牛頓法、變尺度法、Powell法、單形替換法等的優(yōu)缺點及程序編制方法。掌握如何合理選擇無約束優(yōu)化方法,保證迭代效率及解題效果。掌握如何保證所得結(jié)果為目標函數(shù)的全局最優(yōu)解的一般方法。二、 實驗內(nèi)容求函數(shù)f(x)=2x12+3x22-8x1+1。的近似無約束最小點X*及最小值f(X*)。已知初始點X(o)=[1,2]t,£=0.001。求函數(shù)f(x)=1.5x12+0.5x22-x1x2-2x1的近似最小點X*及最小值f(X*)。已知初始點X(0)=[-2,4]t,£=0.02。求函數(shù)f(x)=x14-2x12x2-2x22-2x1X2+4.5x「4x2+4的近似最小點X*及最小值f(X*)。已知初始點X(0)=[-0.2,0.2]t,£=0.01。求f(x)=x12+2x22-4X1-2x1X2的近似最小點X*及最小值f(X*)。已知初始點X(0)=[1,1]t,£=0.01。求f(x)=4(x1-5)2+(x2-6)2的最優(yōu)解。已知初始點X(o)=[8,9]t,£=0.01。三、 實驗要求:任選實驗內(nèi)容中之一,自選實驗?zāi)繕?中的一種方法,自編程序;改變初始初始點及精度要求,觀察最優(yōu)解及迭代次數(shù)的變化情況。四、 實驗報告:寫清上機實驗的名稱及要求。所選優(yōu)化方法的基本原理簡述。繪制程序框圖。程序中變量及參數(shù)說明。運行結(jié)果分析。對所采用的方法的搜索效率及搜索結(jié)果進行評價,并提出改進意見及建議。附:Powell法的參考程序:#include"math.h"#include"stdio.h"#include"malloc.h"doubleobfunc(doublex[])(doubleff;ff=x[0]*x[0]+2*x[1]*x[1]-4*x[0]-2*x[0]*x[1];return(ff);}voidjts(doubleX0[],doubleh0,doubles[],intn,doublea[],doubleb[])(inti;double*x[3],h,f1,f2,f3;

for(i=0;i<3;i++)h=h0;for(i=0;i<n;i++)f1=obfunc(x0);for(i=0;i<3;i++)h=h0;for(i=0;i<n;i++)f1=obfunc(x0);for(i=0;i<n;i++)f2=obfunc(x[1]);if(f2>=f1){h=-h0;for(i=0;i<n;i++)f3=f1;*(x[0]+i)=x0[i];*(x[1]+i)=*(x[0]+i)+h*s[i];*(x⑵+i)=*(x[0]+i);for(i=0;i<n;i++){*(x[0]+i)=*(x[1]+i);*(x[1]+i)=*(x[2]+i);}f1=f2; f2=f3;}for(;;){h=2.0*h;for(i=0;i<n;i++) *(x⑵+i)=*(x[1]+i)+h*s[i];f3=obfunc(x[2]);if(f2<f3)elsebreak;if(f2<f3)elsebreak;{for(i=0;i<n;i++){*(x[0]+i)=*(x[1]+i); *(x[1]+i)=*(x[2]+i);}f1=f2;f2=f3; }}if(h<0)for(i=0;i<n;i++) {a[i]=*(x⑵+i); b[i]=*(x[0]+i);}elsefor(i=0;i<n;i++) {a[i]=*(x[0]+i); b[i]=*(x[2]+i); }for(i=0;i<3;i++) free(x[i]);}doublegold(doublea[],doubleb[],doubleeps,intn,doublexx[]){inti;doublef1,f2,ff,q,w,*x[2];for(i=0;i<2;i++)x[i]=(double*)malloc(n*sizeof(double));for(i=0;i<n;i++){*(x[0]+i)=a[i]+0.618*(b[i]-a[i]); *(x[1]+i)=a[i]+0.382*(b[i]-a[i]);}f1=obfunc(x[0]);f2=obfunc(x[1]);do{if(f1>f2){ for(i=0;i<n;i++) {b[i]=*(x[0]+i);*(x[0]+i)=*(x[1]+i);}f1=f2;*(x[1]+i)=a[i]+0.382*(b[i]-a[i]);for(i=0;i<n;i++)*(x[1]+i)=a[i]+0.382*(b[i]-a[i]);f2=obfunc(x[1]);}else{for(i=0;i<n;i++)f2=f1;for(i=0;i<n;i++)f1=obfunc(x[0]);}}else{for(i=0;i<n;i++)f2=f1;for(i=0;i<n;i++)f1=obfunc(x[0]);}q=0;for(i=0;i<n;i++)w=sqrt(q);}while(w>eps);for(i=0;i<n;i++)ff=obfunc(xx);for(i=0;i<2;i++)return(ff);}{a[i]=*(x[1]+i); *(x[1]+i)=*(x[0]+i);}*(x[0]+i)=a[i]+0.618*(b[i]-a[i]);q=q+(b[i]-a[i])*(b[i]-a[i]);xx[i]=0.5*(a[i]+b[i]);free(x[i]);doubleoneoptim(doublex0[],doubles[],doubleh0,doubleepsg,intn,doublex[]){double*a,*b,ff;a=(double*)malloc(n*sizeof(double));b=(double*)malloc(n*sizeof(double));jts(x0,h0,s,n,a,b);ff=gold(a,b,epsg,n,x);free(a);free(b);return(ff);}doublepowell(doublep[],doubleh0,doubleeps,doubleepsg,intn,doublex[]){inti,j,m;double*xx[4],*ss,*s;doublef,f0,f1,f2,f3,fx,dlt,df,sdx,q,d;ss=(double*)malloc(n*(n+1)*sizeof(double));s=(double*)malloc(n*sizeof(double));for(i=0;i<n;i++){for(j=0;j<n;j++) *(ss+i*(n+1)+j)=0;*(ss+i*(n+1)+i)=1;}for(i=0;i<4;i++)xx[i]=(double*)malloc(n*sizeof(double));for(i=0;i<n;i++)*(xx[O]+i)=p[i];for(;;)(for(i=0;i<n;i++)(*(xx[l]+i)=*(xx[O]+i);x[i]=*(xx[l]+i);}fO=f1=obfunc(x);dlt=-l;for(j=0;j<n;j++)(for(i=0;i<n;i++)(*(xx[O]+i)=x[i];*(s+i)=*(ss+i*(n+l)+j);}f=oneoptim(xx[0],s,hO,epsg,n,x);df=fO-f;if(df>dlt)(dlt=df;m=j;}}sdx=O.O;for(i=0;i<n;i++)sdx=sdx+fabs(x[i]-(*(xx[l]+i)));if(sdx<eps)(free(ss);free(s);for(i=0;i<4;i++)free(xx[i]);return(f);}for(i=0;i<n;i++)*(xx⑵+i)=x[i];f2=f;for(i=0;i<n;i++)*(xx[3]+i)=2.0*(*(xx⑵+i)-(*(xx[i]+i)));x[i]=*(xx[3]+i);}fx=obfunc(x);f3=fx;q=(f1-2*f2+f3)*(f1-f2-dlt)*(f1-f2-dlt);d=0.5*dlt*(f1-f3)*(f1-f3);if((f3<f1)ll(q<d)){if(f2<=f3)for(i=0;i<n;i++)*(xx[0]+i)=*(xx⑵+i);elsefor(i=0;i<n;i++)*(xx[0]+i)=*(xx[3]+i);}else{for(i=0;i<n;i++){*(ss+(i+1)*(n+1))=x[i]-(*(xx[1]+i));*(s+1)=*(ss+(i+1)*(n+1));}f=oneoptim(xx[0],s,h0,epsg,n,x);for(i=0;i<n;i++)*(xx[0]+i)=x[i];for(j=m+1;j<=n;j++)for(i=0;i<n;i++)*(ss+i*(n+1)+j-1)=*(ss+i*(n+1)+j);}}}voidmain(){inti;intdimen=2;doublespoint[]={1,1};doubleff,x[20];doubleh0=0.3;doublefepsl=0.001;doublesepsl=0.0001;ff=powell(spoint,h0,fepsl,sepsl,dimen,x);for(i=0;i<dimen;i++)printf("x%d%5.2f\n”,i,x[i]);printf("optimum=%5.2f”,ff);}實驗三約束優(yōu)化方法實驗實驗學時:2h實驗類型:常規(guī)實驗要求:必修一、 實驗?zāi)康?、 掌握常用多維約束優(yōu)化方法的基本思想及特點;2、 掌握約束優(yōu)化問題的一般求解方法;3、 掌握常用優(yōu)化方法程序的使用方法;4、 通過上機練習,了解約束優(yōu)化方法的搜索效率,搜索效果及解的可靠性。二、 實驗內(nèi)容1、任選一種約束優(yōu)化方法,根據(jù)程序框圖編寫程序,上機調(diào)試并運行,對運行結(jié)果進行分析。用隨機方向法求下面具有不等式約束的優(yōu)化問題minf(x)=(x1-8)2+(x2-8)2S.T.g1(x)=-x1頃g2(x)=1-x2^0g3(x)=x1+x2-11^0的最優(yōu)解。已知:a=0.4,£=0.01,x0=[2,3]T,[a,b]=[0.0,11.0]。用復(fù)合形法求約束最優(yōu)解,目標函數(shù)及約束函數(shù)同1題。用懲罰函數(shù)法求下面具有不等式及等式約束的優(yōu)化問題:minf(x)=4x1-x22-12S.T.g1(x)=34-10x1-10x2+x12+x22^0g2(x)=-x1^0g3(x)=-x2^0h(x)=x12+x22-25=0已知:x0=[3.0,3.0]T,r0=1.0,c=0.2,£=0.00005,[a1,b1]=[0.0,6.0],[a2,b2]=[0.0,8.0]。2、改變化初始值,分析最優(yōu)解的變化。三、實驗原理、方法和手段選擇間接法(懲罰函數(shù)法、拉格朗日乘子法)和直接法(隨機方向發(fā)、復(fù)合形法、可行方向法)中的一種,理解基本原理和程序框圖,考慮用選擇的語言如何實現(xiàn)。MATLAB是“矩陣實驗室(Matrixlaboratory)”的縮寫,是由美國Mathworks公司推出的一種以矩陣運算為基礎(chǔ),集通用數(shù)學運算、圖形交互、程序設(shè)計和系統(tǒng)建模為一體的著名軟件,它具有功能強、使用簡單、容易擴展等優(yōu)點。與其他計算機語言相比,MATLAB表達方式與人們在數(shù)學、工程計算中常用的書寫格式十分相似,它以解釋方式工作,輸入程序后就可得結(jié)果.人機交互性好,易于調(diào)試,用戶學習和使用它都極為方便。MATLAB的基本部分有:矩陣運算和各種變換,代數(shù)和超越方程的求解,數(shù)據(jù)處理和傅里葉變換,數(shù)值積分等:除此之外,為了支持不同專業(yè)領(lǐng)域的用戶,MATLAB還提供了大量的面向?qū)I(yè)領(lǐng)域的工具箱,工具箱(toolbox)包含一系列專用的MATLAB函數(shù)庫,以解決特定領(lǐng)域的問題。工具箱主要有:通訊工具箱(Communicationtoolbox)、控制系統(tǒng)工具箱(ControlSystemtoolbox)、信號處理工具箱(Signalprocessingtoolbox)、圖像處理上具箱(Imaginetoolbox)、系統(tǒng)辨識工具箱(SystemIdentificationToolbox)、模糊邏輯工具箱(FuzzyLogictoolbox)、遺傳算法最優(yōu)化工具箱(geneticA1gorithmoptimizationToolbox)、最優(yōu)化工具箱(optimizationToolbox)、數(shù)理統(tǒng)計工具箱(StatisticsToolbox)、小波分橋工具箱(waveletToo1box)等等。這些工具箱通常表現(xiàn)為M文件和高級MATLAB語言的集合形式,允許用戶修改函數(shù)的源代碼或增加新的函數(shù)來適應(yīng)自己的應(yīng)用,允許用戶方便地綜合使用不同工具箱中的技術(shù)來設(shè)計針對某個問題的用戶解決方案。使用MATLAB語言和MATLAB工具箱,用戶可以專注于算法研究,編程只需要幾行就可以完成,而且可以很快的畫出圖形,從而迅速地進行多種算法的比較,從中找出最好的方案。MATLAB被廣泛用于研究和解決各種具體的工程問題,它不光已成為歐美等發(fā)達國家各設(shè)計單位和科研部門的基本工具,也成為了各高等院校大學生、碩士生和博士生必須掌握的工具。優(yōu)化上具箱(optimizationToolbox)涉及函數(shù)的最小化和最大化問題,也就

是函數(shù)的極值問題oMATLAB的優(yōu)化工具箱內(nèi)一些對普通非線性函數(shù)求解最小化成最大化極值的函數(shù)和解決諸如線性規(guī)劃等標準矩陣問題的函數(shù)組成。下面簡單地對優(yōu)化上具箱中的基本函數(shù)作一介紹。優(yōu)化工具箱中求非線性函數(shù)極小值的函數(shù)如下表所示。表一求非線性函數(shù)極小值的函數(shù)列表類型含義調(diào)用格式無條件標量問題minf(x),其中x為標量xx=fmin(‘f’,x)無限定條件矩陣問題minf(x),其中x為矩陣xx=fminu(‘f’,x)有限定條件問題minf(x),條件為G(x)<0xx=constr(‘fg’,x)目標條件問題minf(x),條件為加-foalxx=attgoal(‘f’,x,goal,w)最大最小極值min{maxf(x)},條件為G(x)-0xx=minimax(‘fg’,x)非線性二次平方極值minZ(f(x)xf(x))x=leastsq(‘f’,x)非線性方程f(x)=0x=fsolve(‘f’,x)半無窮條件minf(x) ,條件為x?(x,o)-0,VoX=seminf(‘ft’,n,x)問題的原形算法是Nelder-Mead單純形搜索方法和BFGS擬牛頓(qusi-Newton)方法。限定條件下的最小、最大最小、目標法和半無窮優(yōu)化等問題,所用的原理算法是二次規(guī)劃法,非線件二次平方問題的原理算法是Gausss-Newton法和Levenberg—Marquardt法。非線性最小和非線性二次平方問題,可進行線性搜索策略的選擇,線件搜索策略使用的是二次或三次內(nèi)插和外插方法。優(yōu)化上具箱處能解決幾類求矩陣的極小值問題,此時僅需要將相應(yīng)的系數(shù)矩陳和向量傳遞到函數(shù)中。MATLAB系統(tǒng)能解決的矩陣問題如表所示。類型含義語法非負二次平方問題minAx-b2,條件為x>0xx=nnls(A,b)二次問題.「1 K條件為min-xtHx-ctx,志斤如2xL匕 _1Ax<bx=qp(H,c,A,b)線性規(guī)劃問題min(fTx),條件為Ax<bxx=lp(f,A,b)函數(shù)功能舉例1無限定條件的極值問題考慮如下的問題:求合適的集合[%,%],使問題min/(x)=exl(4x^4-2x|+4xrx2+2x24-1]q工X ' /成立。為求解此問題,可先編寫一個能返回函數(shù)值的M文件,將函數(shù)表達式與寫入MATLAB系統(tǒng)中,然后調(diào)用非限定最小程序fminu。具體的步驟如下;利用文件編輯器編寫M文件functionf=fun(x).f=exp(x(1))*(4*x(1)^2+2 (2)a2-f4*x(1)Xx(2)+2*x(2)+l);程序中functionf=fun(x)表示將此M文件定義為名為fun(x)的文件。2)在命令窗口中調(diào)用優(yōu)化程序fminux=[-l,1]; %估計初值x=fminu(‘fun’,X)經(jīng)過36次函數(shù)調(diào)用后,得到極值點為x=0.5000 -1.0000在命令窗口中接著輸入fun(x)得到極值點處的函數(shù)值為:ans1.3029e-0l0注意:當函數(shù)存在一個以上的局部最小點時,的初值會影響選代的次數(shù)和解的值,本例中的初值為[-1,1]。為了改變優(yōu)化解的特征,可在函數(shù)fminu的說明參數(shù)中加入可選的參數(shù)說明(options),語句如下:X=fminu['fun',x,options)options是一個包含允許誤差值和算法選擇等選項的向量。它的第一個元素所起的作用是控制在優(yōu)化周期中顯示輸出的數(shù)量,將它設(shè)置為1時會以表格形式顯示函數(shù)值和收斂信息。options的第二和第三個元素建立終止判據(jù)。options中的其他元素用于選擇算法和設(shè)置迭代的最大次數(shù)等。2限定條件極值問題使constr函數(shù),可在上面例子中加入不等式限定條件。如對問題2minf(x)=exl(4x^+2對+4x,x2+2x2+1)限定條件為:1.5+x{x2一巧—x2<0—X]x2—10<0將上面編寫的M文件進行修改,使其能返回目標函數(shù)值和限定函數(shù)值下的極值函數(shù)constr求出極值。具體過程如下:function■[f,g]=fun(X)f=exp(x(l))*(4*x(1)A2+2*x(2)A2+4*x(1) (2)+2*x(2)+1);g(l)=1.5+x(l)*x(2)-x(l)-x(2);g(2)—x(l)*x(2)-10;在命令窗口中調(diào)用優(yōu)化程序x=[-11]; %估計初值x=constr('fun',x)得到的結(jié)果為:X=-9.5474 1.0474在命令窗口中接著輸入[f,g]=fun(x)得到的結(jié)果是在極值點處的函數(shù)值和限定條件的值f=0.0236g=-0.8882 03下界條件與上界條件使用函數(shù)的有界語法可將變量x限定在某一區(qū)域之內(nèi)。例如對于函數(shù)constr,下面的語句X=constr('fun',x,optlons,vlb,vub)可以將x限定在vlbVxVvub范同之內(nèi)。如在例2中,要將x限定為大于0,可在命令窗口中,使用如下的命令

options=[];與使用默認選頊options=[];與使用默認選頊%沒有-上界v'jb=[]f%沒有-上界r('funTtx,options,vlb,vub)經(jīng)過七坎選代后,問題的解為:X=0 1.5000在MATLAB命令行窗口中輸入如下內(nèi)容:[f,g]=fun(x)得到的結(jié)果是在極值點處的函數(shù)值和限定條件的值:f=8.5000g=0 -10在上面的例子中,x沒有上升,因此vub被置為空矩陣。也可以使用如下形式的命令省掉上界,其調(diào)用格式為:r(rfunTfxroptionsf )當vlb或vub的元素數(shù)目比向量x的元素數(shù)目少時,則x中只有前n個元素被限定有界。另外,上界和下界也可以用線性不等式表示。當僅有幾個元素有界時,用這樣的方法是比較方便的。具體的調(diào)用格式為:上界:x<U,表示為:x-U<0下界:x下界:x>L表示為:-x+L<04梯度計算一般說來,最小化程序都要使用由有限微分近似法計算出的梯度,這一過程會自動作用到每個變量以計算函數(shù)和限定條件的偏導數(shù)。若所編寫的程序能返回函數(shù)和限定條件的偏導數(shù),則問題的求解將會更精確和有效。用梯度來解決的前面的問題2具體過程如下:(l)利用文件編輯器為目標函數(shù)編寫M文件。function[f,g]=fun(x)f^exp(x(l))* ^2+2*x(2)A2+4*x(1)*x(2)+2*x(2)-?-l);g(l)-l.5+x(1)*x(2)-x(l)-x(2);g(2)=-x(l)*x(2)-10;(2)編寫求梯度的M文件。function[dffdg]=grad(x)t^exp(x(l))*(4*x(l)A2+2*x(2)A2+4*x(1) (2)+2*x(2)+1);df=[t+4*exp(x(D)*(2*x(l)+x(2)),4*exp(x(l))*(x(l)+x(2)+0.5)]; 電定義目標函數(shù)的梯度函數(shù)dg=[x⑵⑵x(l)-1,-x(1)]; 號定義限定函數(shù)的梯度在命令窗口中調(diào)用函數(shù)求限定條件下的極值問題。1] %初始估值options=[] 若使用默認選項vlb-[]; %沒有■下界vub=[]; %沒有上界x^constr1.1fun' options,vlb,vubf/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論