如何解决fmincon处理abs函数时的死循环问题
显然,如果在目标函数中使用了abs函数,目标函数将不可微,那么,能否使用fmincon来求最优呢?我用一个变参数的优化问题试了一下(fmincon默认选择中等规模算法——线搜索),有的时候可以成功出结果,有的时候fmincon看起来陷入死循环中。请问各位以下问题:1、有没有办法使得fmincon不陷入死循环?
2、如果陷入了死循环,有没有办法跳出死循环,并继续运行?(人工的ctrl+c不行,这会使程序整个中断,白算了)
[ 本帖最后由 eight 于 2008-4-28 17:29 编辑 ] 另外,不能用平方来等价,因为目标函数中除了abs外,还有别的,例如
f =2 * x(1) + 5*abs(x(2)) ;
[ 本帖最后由 ulu 于 2008-4-26 12:14 编辑 ] 原帖由 ulu 于 2008-4-26 12:12 发表 http://www.chinavib.com/forum/images/common/back.gif
另外,不能用平方来等价,因为目标函数中除了abs外,还有别的,例如
f =2 * x(1) + 5*abs(x(2)) ;
你有代码吗?有的话,一起帖出来吧 第一个我问题不知道,第二个问题可以记住循环的次数,超过一定次数就保存结果跳出循环就好了啊 fmincon目标函数如果超出定义的范围怎么办?比如exp(10.^10)
还有fmincon是如何求lambda算子系数的?
[ 本帖最后由 eight 于 2008-4-29 09:55 编辑 ] 谢谢!
请问是在目标函数中加break吗?这样做不行呀
我遇到的问题是fmincon中的子函数死循环,而且还不知道是哪个函数死循环,怎么break?
贴出问题大家才好帮你解决啊,这样凭空说是不能解决问题的
贴出问题大家才好帮你解决啊,这样凭空说是不能解决问题的
页:
[1]