ããmatlabä¸å¤ç®æ 线æ§è§åå½æ°ï¼å
·ä½ä½¿ç¨å¦ä¸ï¼
ãã线æ§è§åï¼LP(Linear programming,线æ§è§å)æ¯ä¸ç§ä¼åæ¹æ³,å¨ä¼åé®é¢ä¸ç®æ å½æ°å约æå½æ°å为åéåéç线æ§å½æ°,LPé®é¢å¯æ述为:
ããmin x
ããs.t.
ããA·x b
ããAeq·x=beq
ããvlb x vub
ããå
¶ä¸ ï¼b,beqå为åéï¼A,Aeq为ç©éµï¼x为åéåé.ç©éµAååébæ¯çº¿æ§ä¸çå¼çº¦ææ¡ä»¶çç³»æ°ï¼Aeqåbeqæ¯çå¼çº¦ææ¡ä»¶çç³»æ°.
ããå¨MATLABä¸ï¼ç¨äºLPçæ±è§£å½æ°ä¸ºlinprog.å
¶è°ç¨æ ¼å¼ä¸ºï¼
ãã[x,fval,lambda]=linprog
ãã(f,A,b,Aeq,beq,vlb,vub,x0,options)
ããå
¶ä¸f,A,b,æ¯ä¸å¯ç¼ºççè¾å
¥åéï¼xæ¯ä¸å¯ç¼ºççè¾åºåéï¼å®æ¯é®é¢ç解.vlb,vubåæ¯åéï¼åå«è¡¨ç¤ºxçä¸çåä¸çï¼x0为xçèµ·å§ç¹ï¼options为optimsetå½æ°ä¸å®ä¹çåæ°çå¼ï¼fvalæ¯ç®æ å½
ããæ°å¨è§£xå¤çå¼ï¼lambda为å¨è§£xå¤çlagrangeä¹å.lambda.lower对åºäºvlbï¼lambda.upper对åºäºulbï¼lambda.ineqlinæ¯å¯¹åºäºçº¿æ§ä¸çå¼çº¦æçï¼lambda.eqlinæ¯å¯¹åºäºçº¿æ§çå¼çº¦æç.
ããä¸é¢ä¸¾ä¸ä¸ªå°ä¾åççå½æ°çä½ç¨ï¼
ããminZ=-4a+b+7c
ããs.t.
ããa+b-c=5 3a-b+c<=4
ããa+b-4c<=-7 a,b>=0
ããé®aï¼bï¼cåå«åä½å¼æ¶ï¼Zææå°å¼
ããç¼åMæ件
ããc=[-4 1 7];
ããA=[3 -1 1;1 1 -4];
ããb=[4; -7];
ããAeq=[1 1 -1];
ããbeq=[5];vlb=[0, 0];
ããvub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
ããç»æï¼x = 2.2500 6.7500 4.0000fval = 25.7500
ããå³aï¼bï¼cåå«å2.2500 6.7500 4.0000æ¶ï¼Zææå°å¼25.7500
ããæ´å 详ç»çä¾åå¦ä¸ï¼å 为ä¸é¢æ²¡æ讲ææ大å¼ä¸æå°å¼çåºå«ï¼è¡¥å
å¦ä¸ï¼
ããå½æ°æ ¼å¼:linprog(f,a,b,a1,b1,xstart,xend)
ããf:æ±è§£æå°å½æ°ç表达å¼ç³»æ°ç©éµæ¯m*1çç©éµ
ããa:â¤ä¸çå¼æ¡ä»¶çº¦æç©éµå
¶å为形å¼
ããb:a对åºä¸çå¼å³è¾¹ç常æ°é¡¹
ããa1:=çå¼æ¡ä»¶çº¦æç©éµ
ããb1:a1对åºä¸çå¼å³è¾¹ç常æ°é¡¹
ããxstart:xçåå¼èå´çæå°å¼çç³»æ°ç©éµä¸ºn*1çç©éµ
ããxend:xçåå¼èå´çæ大å¼çç³»æ°ç©éµä¸ºn*1çç©éµ
ããå½æ°è¯´æ:ä¸åå¨ç项填å[]å³å¯
ããå½æ°åè½:线æ§è§åæ±æä¼å¼.
温馨提示:答案为网友推荐,仅供参考