irene 发表于 2007-12-28 12:33

fmincon 要求目标函数及约束都是下凹么?

fmincon 问题:
1 是否要求目标函数及其约束都是下凹函数(或线性函数)?
2 非线性约束格式是C(x)<0,但是我的C(x)是上凸函数,怎么办啊?
谢谢各位!!

花如月 发表于 2007-12-28 12:47

个人觉得没有实质性的差别,正负只是个符号的问题

无水1324 发表于 2007-12-28 13:41

回复 #1 irene 的帖子

没有上凹函数的要求

irene 发表于 2007-12-28 13:52

回复 #2 花如月 的帖子

谢谢啊 可以再说清楚点么?不太明白 ~不等式约束是C(x)<0,比如我要-log(1+2/x)<0,
C(x)=-log(1+2/x)是x的上凸函数,这样可以么?我的老师说C(x)是下凹的才可以用fmincon,我实在愚钝得很啊~不明白 详细解释一下 谢谢啊!

irene 发表于 2007-12-28 14:01

回复 #3 无水1324 的帖子

谢谢啊 我也怀疑没有这个要求的,如果有的话使用说明里都该有的啊,但是我老师告诉我说con的就是要convex的,我google了一下,有这样的话“My optimization problem is a convex one. It has tens of variables. I am currently using Matlab's "fmincon" (the constrained optimization ...”
“In this work, we have used the. ’fmincon’ function defined in MATLAB. This function solves. the non linear convex optimization problem under nonlinear ...” 所以我猜他们既然这么说 可能还是有convex的限制的~我猜的

花如月 发表于 2007-12-28 14:52

回复 #5 irene 的帖子

我觉得在doc文档里讲得很清楚,依样葫芦即可。

如果还遇到问题,请将你得问题完整描述。

irene 发表于 2007-12-28 16:08

回复 #6 花如月 的帖子

十分谢谢你啊 我还是把问题描述一下吧
0<x(1)<1, 0<x(2)<30, 0<x(3)
条件 x(1)<1/(1+log(1+30/x(2)))
       0.5<x(1)log(1+1/(1+x(2)))
      x(3)<x(1)log(1+3/(1+x(2)))
求最大x(3)
我的fun='-x(3)'
fmincon st.c(x)<0 移项得到
c=[ x(1)-1/(1+log(1+30/x(2)));
   0.5-x(1)*log(1+1/(1+x(2)));------2
    x(3)-x(1)*log(1+3/(1+x(2)))];---3
问题是:式2 和式3 关于变量x(2)不是convex的,是不是就不能用fmincon了,如果可以用,该怎么改动?

花如月 发表于 2007-12-28 17:14

回复 #7 irene 的帖子

x(3)是条件还是目标函数?

star198311 发表于 2007-12-28 18:55

感觉你的问题用fmincon解不出来。
试试fseminf吧。

[ 本帖最后由 star198311 于 2007-12-28 20:25 编辑 ]

irene 发表于 2007-12-28 22:58

回复 #9 star198311 的帖子

谢谢你 我试试fseminf
页: [1]
查看完整版本: fmincon 要求目标函数及约束都是下凹么?