Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-04-26, 12:07   #1
ulu
初级会员
 
注册日期: 2008-04-26
年龄: 43
帖子: 1
声望力: 0
ulu 正向着好的方向发展
默认 fmincon能否处理不可微的函数,例如abs函数

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

另外,不能用平方来等价,因为目标函数中除了abs外,还有别的,例如
f =2 * x(1) + 5*abs(x(2)) ;
ulu 当前离线   回复时引用此帖
旧 2008-04-28, 21:59   #2
fanxing39
高级会员
 
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31
fanxing39 是一位成功的新星fanxing39 是一位成功的新星fanxing39 是一位成功的新星fanxing39 是一位成功的新星
默认

引用:
作者: ulu 查看帖子
显然,如果在目标函数中使用了abs函数,目标函数将不可微,那么,能否使用fmincon来求最优呢?我用一个变参数的优化问题试了一下(fmincon默认选择中等规模算法——线搜索),有的时候可以成功出结果,有的时候fmincon看起来陷入死循环中。请问各位以下问题:
1、有没有办法使得fmincon...
:smile: 查相关算法,自己写,调用这个函数不行的话。或者设定x的取值范围,分开讨论,这样就可以把绝对值去掉了。 然后从分开讨论的结果中选择最小的值就可以了
fanxing39 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:46


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.