24小时热门版块排行榜    

查看: 2246  |  回复: 37

xizi19880211

新虫 (初入文坛)

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

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

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

feixiaolin

荣誉版主 (文坛精英)

优秀版主

【答案】应助回帖


fegg7502: 金币+1, 应助指数+1, 3ks 2013-12-31 08:38:49
可以求,约束条件设成循环变量就成。
2楼2013-12-30 09:12:53
已阅   回复此楼   关注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的回帖
普通回帖

xizi19880211

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by feixiaolin at 2013-12-30 09:12:53
可以求,约束条件设成循环变量就成。

也就是说把约束条件那一块用循环来实现?
代码在下面,帮我看看如何循环,谢谢
Pw=[25.3300000000000 25.3300000000000 25.6700000000000 25.6700000000000 33.3300000000000 34.6700000000000 38.3300000000000 33 28 21 14.6700000000000 14.3300000000000 4.43000000000000 5.32000000000000 10.3300000000000 9.88000000000000 8.53000000000000 4.43000000000000 3.33000000000000 3.33000000000000 5.03000000000000 8.01000000000000 5 9.03000000000000 10.9900000000000 10.5300000000000 12.52 20 23.98 30.99 30 28.33 27.53 21.56 27.01 30.32 46.98 46.07 55.65 51.55 59.88 53.66 52.03 47.55 40 53.09 54.99 53.22 50.02];
Pl=[15 15 15 15 15 15 28.9900000000000 28.9900000000000 28.9900000000000 28.9900000000000 28.9900000000000 28.9900000000000 16.5500000000000 16.5500000000000 16.5500000000000 16.5500000000000 9.59000000000000 9.59000000000000 9.59000000000000 9.59000000000000 9.59000000000000 9.59000000000000 9.59000000000000 9.59000000000000 9.59000000000000 23.3300000000000 23.3300000000000 23.3300000000000 23.3300000000000 23.3300000000000 23.3300000000000 23.3300000000000 23.3300000000000 45.8800000000000 45.8800000000000 45.8800000000000 45.8800000000000 45.8800000000000 45.8800000000000 45.8800000000000 45.8800000000000 45.8800000000000 49.5500000000000 49.5500000000000 49.5500000000000 49.5500000000000 30.8900000000000 30.8900000000000 30.8900000000000];
Eb(0)=1.2e-3*x(1);
Ec(0)=3.0375e-6*x(2);
for k=1:49
    if Pw(k)-Pl(k)>0;
        Eb(k)=Eb(k-1)+Pb(k)*k*0.7;
        Ec(k)=Ec(k-1)+Pc(k)*k*0.98;
    else
        Eb(k)=Eb(k-1)-Pb(k)*k*0.8;
        Ec(k)=Ec(k-1)-Pc(k)*k*0.98;
    end
end
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;
MinFunction 0.288*x(1)+7.35e-4*x(2);
Eb(k)*1000/1.2<=x(1)<=Eb(k)*1000/0.72; Ec(k)*100000/0.3037<=x(2)<=Ec(k)*1000000/0.267;x(1)<=0.7*[Pb(k)+Pc(k)]*1000/1.2;
3楼2013-12-30 10:33:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

LoopConstant
4楼2013-12-30 13:04:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xizi19880211

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by feixiaolin at 2013-12-30 13:04:30
LoopConstant

什么意思?初学者,有好多不懂,请问可以细说一下么
5楼2013-12-30 20:11:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
5楼: Originally posted by xizi19880211 at 2013-12-30 20:11:44
什么意思?初学者,有好多不懂,请问可以细说一下么?...

用 LoopConstant 指令。
6楼2013-12-30 20:16:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xizi19880211

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by feixiaolin at 2013-12-30 20:16:48
用 LoopConstant 指令。...

请问这个指令怎么用?我在网上找不到
7楼2013-12-30 20:44:19
已阅   回复此楼   关注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的回帖

xizi19880211

新虫 (初入文坛)

引用回帖:
8楼: Originally posted by dingd at 2013-12-30 21:10:08
代码中:
for k=1:49
    if dp=Pw(k)*0.95-Pl(k)>0;
        Elsp(k)=0;
    else
        Elsp(k)=*0.95*k;
    end
    LPSP++=Elsp(k)/Pl(k);
end;
是干什么用的?没见任何地方用到LPSP和Elsp。...

其实约束条件中还有LPSP《=0.05,只是我没贴出来,就是一个求缺电率的,请问我要怎么改?
9楼2013-12-30 21:17:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xizi19880211 的主题更新
信息提示
请填处理意见