ZKX's LAB

约束最优化问题求解 如何证明无约束优化问题有最优解

2021-04-09知识14

如何用matlab求解非线性约束优化问题,对于非线性约束的优化问题,matla有个很好的函数fmico可以很容易解决。之前一个经验已经详细介绍了fmico的用法,下面通过一个例子来。

在MATLAB中用神经网络算法求解无约束最优化问题 程序一:GA训练BP权值的主函数 function net=GABPNET(XX,YY)%使用遗传算法对BP网络权值阈值进行优化,再用BP算法训练网络%数据归一化预处理 nntwarn off XX=[1:19;2:20;3:21;4:22]';YY=[1:4];XX=premnmx(XX);YY=premnmx(YY);YY%创建网络 net=newff(minmax(XX),[19,25,1],{'tansig','tansig','purelin'},'trainlm');下面使用遗传算法对网络进行优化 P=XX;T=YY;R=size(P,1);S2=size(T,1);S1=25;隐含层节点数 S=R*S1+S1*S2+S1+S2;遗传算法编码长度 aa=ones(S,1)*[-1,1];popu=50;种群规模 save data2 XX YY%是将 xx,yy 二个变数的数值存入 data2 这个MAT-file,initPpp=initializega(popu,aa,'gabpEval');初始化种群 gen=100;遗传代数%下面调用gaot工具箱,其中目标函数定义为gabpEval[x,endPop,bPop,trace]=ga(aa,'gabpEval',[],initPpp,[1e-6 1 1],'maxGenTerm',gen,.'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]);绘收敛曲线图 figure(1)plot(trace(:,1),1./trace(:,3),'r-');hold on plot(trace(:,1),1./trace(:,2),'b-');xlabel('Generation');ylabel('Sum-Squared Error');figure(2)plot(trace(:,1),trace(:,3),'r-');hold on plot。

有约束最优化问题,用matlab求解 假设最优时候的a1不等于a2,那么取a1'=a2'=max{a1,a2}将是更优的解。因此,最优时候的a1与a2必定相等。给定角加速度a时,加速时间越长那么转过的角度越多。在加速度不大于0.5g的约束下,加速时间最多可以是:加速与减速过程所转过的角度是a*t(a)^2,是个随a递减的函数。假设最优时候的角加速度为a,加速时间t(a),那么可以增大a到某个值a',加速时间为t(a'),使得a'*t(a')^2=at^2。因此,最优时候的加速时间必取到最大值。综上,可得最终优化式子:代码如下:g=9.8;r=.056;t=(a)(g^2/(4*r^2*a^4)-1/a^2)^(1/4);f=(a)t(a)+22.2/a/t(a);a=fminsearch(f,1e-6);fprintf('a1=a2=f\\nt1=t3=f\\nt2=f\\n',a,t(a),22.2/a/t(a)-t(a))

#约束最优化问题求解

qrcode
访问手机版