tmclz 发表于 2006-7-1 20:35

关于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编辑过]

tz6091 发表于 2006-7-1 22:20

<P>初始点设定的不同当让会找到不同的最优点,这是传统优化算法的缺陷。这是正常的。应为他可能找到的是局部的最优点。</P>
页: [1]
查看完整版本: 关于fmincon求解时,给定不同的初值则得出不同的结果,请问高手原因?