<html><body><div style="color:#000; background-color:#fff; font-family:bookman old style, new york, times, serif;font-size:12pt"><div>Hi Scilab users,</div><div><br></div><div>I use Scilab 5.4 for Mac OS X Lion. My codes ran correctly on Scilab 5.3 (for Windows). But on Scilab 5.4,</div><div>it shows errors. I think that "linpro function" has modified on Scilab 5.4 (or it has not included on Scilab optimization function list).</div><div><br></div><div>Both ways of solving LP problem are shown, as follows:</div><div><br></div><div><pre style="font-family:Monospaced;font-style:normal;font-size:14.0;"><span style="color:rgb(1,168,1);font-style:italic;">// PROJECT PROBLEM: find the optimum value of following LP model.</span>
<span style="color:rgb(1,168,1);font-style:italic;">// Maximize 13*x1 + 16*x2 + 16*x3 + 14*x4 + 39*x5</span>
<span style="color:rgb(1,168,1);font-style:italic;">// such as</span>
<span style="color:rgb(1,168,1);font-style:italic;">// 11*x1 + 53*x2 + 5*x3 + 5*x4 + 29*x5 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 40</span>
<span style="color:rgb(1,168,1);font-style:italic;">// 3*x1 + 6*x2 + 5*x3 + x4 + 34*x5 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 20</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x1 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x2 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x3 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x4 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x5 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// xi </span><span style="color:rgb(1,168,1);font-style:italic;">></span><span style="color:rgb(1,168,1);font-style:italic;">= 0 (i = 1,...,5)</span>
<span style="color:rgb(1,168,1);font-style:italic;">// Converting to min LP problem</span>
<span style="color:rgb(1,168,1);font-style:italic;">// Minimize -13*x1 - 16*x2 - 16*x3 - 14*x4 - 39*x5</span>
<span style="color:rgb(1,168,1);font-style:italic;">// such as</span>
<span style="color:rgb(1,168,1);font-style:italic;">// 11*x1 + 53*x2 + 5*x3 + 5*x4 + 29*x5 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 40</span>
<span style="color:rgb(1,168,1);font-style:italic;">// 3*x1 + 6*x2 + 5*x3 + x4 + 34*x5 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 20</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x1 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x2 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x3 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x4 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x5 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// xi </span><span style="color:rgb(1,168,1);font-style:italic;">></span><span style="color:rgb(1,168,1);font-style:italic;">= 0 (i = 1,...,5)</span>
<span style="color:rgb(1,168,1);font-style:italic;">// First resolution of LP problem: (THIS RESOLUTION WORKED !)</span>
<span style="color:rgb(1,168,1);font-style:italic;">// You can try the karmarkar function built in Scilab :</span>
<span style="color:rgb(1,168,1);font-style:italic;">// Use slack variables:</span>
<span style="color:rgb(1,168,1);font-style:italic;">// Minimize -13*x1 - 16*x2 - 16*x3 - 14*x4 - 39*x5</span>
<span style="color:rgb(1,168,1);font-style:italic;">// such as</span>
<span style="color:rgb(1,168,1);font-style:italic;">// 11*x1 + 53*x2 + 5*x3 + 5*x4 + 29*x5 + e1 = 40</span>
<span style="color:rgb(1,168,1);font-style:italic;">// 3*x1 + 6*x2 + 5*x3 + x4 + 34*x5 + e2 = 20</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x1 + e3 = 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x2 + e4 = 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x3 + e5 = 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x4 + e6 = 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x5 + e7 = 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// xi, ej </span><span style="color:rgb(1,168,1);font-style:italic;">></span><span style="color:rgb(1,168,1);font-style:italic;">= 0 (i = 1,...,5) (j = 1,..., 7)</span>
<span style="color:rgb(1,168,1);font-style:italic;">// The following script solves the problem. Here, the initial guess x0 is given. </span>
<span style="color:rgb(0,0,0);">Aeq</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(74,85,219);">[</span>
<span style="color:rgb(188,143,143);">11</span> <span style="color:rgb(188,143,143);">53</span> <span style="color:rgb(188,143,143);">5</span> <span style="color:rgb(188,143,143);">5</span> <span style="color:rgb(188,143,143);">29</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span>
<span style="color:rgb(188,143,143);">3</span> <span style="color:rgb(188,143,143);">6</span> <span style="color:rgb(188,143,143);">5</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">34</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span>
<span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span>
<span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span>
<span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span>
<span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span>
<span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span>
<span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(1,168,1);font-style:italic;">// coefficients of constraint matrix</span>
<span style="color:rgb(0,0,0);">beq</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">40</span> <span style="color:rgb(188,143,143);">20</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(92,92,92);">'</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(1,168,1);font-style:italic;">// vector of independent terms</span>
<span style="color:rgb(0,0,0);">c</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">13</span> <span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">16</span> <span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">16</span> <span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">14</span> <span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">39</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span><span style="color:rgb(74,85,219);">]</span><span
style="color:rgb(92,92,92);">'</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(1,168,1);font-style:italic;">// coefficients of objective function</span>
<span style="color:rgb(74,85,219);">[</span><span style="color:rgb(0,0,0);">n</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">p</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(50,185,185);">size</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">Aeq</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(1,168,1);font-style:italic;">// Now, assume that the initial guess x0 is unknown.</span>
<span style="color:rgb(1,168,1);font-style:italic;">// To find a feasible point, we solve the following problem : </span>
<span style="color:rgb(0,0,0);">cc</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(50,185,185);">zeros</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">p</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">AAeq</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(0,0,0);">Aeq</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">beq</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(0,0,0);">Aeq</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(50,185,185);">ones</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">p</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">bbeq</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">beq</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">z0</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(50,185,185);">ones</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">p</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">zopt</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(174,92,176);text-decoration:underline;">karmarkar</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">AAeq</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">bbeq</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">cc</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">z0</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">0</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">0.99</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(0,0,0);">x0</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(0,0,0);">zopt</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(0,0,0);">p</span><span style="color:rgb(74,85,219);">)</span> <span style="color:rgb(1,168,1);font-style:italic;">// This gives a very small value of zopt(p+1)</span>
<span style="color:rgb(1,168,1);font-style:italic;">// The previous script allows to produces the initial guess: x0</span>
<span style="color:rgb(1,168,1);font-style:italic;">// We now plug the initial guess x0 into the original problem and get: </span>
<span style="color:rgb(0,0,0);">xopt</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(174,92,176);text-decoration:underline;">karmarkar</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">Aeq</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">beq</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">c</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">x0</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">1.e-10</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">0.999</span><span style="color:rgb(74,85,219);">)</span> <span style="color:rgb(1,168,1);font-style:italic;">// optimization result</span>
<span style="color:rgb(1,168,1);font-style:italic;">// where the components xopt(1:4) are the original variables and xopt(5:) are slack variables.</span>
<span style="color:rgb(0,0,0);">f</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">c</span><span style="color:rgb(92,92,92);">'</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(0,0,0);">xopt</span> <span style="color:rgb(1,168,1);font-style:italic;">// result of objetive function</span>
<span style="color:rgb(1,168,1);font-style:italic;">// Second resolution of LP problem: (THIS RESOLUTION WORKED !)</span>
<span style="color:rgb(1,168,1);font-style:italic;">// You can also try the </span><span style="color:rgb(1,168,1);font-style:italic;">"</span><span style="color:rgb(1,168,1);font-style:italic;">quapro</span><span style="color:rgb(1,168,1);font-style:italic;">"</span><span style="color:rgb(1,168,1);font-style:italic;"> module and the linpro function.</span>
<span style="color:rgb(1,168,1);font-style:italic;">// Minimize -13*x1 - 16*x2 - 16*x3 - 14*x4 - 39*x5</span>
<span style="color:rgb(1,168,1);font-style:italic;">// such as</span>
<span style="color:rgb(1,168,1);font-style:italic;">// 11*x1 + 53*x2 + 5*x3 + 5*x4 + 29*x5 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 40</span>
<span style="color:rgb(1,168,1);font-style:italic;">// 3*x1 + 6*x2 + 5*x3 + x4 + 34*x5 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 20</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x1 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x2 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x3 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x4 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// x5 </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= 1</span>
<span style="color:rgb(1,168,1);font-style:italic;">// xi </span><span style="color:rgb(1,168,1);font-style:italic;">></span><span style="color:rgb(1,168,1);font-style:italic;">= 0 (i = 1,...,5)</span>
<span style="color:rgb(0,0,0);">p</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">13</span> <span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">16</span> <span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">16</span> <span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">14</span> <span style="color:rgb(92,92,92);">-</span><span style="color:rgb(188,143,143);">39</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(92,92,92);">'</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(1,168,1);font-style:italic;">// coefficients of objective function</span>
<span style="color:rgb(0,0,0);">C</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(74,85,219);">[</span>
<span style="color:rgb(188,143,143);">11</span> <span style="color:rgb(188,143,143);">53</span> <span style="color:rgb(188,143,143);">5</span> <span style="color:rgb(188,143,143);">5</span> <span style="color:rgb(188,143,143);">29</span>
<span style="color:rgb(188,143,143);">3</span> <span style="color:rgb(188,143,143);">6</span> <span style="color:rgb(188,143,143);">5</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">34</span>
<span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span>
<span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span>
<span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span>
<span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">0</span>
<span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">1</span>
<span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(1,168,1);font-style:italic;">// coefficients of constraint matrix</span>
<span style="color:rgb(0,0,0);">b</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">40</span> <span style="color:rgb(188,143,143);">20</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(92,92,92);">'</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(1,168,1);font-style:italic;">// vector of independent terms</span>
<span style="color:rgb(0,0,0);">ci</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(92,92,92);">'</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(1,168,1);font-style:italic;">// initial values (boundary condition)</span>
<span style="color:rgb(0,0,0);">cs</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(74,85,219);">[</span><span style="color:rgb(218,112,214);">%inf</span> <span style="color:rgb(218,112,214);">%inf</span> <span style="color:rgb(218,112,214);">%inf</span> <span style="color:rgb(218,112,214);">%inf</span> <span style="color:rgb(218,112,214);">%inf</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(92,92,92);">'</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(1,168,1);font-style:italic;">// final values</span>
<span style="color:rgb(74,85,219);">[</span><span style="color:rgb(0,0,0);">x1</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">lagr</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">f</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(0,0,0);">linpro</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">p</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">C</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">b</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">ci</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">cs</span><span style="color:rgb(74,85,219);">)</span> <span style="color:rgb(1,168,1);font-style:italic;">// x1 represents the optimum solution</span>
<span style="color:rgb(1,168,1);font-style:italic;">// PS: </span>
<span style="color:rgb(1,168,1);font-style:italic;">// [x,lagr,f]=linpro(p,C,b,ci,cs [,x0]) when minimize p</span><span style="color:rgb(1,168,1);font-style:italic;">'</span><span style="color:rgb(1,168,1);font-style:italic;">*x under the constraints C*x </span><span style="color:rgb(1,168,1);font-style:italic;"><</span><span style="color:rgb(1,168,1);font-style:italic;">= b</span>
<span style="color:rgb(1,168,1);font-style:italic;">// [x,lagr,f]=linpro(p,-C,-b,ci,cs [,x0]) when minimize p</span><span style="color:rgb(1,168,1);font-style:italic;">'</span><span style="color:rgb(1,168,1);font-style:italic;">*x under the constraints C*x </span><span style="color:rgb(1,168,1);font-style:italic;">></span><span style="color:rgb(1,168,1);font-style:italic;">= b</span>
<span style="color:rgb(74,85,219);">[</span><span style="color:rgb(50,185,185);">clean</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">x1</span><span style="color:rgb(74,85,219);">)</span> <span style="color:rgb(50,185,185);">clean</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">xopt</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(50,185,185);">size</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">p</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">]</span>
<span style="color:rgb(0,0,0);">a</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">0</span><span style="color:rgb(0,0,0);">;</span><span style="color:rgb(160,32,240);">for</span> <span style="color:rgb(0,0,0);">i</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(50,185,185);">size</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">p</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(0,0,0);">a</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(0,0,0);">a</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(0,0,0);">x1</span><span style="color:rgb(74,85,219);">(</span><span
style="color:rgb(0,0,0);">i</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span><span style="color:rgb(160,32,240);">end</span><span style="color:rgb(0,0,0);">;</span><span style="color:rgb(0,0,0);">a</span> <span style="color:rgb(1,168,1);font-style:italic;">//sum of optimal values using linpro</span>
<span style="color:rgb(0,0,0);">b</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">0</span><span style="color:rgb(0,0,0);">;</span><span style="color:rgb(160,32,240);">for</span> <span style="color:rgb(0,0,0);">i</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(50,185,185);">size</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">p</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span style="color:rgb(0,0,0);">b</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(0,0,0);">b</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(0,0,0);">xopt</span><span style="color:rgb(74,85,219);">(</span><span
style="color:rgb(0,0,0);">i</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span><span style="color:rgb(160,32,240);">end</span><span style="color:rgb(0,0,0);">;</span><span style="color:rgb(0,0,0);">b</span> <span style="color:rgb(1,168,1);font-style:italic;">//sum of optimal values using Karmarkar</span></pre><pre style="font-family: Monospaced; "><span><br></span></pre><pre style="font-family: Monospaced; "><span>The result is shown, as follows:</span></pre><pre style="font-family: Monospaced; "><span>->Aeq = [
--> 11 53 5 5 29 1 0 0 0 0 0 0
--> 3 6 5 1 34 0 1 0 0 0 0 0
--> 1 0 0 0 0 0 0 1 0 0 0 0
--> 0 1 0 0 0 0 0 0 1 0 0 0
--> 0 0 1 0 0 0 0 0 0 1 0 0
--> 0 0 0 1 0 0 0 0 0 0 1 0
--> 0 0 0 0 1 0 0 0 0 0 0 1
--> ];
-->
-->beq = [40 20 1 1 1 1 1]';
-->c = [-13 -16 -16 -14 -39 0 0 0 0 0 0 0]';
-->[n,p]=size(Aeq);
-->
-->cc = [zeros(p,1);1];
-->AAeq = [Aeq,beq-Aeq*ones(p,1)];
-->bbeq = beq;
-->z0 = ones(p+1,1);
-->zopt=karmarkar(AAeq,bbeq,cc,z0,0,0.99)
zopt =
0.4651227
0.3447924
0.4790839
0.4846474
0.3723201
0.9937153
0.9969277
0.5348773
0.6552076
0.5209161
0.5153526
0.6276799
1.00D-162
-->x0=zopt(1:p)
x0 =
0.4651227
0.3447924
0.4790839
0.4846474
0.3723201
0.9937153
0.9969277
0.5348773
0.6552076
0.5209161
0.5153526
0.6276799
-->
-->xopt=karmarkar(Aeq,beq,c,x0,1.e-10,0.999)
xopt =
1.0017139
0.2009097
0.9994057
1.0011172
0.2881802
1.034D-13
3.512D-13
5.532D-16
0.7990812
8.466D-15
8.225D-14
0.7119165
-->
-->f = c'*xopt
f =
- 57.481994
-->
-->p = [-13 -16 -16 -14 -39]';
-->
-->C = [
--> 11 53 5 5 29
--> 3 6 5 1 34
--> 1 0 0 0 0
--> 0 1 0 0 0
--> 0 0 1 0 0
--> 0 0 0 1 0
--> 0 0 0 0 1
--> ];
-->
-->b = [40 20 1 1 1 1 1]';
-->
-->ci=[0 0 0 0 0]';
-->
-->cs=[%inf %inf %inf %inf %inf]';
-->
-->[x1,lagr,f]=linpro(p,C,b,ci,cs)
!--error 4
Variável indefinida: linpro
-->
-->[clean(x1) clean(xopt(1:size(p,1)))]
!--error 4
Variável indefinida: x1
-->a=0;for i=1:size(p,1); a=a+x1(i);end;a
!--error 4
Variável indefinida: x1
-->b=0;for i=1:size(p,1); b=b+xopt(i);end;b
b =
3.4913266 <br></span></pre><pre style="font-family: Monospaced; "><span><br></span></pre><pre style="font-family: Monospaced; "><span>Thank you in advance for suggestions !</span></pre><pre style="font-family: Monospaced; "><span>All best,</span></pre><pre style="font-family: Monospaced; "><span>Reinaldo.</span></pre><pre style="font-family: Monospaced; "><span><br></span></pre><pre style="font-family:Monospaced;font-style:normal;font-size:14.0;"><span style="color:rgb(1,168,1);font-style:italic;"><br></span></pre></div></div></body></html>