matlab优化函数fmincon函数的问题

上面y1y2y3是三种方案的最后的能量效率,按理论来说,y1的值应该是最大的,但是,现在画出的图,三个几乎是重合的。我现在想知道,fmincon这个函数我用的是不是有问题... 上面 y1 y2 y3是三种方案的最后的能量效率,按理论来说,y1的值应该是最大的,但是,现在画出的图,三个几乎是重合的。
我现在想知道,fmincon这个函数我用的是不是有问题,总感觉,它给出的值并不是最优值。
另外程序运行时,会有如下警告:
Warning: Trust-region-reflective method does not currently solve this type of problem,
using active-set (line search) instead.
希望能帮我解决这个问题,告诉我该怎么用这个函数,得出正确的结果
展开
 我来答
tianxiawulang
2015-05-08 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2652万
展开全部
1、是不是局部最优可以通过退出代码exitflag辅助判断。至于说全局最优,没有哪种优化方法能够保证,即使用全局优化工具箱中的遗传算法之类的,也只是增加得到全局最优解的机会。

2、那个警告没影响,可以忽略,不想看到的话,也可以关闭或通过指定算法来避免。

3、受字数限制,代码只能贴图片,但这样我没法测试,只能给你提这些建议。必要时,可以考虑通过网盘或博客上传代码。或者私信也可以。
追问
我私信你了,求回复
追答

1、你的程序有问题,如果排除随机因素,三个结果是相同的。

原因在于,你用arrayfun调用f返回的都是第一个参数,y2、y3根本没起作用。

把主程序改成:

Pt=10:10:50;     
[y1,y2,y3]=arrayfun(@f1,Pt);
plot(Pt,y1,'b-',Pt,y2,'g-',Pt,y3,'r-');
xlabel('系统总发射功率');
ylabel('能量效率');
legend('最优天线选择','一种简单的天线选择','不进行天线选择');

2、对y2的优化存在问题。

现在的情况是,marmin、mbrmin的结果都是0,导致目标函数出现NaN,优化无法进行。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式