关于fmincon求解时,给定不同的初值则得出不同的结果,请问高手原因?
<P>我有个多变量的函数需要求最大值,程序如下:<br>myfun.m<br>function f=myfun(x)<br>r1=2600;q0=0.1412;r2=2200;r0=(r1+r2)/2;<br>q1=0.3622;<br>k=r1*tan(q1);<br>f=-abs(k*x(1)*q0*sin(x(2))-k*r0*x(2)*sin(q0))*sqrt(k^2+(x(1))^2)/(r0*x(1)*sin(q0)+k^2*q0*cos(x(2)))<br><br>myfun_jisuan.m<br>r2=2600;r1=2200;q0=0.1412;<br>x0=;<br>A=[ 10<br> -10<br> 01<br> 0 -1];<br>b=;<br>=fmincon(@myfun,x0,A,b)<br>当给定x0=时,结果是<br>x =</P><P>1.0e+003 *</P>
<P> 2.6000<br> 0.0001</P>
<P><br>fval =</P>
<P> -9.2747</P>
<P><br>但将x0变成x0=时,结果为<br>x =</P>
<P>1.0e+003 *</P>
<P> 2.2000<br> 0.0001</P>
<P><br>fval =</P>
<P> -9.2766</P>
<P>请问为什么的出的X值和函数的值不一样?<br>请高手指点!<br>小弟在此谢了!<br></P>
[此贴子已经被作者于2006-7-1 21:51:53编辑过]
<P>初始点设定的不同当让会找到不同的最优点,这是传统优化算法的缺陷。这是正常的。应为他可能找到的是局部的最优点。</P>
页:
[1]