24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1887  |  回复: 8

老花

木虫 (著名写手)

老花

[求助] 帮忙给看看这个matlab优化函数 问题

主:
A=[];b=[];Aeq=[];Beq=[];Lb=[];Ub=[];
[x,f]=fmincon('myobj',[0;0],[],[],[],[],[],[],'mycon');

目标函数:function y=myobj(x)
y=(-1)*8*x(2)*(1-x(1))*x(3);

非线性约束function[c,ceq]=mycon(x)
cep=[x1*(1-x(1))*x(3)-x(2)*(1+x(2));2*acos(exp(-x(4)))-x(3);1.5*2/sin(x(5))-x(4);atan((1-x(1))/(1+x(2)))];
请帮忙看看程序的错误,谢谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

平凡中不平凡。我们都希望长寿,但是只有有意义的人生和生命中那些闪光的瞬间才是最重要的。用我们的精神而不是钟表来度量时间的流逝吧。....
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

starlee

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
老花: 金币+100, ★★★★★最佳答案, 结果有点偏差,我再研究一下,谢谢啊! 2012-06-28 23:12:22
老花: 回帖置顶 2012-06-28 23:24:42
A=[];B=[];Aeq=[];Beq=[];Lb=[];Ub=[];
[x,fval]=fmincon('myobj',rand(1,3),A,B,Aeq,Beq,Lb,Ub,'mycon')

function f=myobj(x)
f=-1*8*x(2)*(1-x(1))*2/pi*acos(exp(-1.5*2/sin(x(3))));

function [c,ceq]=mycon(x)
c=0;
ceq(1)=x(1)*(1-x(1))*2/pi*acos(exp(-1.5*2/sin(x(3))))-x(2)*(1+x(2));
ceq(2)=atan((1-x(1))/(1+x(2)))-x(3);

结果:
x =

    0.3187    0.1832    0.5224


fval =

   -0.9971
结果合不合理?
7楼2012-06-28 22:59:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

starlee

金虫 (正式写手)

目标函数只到x(3)
约束条件中却有x(4),这不合理啊,楼主
2楼2012-06-28 21:27:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老花

木虫 (著名写手)

老花

引用回帖:
2楼: Originally posted by starlee at 2012-06-28 21:27:48
目标函数只到x(3)
约束条件中却有x(4),这不合理啊,楼主

问题是里面没有啊! 我自己加上啊?
平凡中不平凡。我们都希望长寿,但是只有有意义的人生和生命中那些闪光的瞬间才是最重要的。用我们的精神而不是钟表来度量时间的流逝吧。....
3楼2012-06-28 21:46:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

starlee

金虫 (正式写手)

把x(4) x(5)有关的约束条件去掉,倒是能算个结果出来
4楼2012-06-28 22:09:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老花

木虫 (著名写手)

老花

function[c,ceq]=mycon(x)
cep=[x1*(1-x(1))*2/pi*acos(exp(-1.5*2/sin(x(3))))-x(2)*(1+x(2));atan((1-x(1))/(1+x(2)))-x(3)];

function y=myobj(x)
y=(-1)*8*x(2)*(1-x(1))*2/pi*acos(exp(-1.5*2/sin(x(3)))) ;

修改后还是这样! 请大家指点
Error in myobj (line 2)
y=(-1)*8*x(2)*(1-x(1))*2/pi*acos(exp(-1.5*2/sin(x(3)))) ;

Error in fmincon (line 601)
      initVals.f = feval(funfcn{3},X,varargin{:});

Caused by:
    Failure in initial user-supplied objective function evaluation.
    FMINCON cannot continue.
平凡中不平凡。我们都希望长寿,但是只有有意义的人生和生命中那些闪光的瞬间才是最重要的。用我们的精神而不是钟表来度量时间的流逝吧。....
5楼2012-06-28 22:33:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老花

木虫 (著名写手)

老花

引用回帖:
4楼: Originally posted by starlee at 2012-06-28 22:09:02
把x(4) x(5)有关的约束条件去掉,倒是能算个结果出来

你帮忙看看我下边改的啊这个!
平凡中不平凡。我们都希望长寿,但是只有有意义的人生和生命中那些闪光的瞬间才是最重要的。用我们的精神而不是钟表来度量时间的流逝吧。....
6楼2012-06-28 22:46:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老花

木虫 (著名写手)

老花

引用回帖:
7楼: Originally posted by starlee at 2012-06-28 22:59:10
A=[];B=[];Aeq=[];Beq=[];Lb=[];Ub=[];
=fmincon('myobj',rand(1,3),A,B,Aeq,Beq,Lb,Ub,'mycon')

function f=myobj(x)
f=-1*8*x(2)*(1-x(1))*2/pi*acos(exp(-1.5*2/sin(x(3))));

function =mycon(x)
c=0;
...

rand(1,3),A,B,Aeq
啥意思啊? 解释一下呗!
平凡中不平凡。我们都希望长寿,但是只有有意义的人生和生命中那些闪光的瞬间才是最重要的。用我们的精神而不是钟表来度量时间的流逝吧。....
8楼2012-06-28 23:24:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

starlee

金虫 (正式写手)

引用回帖:
8楼: Originally posted by 老花 at 2012-06-28 23:24:31
rand(1,3),A,B,Aeq
啥意思啊? 解释一下呗!...

A,B是空矩阵啊,第一行写明了
rand(1,3)指 初值为1行3列的0~1随机数
结果是否准确与初值的关系比较大的
9楼2012-06-29 12:37:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 老花 的主题更新
信息提示
请填处理意见