大連理工優(yōu)化方法增廣拉格朗日方法MATLAB程序.doc
《大連理工優(yōu)化方法增廣拉格朗日方法MATLAB程序.doc》由會員分享,可在線閱讀,更多相關《大連理工優(yōu)化方法增廣拉格朗日方法MATLAB程序.doc(5頁珍藏版)》請在裝配圖網(wǎng)上搜索。
上機大作業(yè)II 定義目標函數(shù)fun function f=fun(x) x1=x(1); x2=x(2); f=4*x1-x2^2-12; 定義目標函數(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- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 大連理工 優(yōu)化 方法 增廣 拉格朗日 MATLAB 程序
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://kudomayuko.com/p-6663865.html