非线性规划问题的求解方法PPT学习课件.ppt
非线性规划问题的求解方法非线性规划问题的求解方法1Content无约束非线性规划问题无约束非线性规划问题有约束非线性规划问题有约束非线性规划问题Matlab求解有约束非线性规划问题求解有约束非线性规划问题2一一.无约束问题无约束问题一维搜索指寻求一元函数在某区间上的最优值点的方法。这类方法不仅有实用价值,而且大量多维最优化方法都依赖于一系列的一维最优化。逐次插值逼近法逐次插值逼近法 近似黄金分割法(又称近似黄金分割法(又称0.6180.618法)法)无约束最优化 指寻求 n元实函数f在整个n维向量空间Rn上的最优值点的方法。无约束最优化方法大多是逐次一维搜索的迭代算法。这些迭代算法的基本3 思想是:在一个近似点处选定一个有利搜索方向,沿这个方向进行一维寻查,得出新的近似点。然后对新点施行同样手续,如此反复迭代,直到满足预定的精度要求为止。根据搜索方向的取法不同,可以有各种算法。最速下降法(负梯度法)最速下降法(负梯度法)NewtonNewton法法 共轭梯度法共轭梯度法 拟拟NewtonNewton法法 变尺度法变尺度法 4二二.有约束问题有约束问题(一)罚函数法(一)罚函数法(SUMTSUMT)1 1、算法思想:、算法思想:将有约束优化问题转化为一系列无约束优化问题将有约束优化问题转化为一系列无约束优化问题进行求解进行求解.(Sequential Unconstrained Minimization .(Sequential Unconstrained Minimization Technique-SUMTTechnique-SUMT)2 2、算法类型:、算法类型:q 外点法(外惩法)外点法(外惩法)q 内点法(内惩法)内点法(内惩法)53 3、问题:、问题:6 4.1 4.1、外点法(外部惩罚函数法):、外点法(外部惩罚函数法):7yesNo外点法框图:8 4.2 4.2、内点法(内部惩罚函数法):、内点法(内部惩罚函数法):9内点法框图yesNo10内点法的内点法的matlab程序:程序:m=zeros(1,50);a=zeros(1,50);b=zeros(1,50);f0=zeros(1,50);symsx1x2e;m(1)=1;c=0.2;a(1)=2;b(1)=-3;f=x12+x22-e*(1/(2*x1+x2-2)+1/(1-x1);f0(1)=15;fx1=diff(f,x1);fx2=diff(f,x2);fx1x1=diff(fx1,x1);fx1x2=diff(fx1,x2);fx2x1=diff(fx2,x1);fx2x2=diff(fx2,x2);fork=1:100 x1=a(k);x2=b(k);e=m(k);forn=1:100f1=subs(fx1);f2=subs(fx2);f11=subs(fx1x1);f12=subs(fx1x2);11f21=subs(fx2x1);f22=subs(fx2x2);if(double(sqrt(f12+f22)=0.002)a(k+1)=double(x1);b(k+1)=double(x2);f0(k+1)=double(subs(f);break;elseX=x1x2-inv(f11f12;f21f22)*f1f2;x1=X(1,1);x2=X(2,1);endendif(double(sqrt(a(k+1)-a(k)2+(b(k+1)-b(k)2)=0.001)&(double(abs(f0(k+1)-f0(k)/f0(k)=0.001)a(k+1)b(k+1)kf0(k+1)break;elsem(k+1)=c*m(k);12endend 结果:ans=1.0000ans=-7.1594e-004k=1413小结小结讲解了两个求解有约束非线性规划问题的特点讲解了两个求解有约束非线性规划问题的特点.易于实现,方法简单易于实现,方法简单.没有用到目标函数的导数没有用到目标函数的导数.问题的转化技巧(近似为一个无约束规划)问题的转化技巧(近似为一个无约束规划).14 (二)拉格朗日乘子法(二)拉格朗日乘子法 (三)可行方向法与广义简约梯度法(三)可行方向法与广义简约梯度法 (四)(四)SQPSQP方法方法15三三.Matlab.Matlab求解有约束问题求解有约束问题16运行输出:运行输出:x=24.000012.000012.0000fval=-3.4560e+0317(二)非负条件下线性最小二乘(二)非负条件下线性最小二乘lsqnonneglsqnonneg18(三)有约束线性最小二乘(三)有约束线性最小二乘lsqlinlsqlin19 (四)非线性最小二乘(四)非线性最小二乘lsqnonlinlsqnonlin20 求解x,使得下式最小运行输出:运行输出:x=0.2578 0.2578resnorm=124.3622 21Thankyouforyourattention!22