<>我编的POWELL方法,总是没有正确的结果,请问是不是一维搜索的方法不对,请问该采用什么方法,我的是菲薄聂耳法</P>
<>你好,请问你有DFP算法的程序吗,我用了POWELL方法,解的结果很不理想,不知道是不是我写错了,帮忙看看,谢谢,我的邮箱是<a href="http://www.shumo.com/bbs/mailtwangkwmail@163.com" target="_blank" ><FONT color=#000000>wangkwmail@163.com</FONT></A>可以与我联系,谢谢,期待你的回答</P>
<>不知道你的一维搜索采用的是什么方法,能求多极值的问题吗</P>
<P>function x=test<BR>global x;<BR>global d;<BR>global e;<BR>dlt=1;<BR>x0=[15.1,5.3,0.1,0.1];<BR>d=eye(4,4);<BR>%d1=eye(4,4);<BR>e=zeros(1,4);<BR>epnal=0.0000001;<BR>alfa=zeros(1,4);<BR>alfa5=0;<BR>k=1;<BR>%i=1;<BR>x=x0;<BR>x00=x;<BR>%while feixianxing(x)>=0.05<BR>g=1;<BR>while g>=0.000001<BR> for i=1:1:4<BR> alfa(i)=yiweisousuo(x,d,i);<BR> x=x00+alfa(i)*d(i,;<BR> x00=x;<BR> end<BR> r=norm(x0-x,'fro');<BR> e=(x-x0)/r;<BR> alfa5=yiweisousuop(x,e)<BR> x=x+alfa5*e<BR> alfamax=max(alfa)<BR> %delt=alfamax/r;<BR> for i=1:1:4<BR> if alfa(i)==max(alfa);<BR> s=i<BR> end<BR> end<BR> if alfamax*dlt/r>=epnal<BR> for i=1:1:4<BR> if i==s<BR> d(i,=e<BR> else<BR> d(i,=d(i,:)<BR> end<BR> end<BR> dlt=alfamax*dlt/r;<BR> end<BR> g=feixianxing(x)<BR> x0=x;<BR> if g>0.001<BR> break;<BR> end<BR> <BR>end</P>
<P>%end<BR></P> |