声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1426|回复: 1

[综合讨论] 关于fmincon求解时,给定不同的初值则得出不同的结果,请问高手原因?

[复制链接]
发表于 2006-7-1 20:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

回复
分享到:

使用道具 举报

发表于 2006-7-1 22:20 | 显示全部楼层
<P>初始点设定的不同当让会找到不同的最优点,这是传统优化算法的缺陷。这是正常的。应为他可能找到的是局部的最优点。</P>
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 22:21 , Processed in 0.078212 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表