% Finding primal-dual solution of the example in Sec 4.3 % using primal simplex method (phase I - phase II) % SJW 3/1/09 A=[3 0; 2 4; 2 5]; b=[6 10 8]';p=[50 80]'; T=totbl(A,b,p); x1 x2 1 --------------------------------- x3 = | 3.0000 0.0000 -6.0000 x4 = | 2.0000 4.0000 -10.0000 x5 = | 2.0000 5.0000 -8.0000 --------------------------------- z = | 50.0000 80.0000 0.0000 T=dualbl(T); u4 = u5 = w = x1 x2 1 --------------------------------- -u1 x3 = | 3.0000 0.0000 -6.0000 -u2 x4 = | 2.0000 4.0000 -10.0000 -u3 x5 = | 2.0000 5.0000 -8.0000 --------------------------------- 1 z = | 50.0000 80.0000 0.0000 % phase I newcol=[1 1 1 0]'; T=addcol(T,newcol,'x0',3); u4 = u5 = = w = x1 x2 x0 1 -------------------------------------------- -u1 x3 = | 3.0000 0.0000 1.0000 -6.0000 -u2 x4 = | 2.0000 4.0000 1.0000 -10.0000 -u3 x5 = | 2.0000 5.0000 1.0000 -8.0000 -------------------------------------------- 1 z = | 50.0000 80.0000 0.0000 0.0000 newrow=[0 0 1 0]; T=addrow(T,newrow,'z0',5); u4 = u5 = = w = x1 x2 x0 1 -------------------------------------------- -u1 x3 = | 3.0000 0.0000 1.0000 -6.0000 -u2 x4 = | 2.0000 4.0000 1.0000 -10.0000 -u3 x5 = | 2.0000 5.0000 1.0000 -8.0000 -------------------------------------------- 1 z = | 50.0000 80.0000 0.0000 0.0000 - z0 = | 0.0000 0.0000 1.0000 0.0000 % "special" pivot T=ljx(T,2,3); u4 = u5 = u2 = w = x1 x2 x4 1 -------------------------------------------- -u1 x3 = | 1.0000 -4.0000 1.0000 4.0000 - x0 = | -2.0000 -4.0000 1.0000 10.0000 -u3 x5 = | 0.0000 1.0000 1.0000 2.0000 -------------------------------------------- 1 z = | 50.0000 80.0000 0.0000 0.0000 - z0 = | -2.0000 -4.0000 1.0000 10.0000 T=ljx(T,2,1); = u5 = u2 = w = x0 x2 x4 1 -------------------------------------------- -u1 x3 = | -0.5000 -6.0000 1.5000 9.0000 -u4 x1 = | -0.5000 -2.0000 0.5000 5.0000 -u3 x5 = | -0.0000 1.0000 1.0000 2.0000 -------------------------------------------- 1 z = | -25.0000 -20.0000 25.0000 250.0000 - z0 = | 1.0000 0.0000 0.0000 0.0000 % done with phase I; delete x0 col and z0 row T=delcol(T,'x0'); T=delrow(T,'z0'); u5 = u2 = w = x2 x4 1 --------------------------------- -u1 x3 = | -6.0000 1.5000 9.0000 -u4 x1 = | -2.0000 0.5000 5.0000 -u3 x5 = | 1.0000 1.0000 2.0000 --------------------------------- 1 z = | -20.0000 25.0000 250.0000 - z0 = | 0.0000 0.0000 0.0000 u5 = u2 = w = x2 x4 1 --------------------------------- -u1 x3 = | -6.0000 1.5000 9.0000 -u4 x1 = | -2.0000 0.5000 5.0000 -u3 x5 = | 1.0000 1.0000 2.0000 --------------------------------- 1 z = | -20.0000 25.0000 250.0000 % phase II T=ljx(T,1,1); u1 = u2 = w = x3 x4 1 --------------------------------- -u5 x2 = | -0.1667 0.2500 1.5000 -u4 x1 = | 0.3333 0.0000 2.0000 -u3 x5 = | -0.1667 1.2500 3.5000 --------------------------------- 1 z = | 3.3333 20.0000 220.0000 % optimal tableau! % Primal solution: (x1,x2)=(2,1.5) % Dual solution: (u1,u2,u3)=(10/3,20,0) diary off