24小时热门版块排行榜    

查看: 2265  |  回复: 37
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xizi19880211

新虫 (初入文坛)

[求助] 1stopt求最小值 已有1人参与

如果是非线性约束求最值,并且约束条件里面的量是变化,比如是随时间变化的,可以用1stopt来实现么?MATlab的GA工具箱可以实现么?求实例代码。
回复此楼

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
代码中:
for k=1:49
    if dp=Pw(k)*0.95-Pl(k)>0;
        Elsp(k)=0;
    else
        Elsp(k)=[Pl(k)-Pw(k)]*0.95*k;
    end
    LPSP++=Elsp(k)/Pl(k);
end;
是干什么用的?没见任何地方用到LPSP和Elsp。
8楼2013-12-30 21:10:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

Eb(k)=Eb(k-1)-Pb(k)*k*0.8;
Ec(k)=Ec(k-1)-Pc(k)*k*0.98;

Pb,Pc又各是什么?没见给出啊!
10楼2013-12-30 21:56:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

如果:Pb(k)=Eb(k)/k

公式中: Eb(k)=Eb(k-1)+Pb(k)*k*0.7; =》Eb(k)=Eb(k-1)+Eb(k)*0.7; =》Eb(k)=Eb(k-1)*10/3

确信对吗?Pb(k)=Eb(k)/k应该是:Pb(k)=Eb(k-1)/k吧?
12楼2013-12-30 22:13:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感觉楼主的模型有问题:

for i=1:49
    if dp=Pw(i)*0.95-Pl(i)>0;
        Elsp(i)=0;
    else
        Elsp(i)=[Pl(i)-Pw(i)]*0.95*i;
    end
    LPSP++=Elsp(i)/Pl(i);
end;

可以计算出LPSP为一定值:181.028476609036,而约束条件有:LPSP<=0.05,??

» 本帖已获得的红花(最新10朵)

23楼2014-01-01 22:20:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

引用回帖:
25楼: Originally posted by xizi19880211 at 2014-01-01 22:34:24
不好意思,我知道了,LPSP++=Elsp(i)/Pl(i)*i,忘了乘以i...

"LPSP++=Elsp(i)/Pl(i)*i"那就更不对了:
1:LPSP会更大(比原先的181.028476609036),这样约束根本不成立;
2:LPSP的计算结果始终是个常数,与参数x1、x2没任何关系,设定一个常数来当约束条件?
35楼2014-01-02 20:45:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

引用回帖:
36楼: Originally posted by xizi19880211 at 2014-01-03 16:28:30
应该不可能呀,Elsp只是一个差值,本来就应该不是很大,要比El小,怎么可能越来越大,哦,我知道为什么了,"LPSP++=Elsp(i)/(Pl(i)*i)",这样呢...

严谨仔细些啊,"LPSP++=Elsp(i)/Pl(i)*i"与"LPSP++=Elsp(i)/(Pl(i)*i)"结果是完全不同的。但LPSP还仍然是个常数啊,让它当约束即使满足条件由什么意义呢?而如果不满足就更无法计算了。
37楼2014-01-03 17:08:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xizi19880211 的主题更新
信息提示
请填处理意见