楼主: pan3676765
30797 5

[问答] matlab运用fmincon做非线性优化求解时遇到迭代停止的现象,如何解决? [推广有奖]

  • 0关注
  • 0粉丝

本科生

54%

还不是VIP/贵宾

-

威望
0
论坛币
176 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
823 点
帖子
62
精华
0
在线时间
83 小时
注册时间
2013-8-10
最后登录
2017-4-26

楼主
pan3676765 发表于 2015-3-20 22:44:04 |AI写论文
2论坛币


Solver stopped prematurely.fmincon stopped because it exceeded the function evaluation limit,
options.MaxFunEvals = 152100 (the default value).


请问出现这样的情况应该怎么办?哪位大神能告知


最佳答案

Xaero 查看完整内容

2楼那个回答不对。 你出现这个问题是Matlab迭代的计算次数达到默认上限了,还没有找到结果。 简单直接的办法是提高上限,具体参考 fmincon 帮助中关于 option 的设置部分,即设置一个新的option, 把其中的 MaxFunEvals 数字增大很多。 当然,前提是要检查这个问题是否可解,否则你就算永远迭代也算不出结果。如果问题不可解,那么要从问题 specification, 求解算法选择上入手了。
关键词:fmincon MATLAB matla 非线性优化 atlab 如何 function default because stopped

本帖被以下文库推荐

沙发
Xaero 发表于 2015-3-20 22:44:05
2楼那个回答不对。
你出现这个问题是Matlab迭代的计算次数达到默认上限了,还没有找到结果。
简单直接的办法是提高上限,具体参考 fmincon 帮助中关于 option 的设置部分,即设置一个新的option, 把其中的 MaxFunEvals 数字增大很多。

当然,前提是要检查这个问题是否可解,否则你就算永远迭代也算不出结果。如果问题不可解,那么要从问题 specification, 求解算法选择上入手了。

藤椅
magicsun 发表于 2015-3-21 12:52:02
函数值太大了,你比如, exp(1000)就是inf值。

板凳
pan3676765 发表于 2015-3-21 14:29:19
magicsun 发表于 2015-3-21 12:52
函数值太大了,你比如, exp(1000)就是inf值。
那应该怎么办?

报纸
pan3676765 发表于 2015-3-23 20:21:46
Xaero 发表于 2015-3-22 12:41
2楼那个回答不对。
你出现这个问题是Matlab迭代的计算次数达到默认上限了,还没有找到结果。
简单直接的办 ...
真的把上限也设置了,依然模拟不出来

地板
jason26258 在职认证  发表于 2016-4-12 17:44:14
换一种算法试试看!!!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 11:28