24小时热门版块排行榜    

查看: 2246  |  回复: 37

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
20楼: Originally posted by xizi19880211 at 2014-01-01 15:52:52
不好意思,刚才有些地方有问题,这样要改哪里?
Constant Pw=;
         Pl=;
Parameter  x(1),x(2);
MinFunction y=0.288*x(1)+0.000735*x(2);
StartProgram;
var i: Integer;
Eb(0)=0.0012*x(1);
Ec(0)= ...

我晚些时间答复你。
21楼2014-01-01 16:29:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xizi19880211

新虫 (初入文坛)

引用回帖:
21楼: Originally posted by feixiaolin at 2014-01-01 16:29:20
我晚些时间答复你。...

好的,太感谢。
22楼2014-01-01 16:34: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的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

你这个很难求极小值;换言之,可能没有极小值。
我完全用C程序跑了一下,没出极小值。

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

24楼2014-01-01 22:32:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xizi19880211

新虫 (初入文坛)

引用回帖:
23楼: Originally posted by dingd at 2014-01-01 22:20:46
感觉楼主的模型有问题:

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

可以计算出LPSP为一定值:181 ...

不好意思,我知道了,LPSP++=Elsp(i)/Pl(i)*i,忘了乘以i
25楼2014-01-01 22:34:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xizi19880211

新虫 (初入文坛)

引用回帖:
24楼: Originally posted by feixiaolin at 2014-01-01 22:32:29
你这个很难求极小值;换言之,可能没有极小值。
我完全用C程序跑了一下,没出极小值。

不好意思,里面有个地方有点问题,等会我补上所有的。
26楼2014-01-01 22:36:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xizi19880211

新虫 (初入文坛)

送红花一朵
引用回帖:
24楼: Originally posted by feixiaolin at 2014-01-01 22:32:29
你这个很难求极小值;换言之,可能没有极小值。
我完全用C程序跑了一下,没出极小值。

里面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);
100000/0.3037*Ec(i)<=x(2)<=100000/0.267*Ec(i);
x(1)<=7000/1.2*[Pb(i)+Pc(i)];
0.000384*x(1)+0.00000271*x(2)>=0.68*Pl(i)*i;
可以把C程序发给我么?谢谢
27楼2014-01-01 22:55:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xizi19880211

新虫 (初入文坛)

送红花一朵
引用回帖:
23楼: Originally posted by dingd at 2014-01-01 22:20:46
感觉楼主的模型有问题:

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

可以计算出LPSP为一定值:181 ...

LPSP++=Elsp(i)/Pl(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);
100000/0.3037*Ec(i)<=x(2)<=100000/0.267*Ec(i);
x(1)<=7000/1.2*[Pb(i)+Pc(i)];
0.000384*x(1)+0.00000271*x(2)>=0.68*Pl(i)*i;
这样呢?谢谢了
28楼2014-01-01 22:57:04
已阅   回复此楼   关注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的回帖

xizi19880211

新虫 (初入文坛)

引用回帖:
29楼: Originally posted by feixiaolin at 2014-01-01 23:00:34
条件你自己改吧。你这5个金币累死人。
#include<stdio.h>
#include<math.h>

void main()
{
        int i, j, k;
        double Eb, Pb, Ec, Pc, Elsp;
        double LPSP, x1, x2, max, dp;
        double PwP
        ={ ...

谢谢了,实在是对不住了,要不我再给你几个金币,是不是送红花那个就是给金币?
30楼2014-01-01 23:09:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xizi19880211 的主题更新
信息提示
请填处理意见