文档介绍:实验目的熟练掌握外点法、内点法原理并可以在matlab熟练运行。问题描述目标函数:.(三)算法介绍外点法:对于混合约束问题minf(x):minF(x,)=f(x)++……+=f(x)+其中,P(x)=F(x,):增广目标函数P(x):惩罚函数,外部惩罚函数法迭代步骤:给定初始点,初始惩罚因子,放大系数c>1,置k:=1Step1:以为初始点求解minF(x,)得极小点Step2:若Step3:,置转step1注意外点法在选取初始点时要选取在可行域外的点。在本问题中=[-1;-1],c=10,=,内点法:这种解法只能用于不等式对于约束问题minf(x):minF(x,)=f(x)+)其中为一个小正数内部惩罚函数法迭代步骤:已知f(x),,取给定初始点,初始惩罚因子,放大系数1>c>0,置k:=1Step1:以为初始点求解minF(x,)得极小点Step2:若Step3:,置转step1在本问题中=[;],c=,=,注意内点法在选取初始点时要选取在可行域内的点。其中以为初始点求解minF(x,)得极小点的求解过程我们利用最速下降法得到(四)程序代码及运行结果:(1)外点法源程序代码:functionf=again(x,c,e)symsx1x2ta=1;f=x1+x2;y1=-x1^2+x2;y2=x1;y1=-subs(y1,{x1,x2},x);y2=-subs(y2,{x1,x2},x);P=(max(0,double(y1)))^2+(max(0,double(y2)))^2;ifdouble(y1)>0&&double(y2)>0y11=-x1^2+x2;y22=x1;endifdouble(y1)<=0&&double(y2)>0y11=0;y22=x1;endifdouble(y2)<=0&&double(y1)>0y11=-x1^2+x2;y22=0;endFF=f+a*(y11^2+y22^2);a1=diff(FF,x1);b1=diff(FF,x2);a1=subs(a1,{x1,x2},x);b1=subs(b1,{x1,x2},x);g=[a1;b1];d=-g;whileP*a>ewhiledouble(sqrt(a1^2+b1^2))>=x+t*d;FF=subs(FF,{x1,x2},x);f1=diff(FF);f1=solve(f1);iff1~=0ti=double(f1);elsebreakendx=subs(x,t,ti(1,1));FF=f+a*(y11^2+y22^2);a11=diff(FF,x1);b11=diff(FF,x2);a11=subs(a11,{x1,x2},x);b11=subs(b11,{x1,x2},x);g11=[a11;b11];d=-g11;a1=a11;b1=b11;enda=a*c;y1=-x1^2+x2;y2=x1;y1=-subs(y1,{x1,x2},x);y2=-subs(y2,{x1,x2},x);P=(max(0,double(y1)))^2+(max(0,double(y2)))^2;ifdouble(y1)>0&&double(y2)>0y11=-x1^2+x2;y22=x