版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、現(xiàn)代設(shè)計理論與方法第二次作業(yè)無約束優(yōu)化方法習(xí)題三、用牛頓法求解(變量收斂精度為10-5 )(1) 解:通過使用已有的牛頓法程序,分別將目標(biāo)函數(shù)、初始點及收斂精度輸入程序,便得到所求函數(shù)的結(jié)果,如下圖:(2)將函數(shù)在點簡化為二次函數(shù),并用牛頓法求此二次函數(shù)的最優(yōu)解。解:1)通過調(diào)用matlab中的泰勒函數(shù),將函數(shù)簡化成在點處的二次函數(shù)如下圖:編寫的huajiancheng_2ci.m文件程序如下:syms x1 x2f=x14-3*x12*x2+2*x23;ffprintf('化簡后的二次函數(shù)n')f1=taylor(f, x1,x2,1,1,'order',3)
2、2)將第一問的化簡后的二次函數(shù)與入牛頓法程序所得結(jié)果如下圖所示四、用最速下降法求解(變量收斂精度為10-5 )(1) (2)將函數(shù)在點簡化為二次函數(shù),并用最速下降法求此二次函數(shù)的最優(yōu)解。答:同樣調(diào)用huajiancheng_2ci.m文件程序,得出如下圖化簡結(jié)果然后將化簡結(jié)果寫入最速下降法程序中得:附錄原程序:第3題第(1)問原程序%現(xiàn)代設(shè)計理論與方法第二次作業(yè)%=function Ymin=newton_methodX=1,1;epsi=1e-5;X0=X.' %設(shè)置初始點X0。G=Gname(X0(1),X0(2); k=0; %將迭代次數(shù)置0。while (abs(norm(G,
3、2)>epsi %while循環(huán),將梯度的模和收斂精度比較進行迭代計算。syms t X1=X0; %把X(k)點先賦值給X(k+1)點。H1=Hname(X1(1),X1(2); X1=X1-t*(inv(H1)*G; f_t=fname(X1(1),X1(2); df_t=diff(f_t); %函數(shù)對t求一階導(dǎo)數(shù)。t0=solve(df_t); %求解最優(yōu)步長。t=subs(t0); X0=X0-t*(inv(H1)*G; G=Gname(X0(1),X0(2); %調(diào)用梯度函數(shù) k=k+1; endYmin=fname(X0(1),X0(2); fprintf('迭代次數(shù)
4、為:n %g',k) %輸出迭代次數(shù)。fprintf('n');fprintf('牛頓法求得最優(yōu)解為:%f,%f',double(X0); %輸出最優(yōu)解。fprintf('n');fprintf('牛頓法求得最優(yōu)值的小數(shù)表示為:%fn分?jǐn)?shù)表示為:',double(Ymin) %輸出最小值。 %梯度計算函數(shù) function G=Gname(a,b) syms x1 x2 f=fname(x1,x2); dfx1=diff(f,'x1'); dfx2=diff(f,'x2'); df1=sub
5、s(dfx1,x1,x2,a,b); df2=subs(dfx2,x1,x2,a,b); G1=df1,df2' G=subs(G1); %海森矩陣計算函數(shù)function H=Hname(a,b) syms x1 x2 f=fname(x1,x2); dfx1=diff(f,'x1'); dfx2=diff(f,'x2'); dfx11=diff(dfx1,'x1'); dfx12=diff(dfx1,'x2'); dfx21=diff(dfx2,'x1'); dfx22=diff(dfx2,'x
6、2'); df11=subs(dfx11,x1,a); df11=subs(df11,x2,b); df12=subs(dfx12,x1,a);df12=subs(df12,x2,b);df21=subs(dfx21,x1,a);df21=subs(df21,x2,b);df22=subs(dfx22,x1,a);df22=subs(df22,x2,b);H1=df11,df12;df21,df22; H=subs(H1); %目標(biāo)函數(shù)表達(dá)式function f=fname(x1,x2) f=x12-2*x1*x2+1.5*x22+x1-2*x2;第3題第(2)原程序%現(xiàn)代設(shè)計理論與方
7、法第二次作業(yè)%第三題第2小題%=function Ymin=newton_method2X=1,1;epsi=1e-5;X0=X.' %設(shè)置初始點X0。G=Gname(X0(1),X0(2); k=0; %將迭代次數(shù)置0。while (abs(norm(G,2)>epsi %while循環(huán),把梯度的模和收斂精度進行比較。syms t X1=X0; %把X(k)點先賦值給X(k+1)點。H1=Hname(X1(1),X1(2); X1=X1-t*(inv(H1)*G; f_t=fname(X1(1),X1(2); df_t=diff(f_t); %函數(shù)對t求一階導(dǎo)數(shù)。t0=solv
8、e(df_t); %求解最優(yōu)步長。t=subs(t0); X0=X0-t*(inv(H1)*G; G=Gname(X0(1),X0(2); %調(diào)用梯度函數(shù) k=k+1; endYmin=fname(X0(1),X0(2); fprintf('迭代次數(shù)為:n %g',k) %輸出迭代次數(shù)。fprintf('n');fprintf('牛頓法求得最優(yōu)解為X0=%f,%f',double(X0); %輸出最優(yōu)解。fprintf('n');fprintf('牛頓法求得最優(yōu)值的小數(shù)表示為Ymin=%fn分?jǐn)?shù)表示為:',doub
9、le(Ymin) %輸出最小值。 %梯度計算函數(shù) function G=Gname(a,b) syms x1 x2 f=fname(x1,x2); dfx1=diff(f,'x1'); dfx2=diff(f,'x2'); df1=subs(dfx1,x1,x2,a,b); df2=subs(dfx2,x1,x2,a,b); G1=df1,df2' G=subs(G1); %海森矩陣計算函數(shù)function H=Hname(a,b) syms x1 x2 f=fname(x1,x2); dfx1=diff(f,'x1'); dfx2=di
10、ff(f,'x2'); dfx11=diff(dfx1,'x1'); dfx12=diff(dfx1,'x2'); dfx21=diff(dfx2,'x1'); dfx22=diff(dfx2,'x2'); df11=subs(dfx11,x1,a); df11=subs(df11,x2,b); df12=subs(dfx12,x1,a);df12=subs(df12,x2,b);df21=subs(dfx21,x1,a);df21=subs(df21,x2,b);df22=subs(dfx22,x1,a);df2
11、2=subs(df22,x2,b);H1=df11,df12;df21,df22; H=subs(H1); %目標(biāo)函數(shù)表達(dá)式function f=fname(x1,x2) f=3*x2 - 2*x1 - 6*(x1 - 1)*(x2 - 1) + 3*(x1 - 1)2 + 6*(x2 - 1)2 - 1;第四題第(1)問源程序%現(xiàn)代設(shè)計理論與方法第二次作業(yè)%第四題第1小題%=function Ymin=zuisuxiajiang_methodX=1,1;epsi=1e-5;X0=X.' %設(shè)置初始點X0。G=Gname(X0(1),X0(2); k=0; %將迭代次數(shù)置0。while
12、 abs(G)>epsi %while循環(huán),把梯度的模和收斂精度進行比較。syms t X1=X0; %把X(k)點先賦值給X(k+1)點。 X1=X1-t*G; f_t=fname(X1(1),X1(2); df_t=diff(f_t); %函數(shù)對t求一階導(dǎo)數(shù)。t0=solve(df_t); %求解最優(yōu)步長。t=subs(t0); X0=X0-t*G; G=Gname(X0(1),X0(2); %調(diào)用梯度函數(shù) k=k+1; endYmin=fname(X0(1),X0(2); fprintf('迭代次數(shù)為:n %g',k) %輸出迭代次數(shù)。fprintf('n&
13、#39;);fprintf('最速下降法求得最優(yōu)解為X0=%f,%f',double(X0); %輸出最優(yōu)解。fprintf('n');fprintf('最速下降法求得最優(yōu)值的小數(shù)表示為Ymin=%fn分?jǐn)?shù)表示為:',double(Ymin) %輸出最小值。 %梯度計算函數(shù) function G=Gname(a,b) syms x1 x2 f=fname(x1,x2); dfx1=diff(f,'x1'); dfx2=diff(f,'x2'); df1=subs(dfx1,x1,x2,a,b); df2=subs(
14、dfx2,x1,x2,a,b); G1=df1,df2' G=subs(G1); %目標(biāo)函數(shù)表達(dá)式function f=fname(x1,x2) f=x12-2*x1*x2+1.5*x22+x1-2*x2;第四題第(2)問源程序%現(xiàn)代設(shè)計理論與方法第二次作業(yè)%第四題第2小題%=function Ymin=zuisuxiajiang_method2X=1,1;epsi=1e-5;X0=X.' %設(shè)置初始點X0。G=Gname(X0(1),X0(2); k=0; %將迭代次數(shù)置0。while abs(G)>epsi %while循環(huán),把梯度的模和收斂精度進行比較。syms t
15、 X1=X0; %把X(k)點先賦值給X(k+1)點。 X1=X1-t*G; f_t=fname(X1(1),X1(2); df_t=diff(f_t); %函數(shù)對t求一階導(dǎo)數(shù)。t0=solve(df_t); %求解最優(yōu)步長。t=subs(t0); X0=X0-t*G; G=Gname(X0(1),X0(2); %調(diào)用梯度函數(shù) k=k+1; endYmin=fname(X0(1),X0(2); fprintf('迭代次數(shù)為:n %g',k) %輸出迭代次數(shù)。fprintf('n');fprintf('最速下降法求得最優(yōu)解為X0=%f,%f',double(X0); %輸出最優(yōu)解。fprintf('n');fprintf('最速下降法求得最優(yōu)值的小數(shù)表示為Ymin=%fn分?jǐn)?shù)表示為:',double(Ymin) %輸出最小值。 %梯度計算函數(shù) function G=Gname(a,b) syms x1 x2 f=fnam
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年現(xiàn)場總線計算機通訊模板項目發(fā)展計劃
- 2024年建材級纖維素醚項目合作計劃書
- 七年級下冊第6課《星空》說課稿
- 化學(xué)廢物處理招標(biāo)合同三篇
- 生物學(xué)項目化學(xué)習(xí)實施方案計劃
- 財務(wù)預(yù)算的動態(tài)管理計劃
- 幼兒語言發(fā)展的研究與教學(xué)策略計劃
- 建房合同范本格式
- 職業(yè)培訓(xùn)場地租賃協(xié)議三篇
- 一級建造師工程合同范本
- 公司網(wǎng)絡(luò)安全培訓(xùn)課件
- 質(zhì)量體系調(diào)查表-2
- 和田玉專業(yè)知識
- 藥事管理專業(yè)醫(yī)療質(zhì)量控制指標(biāo)
- 航海學(xué)天文定位第四篇第4章課件2
- HCIA-Transmission H31-311 V2.5 傳輸初級認(rèn)證培訓(xùn)考試題庫(含答案)
- 自駕游合作協(xié)議書
- 二年級音樂上冊教學(xué)計劃蘇少版
- 骨科常見體位和擺放課件
- 《論語》十二章教學(xué)【全國一等獎】
- FREE高考英語核心詞匯1783
評論
0/150
提交評論