资源描述:
《求反求参数(无约束非线性优化方法)matlab实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.求反求参数(无约束非线性优化方法)的matlab实现求反求参数(无约束非线性优化方法)的matlab实现参数k,d。初始值代入差分得到计算值T算,(由程序),给出实测值T测,目标函数各点计算值与实测值的差最小。?因参数和目标函数间通过一系列数值计算,不知有下面的方法能否得到k,d想用Nelder-Mead法(单纯形法)优化:%Nelder-Mead法解最优化问题%-函数f(x1,x2,...,xn)是一个有N个实数变量的函数,而且给定N+1个初始点%Vk=(vk,1,...,vk,N),k=0,1,...,Nfunction[v0,y0,dv,dy]=nelder(F
2、,V,min1,max1,epsilon,show)%Input-Fistheobjectfunctioninputasstring'F'% -Visa3*nmatrixcontaioningstaringsimplex% -min1&max1areminimunandmaximunnumber% ofiterations% -epsilonisthetolerance% -show==1displaysiterations(pandQ)%output-v0isthevertexfortheminimun%
3、-y0isthefunctionvalueF(v0)% -dVisthesizeofthefinalsimplex% -dyistheerrorboundfortheminimum% -p isamatrixcontainingthevertexiterations% -Q isanarraycontainingtheiterationsforF(p)ifnargin==5, show=0;end[mmn]=size(V);%Ordertheverticesforj=1:n+1 z=V(j,1:n); Y(j)=feval
4、(F,z);end[mmlo]=min(Y);[mmhi]=max(Y);li=hi;ho=lo;forj=1:n+1 if(j~=lo&j~=hi&Y(j)<=Y(li)) li=j;endif(j~=hi&j~=lo&Y(j)>Y(li)) ho=j; endendcnt=0;%Startofnelder-MeadalgorithmWhile(Y(hi)>Y(lo)+epsilon&cnt5、cnt6、; R=2*M-V(hi,1:n); yR=feval(F,R); if(yR7、n)=R; Y(hi)=yR; end c=(V(hi,1:n)+M)/2; yc=feval(F,c); c2(M+R)/2; yc2=feval(F,c2); if(yc28、(j,1:n)+V(lo,1:n))/2; z=V(j,1:n); Y(j)=feval(F,z); end end end end [mmlo]=min(Y); [mmhi]=max(Y); li=hi; ho=lo; forj=1;n+1 if(j~=lo&j~=hi&Y(j)<=Y(li)) li=j; end if(j~=hi&j~=lo&Y(j)>Y(ho)) ho=j; end e