PDA

查看完整版本 : fmincon能否处理不可微的函数,例如abs函数


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

另外,不能用平方来等价,因为目标函数中除了abs外,还有别的,例如
f =2 * x(1) + 5*abs(x(2)) ;

fanxing39
2008-04-28, 21:59
显然,如果在目标函数中使用了abs函数,目标函数将不可微,那么,能否使用fmincon来求最优呢?我用一个变参数的优化问题试了一下(fmincon默认选择中等规模算法——线搜索),有的时候可以成功出结果,有的时候fmincon看起来陷入死循环中。请问各位以下问题:
1、有没有办法使得fmincon...

:smile: 查相关算法,自己写,调用这个函数不行的话。或者设定x的取值范围,分开讨论,这样就可以把绝对值去掉了。 然后从分开讨论的结果中选择最小的值就可以了