資源簡介
外點罰函數(shù)實現(xiàn)代碼,罰函數(shù)是指在求解最優(yōu)化問題(無線性約束優(yōu)化及非線性約束優(yōu)化)時,在原有目標函數(shù)中加上一個障礙函數(shù),而得到一個增廣目標函數(shù),罰函數(shù)的功能是對非可行點或企圖穿越邊界而逃離可行域的點賦予一個極大的值,即將有約束最優(yōu)化問題轉(zhuǎn)化為求解
代碼片段和文件信息
syms?x1?x2?M;??????????????%M為罰因子。?
m(1)=1;?????????????????????
c=5;???????????????????????%c為遞增系數(shù)。賦初值。?
a(1)=-3;?
b(1)=-3;???????????????????????????????
f=x1+x2+M*(x1^2+x2^2-2)^2;%f=x1^3+x2^2+M*(x1+x2-1)^2;%外點罰函數(shù)?
f0(1)=1;?
?
%求偏導(dǎo)、Hessian元素?
fx1=diff(f‘x1‘);?%求x1偏導(dǎo)?
fx2=diff(f‘x2‘);%求x2偏導(dǎo)?
fx1x1=diff(fx1‘x1‘);%x1二階導(dǎo)?
fx1x2=diff(fx1‘x2‘);?
fx2x1=diff(fx2‘x1‘);?
fx2x2=diff(fx2‘x2‘);?
?
%外點法M迭代循環(huán)?
for?k=1:100???????????????????????????????????????????????????????????
????x1=a(k);x2=b(k);M=m(k);?
????%牛頓法求最優(yōu)值?
????for?n=1:100?????????????????????????????????????????????????????
????????f1=subs(fx1);?%求解梯度值和Hessian矩陣?
????????f2=subs(fx2);?
????????f11=subs(fx1x1);?
????????f12=subs(fx1x2);?
????????f21=subs(fx2x1);?
???
評論
共有 條評論