声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2321|回复: 6

[综合讨论] 如何解决fmincon处理abs函数时的死循环问题

[复制链接]
发表于 2008-4-26 11:45 | 显示全部楼层 |阅读模式

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

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

x
显然,如果在目标函数中使用了abs函数,目标函数将不可微,那么,能否使用fmincon来求最优呢?我用一个变参数的优化问题试了一下(fmincon默认选择中等规模算法——线搜索),有的时候可以成功出结果,有的时候fmincon看起来陷入死循环中。请问各位以下问题:
1、有没有办法使得fmincon不陷入死循环?
2、如果陷入了死循环,有没有办法跳出死循环,并继续运行?(人工的ctrl+c不行,这会使程序整个中断,白算了)

[ 本帖最后由 eight 于 2008-4-28 17:29 编辑 ]
回复
分享到:

使用道具 举报

 楼主| 发表于 2008-4-26 12:12 | 显示全部楼层
另外,不能用平方来等价,因为目标函数中除了abs外,还有别的,例如
           f =2 * x(1) + 5*abs(x(2)) ;

[ 本帖最后由 ulu 于 2008-4-26 12:14 编辑 ]
发表于 2008-4-26 12:15 | 显示全部楼层


你有代码吗?有的话,一起帖出来吧
发表于 2008-4-26 15:51 | 显示全部楼层
第一个我问题不知道,第二个问题可以记住循环的次数,超过一定次数就保存结果跳出循环就好了啊

评分

1

查看全部评分

发表于 2008-4-29 08:59 | 显示全部楼层
fmincon目标函数如果超出定义的范围怎么办?比如exp(10.^10)
还有fmincon是如何求lambda算子系数的?

[ 本帖最后由 eight 于 2008-4-29 09:55 编辑 ]
 楼主| 发表于 2008-4-30 17:21 | 显示全部楼层
谢谢!
请问是在目标函数中加break吗?这样做不行呀
我遇到的问题是fmincon中的子函数死循环,而且还不知道是哪个函数死循环,怎么break?
发表于 2008-9-19 10:55 | 显示全部楼层

贴出问题大家才好帮你解决啊,这样凭空说是不能解决问题的

贴出问题大家才好帮你解决啊,这样凭空说是不能解决问题的
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-20 18:16 , Processed in 0.071681 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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