24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2386  |  回复: 37
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xizi19880211

新虫 (初入文坛)

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

如果是非线性约束求最值,并且约束条件里面的量是变化,比如是随时间变化的,可以用1stopt来实现么?MATlab的GA工具箱可以实现么?求实例代码。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
27楼: Originally posted by xizi19880211 at 2014-01-01 22:55:04
里面LPSP++=Elsp(i)/Pl(i)*i;刚才忘了乘i,再加几个约束条件,所有的约束条件我重新写了
LPSP<=0.05;
Pb(i)<=0.00012*x(1);
Pc(i)<=0.00012*x(2);
1000/1.2*Eb(i)<=x(1)<=1000/0.72*Eb(i);
100 ...

条件你自己改吧。你这5个金币累死人。
#include<stdio.h>
#include<math.h>

void main()
{
        int i, j, k;
        double Eb[49], Pb[49], Ec[49], Pc[49], Elsp[49];
        double LPSP, x1, x2, max, dp;
        double PwP[49][2]
        ={
                {25.33,        15},
                {25.33,        15},
                {25.67,        15},
                {25.67,        15},
                {33.33,        15},
                {34.67,        15},
                {38.33,        28.99},
                {33,        28.99},
                {28,        28.99},
                {21,    28.99},
                {14.67,        28.99},
                {14.33,        28.99},
                {4.43,        16.55},
                {5.32,        16.55},
                {10.33,        16.55},
                {9.88,        16.55},
                {8.53,        9.59},
                {4.43,        9.59},
                {3.33,        9.59},
                {3.33,        9.59},
                {5.03,        9.59},
                {8.01,        9.59},
                {5,            9.59},
                {9.03,        9.59},
                {10.99,        9.59},
                {10.53,        23.33},
                {12.52,        23.33},
                {20,    23.33},
                {23.98,        23.33},
                {30.99,        23.33},
                {30,    23.33},
                {28.33,        23.33},
                {27.53,        23.33},
                {21.56,        45.88},
                {27.01,        45.88},
                {30.32,        45.88},
                {46.98,        45.88},
                {46.07,        45.88},
                {55.65,        45.88},
                {51.55,        45.88},
                {59.88,        45.88},
                {53.66,        45.88},
                {52.03,        49.55},
                {47.55,        49.55},
                {40,    49.55},
                {53.09,        49.55},
                {54.99,        30.89},
                {53.22,        30.89},
                {50.02,        30.89},
        };
       
        max=1.0e+16;
        for(i=50; i<5000; i++)
                for(j=100; j<10000; j++)
                {
                        x1=(float)i/1;
                        x2=(float)j/1;
                         
                        Eb[0]=0.0012*x1;
                        Ec[0]=0.0000030375*x2;
                        Pb[1]=0.0012*x1;
                        Pc[1]=0.0000030375*x2;

                        for(i=1; i<=49; i++)
                        {
                                if(PwP[0]>PwP[1])
                                {
                                        Eb=Eb[i-1]+Pb*i*0.7;
                                        Ec=Ec[i-1]+Pc*i*0.98;
                                }
                                else
                                {
                                        Eb=Eb[i-1]-Pb*i*0.8;
                                        Ec=Ec[i-1]-Pc*i*0.98;
                                }
     
                                Pb=Eb/i;   
                                Pc=Ec/i;
                        }

                        for(i=1; i<=49; i++)
                        {
                                dp=PwP[0]*0.95-PwP[1];
                                if(dp>0)
                                        Elsp=0;
                                else
                                        Elsp=(PwP[1]-PwP[0])*0.95*i;
                       
                                LPSP+=Elsp/PwP[1]*i;
                        }
                        if(LPSP>0.05)
                                LPSP=0.05;

                        for(k=0; k<49; k++)
                        if((Eb[k]*1000/1.2<=x1)&&(x1<=Eb[k]*1000/0.72))
                                if((Ec[k]*100000/0.3037<=x2)&&(x2<=Ec[k]*1000000/0.267))
                                        if(x1<=0.7*(Pb[k]+Pc[k])*1000/1.2)
                            {
                                                if(0.288*x1+0.000735*x2<max)
                                                        max=0.288*x1+0.000735*x2;
                                        }


                }

        printf("\n\Min_y=0.288*x(1)+0.000735*x(2)=%f\n", max);  

}
29楼2014-01-01 23:00:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 38 个回答

feixiaolin

荣誉版主 (文坛精英)

优秀版主

【答案】应助回帖


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

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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 311求调剂 +8 lin0039 2026-03-26 8/400 2026-03-28 08:00 by Iveryant
[考研] 311求调剂 +3 希望上岸阿小杨 2026-03-23 3/150 2026-03-28 07:57 by 热情沙漠
[考研] 压国家一区线,求导师收留,有恩必谢! +3 迷人的哈哈 2026-03-28 3/150 2026-03-28 07:34 by ACS Nano——
[考研] 求调剂 +8 张zz111 2026-03-27 9/450 2026-03-28 03:41 by fmesaito
[考研] 086000调剂 +3 7901117076 2026-03-26 3/150 2026-03-27 21:34 by Jianing_Mi
[考研] 287求调剂 +10 land xuxu 2026-03-26 10/500 2026-03-27 15:33 by 帕尔马拉特
[考研] 274求调剂 +17 顾九笙要谦虚 2026-03-24 23/1150 2026-03-27 15:16 by caszguilin
[考研] 0703化学338求调剂! +6 Zuhui0306 2026-03-26 7/350 2026-03-27 10:35 by shangxh
[考研] 304材料求调剂 +4 钟llll 2026-03-26 4/200 2026-03-27 03:42 by wxiongid
[考研] 327求调剂 +7 prayer13 2026-03-23 7/350 2026-03-26 20:48 by 不吃魚的貓
[考研] 286求调剂 +13 Faune 2026-03-21 13/650 2026-03-26 19:52 by peike
[考研] 一志愿北京化工大学材料与化工(085600)296求调剂 +9 稻妻小编 2026-03-26 9/450 2026-03-26 16:16 by 不吃魚的貓
[考研] 334分 一志愿武理 材料求调剂 +4 李李不服输 2026-03-26 4/200 2026-03-26 16:00 by 不吃魚的貓
[考研] 调剂310 +3 温柔的晚安 2026-03-25 4/200 2026-03-25 23:16 by peike
[考研] 07化学303求调剂 +5 睿08 2026-03-25 5/250 2026-03-25 22:46 by 418490947
[考研] 机械学硕总分317求调剂!!!! +4 Acaciad 2026-03-25 4/200 2026-03-25 19:59 by hanserlol
[考研] 求b区院校调剂 +4 周56 2026-03-24 5/250 2026-03-25 17:12 by yishunmin
[考研] 0854电子信息求调剂 324 +4 Promise-jyl 2026-03-23 4/200 2026-03-25 11:36 by Sugarlight
[考研] 336化工调剂 +4 王大坦1 2026-03-23 5/250 2026-03-23 18:32 by allen-yin
[考研] 293求调剂 +3 涛涛Wjt 2026-03-22 5/250 2026-03-22 22:21 by jiangpengfei
信息提示
请填处理意见