马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
<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=[2500;0.14];<br>A=[ 1 0<br> -1 0<br> 0 1<br> 0 -1];<br>b=[r2;-r1;q0;0];<br>[x,fval]=fmincon(@myfun,x0,A,b)<br>当给定x0=[2500;0.14]时,结果是<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=[2300;0.14]时,结果为<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编辑过]
|