' H. l, V/ H+ u& j6 V* l) T& c$ Hlb=[0 0 0 0 0]; - c+ Q' H/ k- g! q- S5 `" c1 `1 q }- B1 m. @ c1 M7 E" X
ub=[1 1 1 1 1]; 0 d9 i7 a! M0 ~' ]. f $ o, b4 ]) A# e0 w[x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb,ub) 运行结果: 6 P2 S/ C+ z q! Z
/ I: `$ q% Q' v$ \; K; k- hExiting: One or more of the residuals, duality gap, or total relative error / n, L) @& N5 {' ^has grown 100000 times greater than its minimum value so far: ; a! b; p: \, ?+ T/ V- z/ M* Y2 Bthe primal appears to be infeasible (and the dual unbounded).' t6 v" ^/ V+ N: z0 ^. X' r- K
(The dual residual < TolFun=1.00e-008.)$ G: `: z- U7 B g" Z
2 U' G4 M* A$ T" R; i5 U0 ]
3 R+ j1 B) ^" D$ t2 H8 x4 Z: Px = 0.0000 2 }- }3 ^- k8 z, G, T0.0000 . d( u- U' J: T! a, p1.1987# G4 d4 w% X. m* [
0.0000 4 V3 K0 Q2 q) n0 Z% u2 l0.0000 ! g& J! P/ C- m; k/ B, u5 rfval =7 J1 r) Y# M% U9 Q6 ]
2.39752 I" ]1 w3 `/ q% R$ X! U, H
exitflag = 0 w* w j3 D- |% x m3 M& [2 I-1 * y" \' C; E' Z+ t/ S7 p/ J9 Ooutput = , y9 T3 d! m3 N; n* f" D6 Riterations: 7 ( u7 t0 S3 H$ H5 V+ K9 ccgiterations: 0 # B/ R1 @3 O4 }; B/ P' C& P5 Q0 salgorithm: 'lipsol' # P9 W: ~+ x9 [lambda = 3 x$ C3 q2 J' ^- P% m) M' I
ineqlin: [2x1 double]6 O/ A% N; G. t1 @6 X
eqlin: [0x1 double] - Y. o/ Y, p; nupper: [5x1 double] 4 h7 m) x3 j. E/ u( T3 alower: [5x1 double] ) S, Z1 w- d6 v显示的信息表明该问题无可行解。所给出的是对约束破坏最小的解。 " [) g( W. |) C% n1 h$ H+ u- I例4:求解实例1的生产计划问题 5 y9 u. z" p: ~9 T; C I建立数学模型: 1 J. |% s" K3 y( W5 w$ M% E% L6 o7 j/ k; m$ A
设x1、x2分别为生产甲、乙产品的件数。f为该厂所获总润。 8 T# F- L, F5 F, ^4 i7 H6 f+ mmax f=70x1+120x2 . ]1 h0 W$ z; J0 b4 n3 D/ u% k, ]s.t 9x1+4x2≤36003 E# G. M9 \& c9 R
6 i& _3 m' k2 k- P; t& }% P
4x1+5x2≤2000/ S! N0 z8 f1 L) g T0 M8 E* A# A
$ ?7 M) I3 c4 _* ?$ z- p
3x1+10x2≤3000' y! E& w( D+ L5 J6 ]6 W
4 L( d# n! f1 [( c C. E0 ]x1,x2≥0+ e$ w0 C: x5 q( I% q$ x9 R+ `; E, Q" \
将其转换为标准形式:9 ?9 ]0 @. C/ [9 Z+ o) F6 {; u q
min f=-70x1-120x2 - O1 k H# Y6 js.t 9x1+4x2≤3600* u `$ e: W) ]2 ]* j/ L
" K% U. x# Y+ k6 Y% K
4x1+5x2≤2000* b4 c, e' g6 L; j. s. s. I) v9 h
' O9 M+ W+ l% _) w# i4 s" n! ]
3x1+10x2≤30008 L/ S4 }$ o' D- W: k
, s; K( o+ D1 v! V' qx1,x2≥0( y( M. q( s6 J- Z
9 `; a6 s8 J6 b
9 @5 c7 u ?, v. D3 s% C, i
程序: f=[-70 -120];1 d7 d0 E; J1 h& ~
2 I, h Z* O) q; w # b% g6 {; ]: s# K5 I& l- ~- ~/ z; P' D# \5 I% H' F. A6 X
在Matlab的优化工具箱中,fgoalattain函数用于解决此类问题。 9 b8 Z6 V# l$ e* x
) Y2 r! e, b3 N) n7 P
其数学模型形式为: 1 V" q# I3 V& G 0 a0 V' R k3 cmin γ + O! A, [" P' n2 l: v6 n' ^
0 r2 h6 {' [4 l }+ J# JF(x)-weight ·γ≤goal - X' {5 N3 i! ` w5 F3 A# t
3 U6 X# E% c9 r) y) U y6 E
c(x) ≤0 $ c: T, ~' E2 |: J( K6 ?
+ k# r; `, N5 q
ceq(x)=0 4 S* a s' y$ l, _" e) L
7 F: i$ m$ {. M0 ^. H
A x≤b $ x. x4 N1 o# k6 k5 O+ v6 b 7 e- d1 p' c& GAeq x=beq . j2 ^! T d' c7 p/ p4 K% L, ^3 m# o( k% z% {3 o
lb≤x≤ub " k) g( _- j9 v) f. B8 F" V
, k9 U% |8 e. M, c) G
其中,x,weight,goal,b,beq,lb和ub为向量,A和Aeq为矩阵,c(x),ceq(x)和F(x)为函数, # W. d* h( n. d# m: J& H# j
- x2 O! E' n$ R; W, ~调用格式: * P2 |' m2 y1 H; i6 k
: y P1 `7 r9 p+ Z8 U2 B8 b9 N" Z' u
x=fgoalattain(F,x0,goal,weight) 3 e7 Z3 J7 {2 M! R u& s4 P
7 y p( _/ l1 {1 \7 ?5 |0 \x=fgoalattain(F,x0,goal,weight,A,b) - k: J6 e X0 \; l ) Q. k) o: s& Y; L% jx=fgoalattain(F,x0,goal,weight,A,b,Aeq,beq) / y. T* Q' |( m5 K; g- v0 _) x1 X. `# g7 M7 `9 g0 f
x=fgoalattain(F,x0,goal,weight,A,b,Aeq,beq,lb,ub) ' o4 l3 `8 Q) Z7 \( E3 r7 A( g) G+ Z" ]+ h/ a+ _( U) D
x=fgoalattain(F,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon) 4 g( T9 H5 r, c. R. ^( i$ `8 L/ c3 G2 N6 M# ~
x=fgoalattain(F,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)& p9 a5 V. ^2 g5 E- V
x=fgoalattain(F,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2) 3 Z5 Q+ Q0 }; b3 R1 X 1 J' I: y! G+ }) q& c) _[x,fval]=fgoalattain(…) ; X5 M, p5 a- a0 A5 o; X2 q4 F: o' e2 [2 G7 S4 N% Y V
[x,fval,attainfactor]=fgoalattain(…) ! Z: p \) y' |! r 9 C, Z a% j$ i* n3 y/ }[x,fval,attainfactor,exitflag,output]=fgoalattain(…) 9 H( M) f# Q5 F v" O6 u5 K d* s
[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(…) 4 C. B9 T3 C8 _4 @