大連理工優(yōu)化方法增廣拉格朗日方法MATLAB程序.doc
《大連理工優(yōu)化方法增廣拉格朗日方法MATLAB程序.doc》由會員分享,可在線閱讀,更多相關(guān)《大連理工優(yōu)化方法增廣拉格朗日方法MATLAB程序.doc(5頁珍藏版)》請在裝配圖網(wǎng)上搜索。
上機(jī)大作業(yè)II 定義目標(biāo)函數(shù)fun function f=fun(x) x1=x(1); x2=x(2); f=4*x1-x2^2-12; 定義目標(biāo)函數(shù)梯度函數(shù)dfun function f=dfun(x) x2=x(2); f=[4;-2*x2]; 定義等式約束函數(shù)hf function qua=hf(x) qua=25-x(1)^2-x(2)^2; 定義等式約束函數(shù)梯度函數(shù)dhf function qua=dhf(x) qua=[-2*x(1);-2*x(2)]; 定義不等式約束函數(shù)gfun function inq=gfun(x) inq=10*x(1)-x(1)^2+10*x(2)-x(2)^2-34; 定義不等式約束梯度數(shù)dgf function inq=dgf(x) inq=[10-2*x(1);10-2*x(2)]; 定義增廣拉格朗日函數(shù)mpsi function psi=mpsi(x,fun,hf,gfun,dfun,dhf,dgf,mu,lambda,sigma) f=feval(fun,x); he=feval(hf,x); gi=feval(gfun,x); l=length(he); m=length(gi); psi=f; s1=0; for i=1:l psi=psi-he(i)*mu(i); s1=s1+he(i)^2; end psi=psi+0.5*sigma*s1; s2=0.0; for i=1:m s3=max(0.0, lambda(i) - sigma*gi(i)); s2=s2+s3^2-lambda(i)^2; end psi=psi+s2/(2.0*sigma); 定義增廣拉格朗日函數(shù)梯度函數(shù)dmpsi function dpsi=dmpsi(x,fun,hf,gfun,dfun,dhf,dgf,mu,lambda,sigma) dpsi=feval(dfun,x); he=feval(hf,x); gi=feval(gfun,x); dhe=feval(dhf,x); dgi=feval(dgf,x); l=length(he); m=length(gi); for i=1:l dpsi=dpsi+(sigma*he(i)-mu(i))*dhe(:,i); end for i=1:m dpsi=dpsi+(sigma*gi(i)-lambda(i))*dgi(:,i); end 定義BFGS法函數(shù)函數(shù)bfgs function [x,val,k]=bfgs(mpsi,dmpsi,x0,fun,hf,gfun,dfun,dhf,dgf,mu,lambda,sigma) maxk=1000; rho=0.5; sigma1=0.4; epsilon1=1e-4; k=0; n=length(x0); Bk=eye(n); while(k- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 大連理工 優(yōu)化 方法 增廣 拉格朗日 MATLAB 程序
鏈接地址:http://www.szxfmmzy.com/p-6663865.html