next up previous contents
Next: Problems in Nonstandard Form Up: The Script sql.m and Previous: Invoking sql.m or fsql.m

Interpreting the output

  The following output parameters are provided by both sql.m (as variables in the Matlab workspace) and fsql.m (as return values):

tex2html_wrap_inline4293 , tex2html_wrap_inline4419 , tex2html_wrap_inline4295
The final values of the variables. As on input, tex2html_wrap_inline4293 and tex2html_wrap_inline4295 are each structures with three fields, tex2html_wrap_inline4365 , tex2html_wrap_inline4399 and tex2html_wrap_inline4409 and tex2html_wrap_inline4367 , tex2html_wrap_inline4401 and tex2html_wrap_inline4411 , respectively. If the matrices tex2html_wrap_inline4365 and tex2html_wrap_inline4367 have multiple blocks, they are stored using Matlab's sparse format. If they have only one block, then they are always full. As long as tex2html_wrap_inline4465 is not equal to one (see below), tex2html_wrap_inline4365 and tex2html_wrap_inline4367 are numerically positive definite in the sense that Matlab's Cholesky function chol does not encounter zero or negative pivots when applied to them; likewise the blocks of the vectors tex2html_wrap_inline4399 and tex2html_wrap_inline4401 strictly satisfy the quadratic cone constraints and the vectors tex2html_wrap_inline4409 and tex2html_wrap_inline4411 are strictly positive. If tex2html_wrap_inline4465 equals one, at least one component of the computed solution is (numerically) either outside the cone or on its boundary.

tex2html_wrap_inline4481
The number of iterations taken by the algorithm.

tex2html_wrap_inline4483
A vector of length tex2html_wrap_inline4485 , with entries equal to the value of tex2html_wrap_inline4285 (see (5)) as a function of the iteration count. The first entry in the tex2html_wrap_inline4483 array is the value of tex2html_wrap_inline4285 corresponding to the initial point provided.

tex2html_wrap_inline4493
A matrix with two columns and tex2html_wrap_inline4485 rows, whose entries are the values of the primal and the dual objectives in the first and the second columns respectively, as a function of the iteration count.

tex2html_wrap_inline4497
A matrix with two columns and tex2html_wrap_inline4485 rows, whose entries are the values of tex2html_wrap_inline4325 and tex2html_wrap_inline4329 (see (3) and (4)) in the first and the second columns respectively, as a function of the iteration count.

tex2html_wrap_inline4465
An integer informing the user why fsql.m terminated, with the following meanings:
tex2html_wrap_inline4507
Successful termination: both the absolute and relative tolerances were satisfied.

tex2html_wrap_inline4509
The iterate tex2html_wrap_inline4293 or tex2html_wrap_inline4295 generated by the algorithm is numerically outside the cone or on its boundary. This would not occur in exact arithmetic, and indicates that the computation has reached its limiting accuracy. This is normal, and usually means that the problem is essentially solved but the termination criteria were too stringent. If tex2html_wrap_inline4515 (see below), further information is printed. Specifically, if Matlab's Cholesky routine chol determines that either tex2html_wrap_inline4365 or tex2html_wrap_inline4367 (or both) is not positive definite, the smallest eigenvalue of tex2html_wrap_inline4365 or tex2html_wrap_inline4367 (or both) is computed (by blkeig: see Section 7) and printed. Likewise if tex2html_wrap_inline4399 , tex2html_wrap_inline4409 , tex2html_wrap_inline4401 or tex2html_wrap_inline4411 lies outside the cone or on its boundary, that information is printed. If necessary, this information can be used to shift the solution inside the cone or onto its boundary.gif (If tex2html_wrap_inline4533 , the initial tex2html_wrap_inline4293 or tex2html_wrap_inline4295 provided is not in the interior of the cone as required.)

tex2html_wrap_inline4539
This occurs if the eigenvalue routine blkeig (see Section 7) determines that tex2html_wrap_inline4367 has a zero (or negative) eigenvalue, even though chol reported that tex2html_wrap_inline4367 is positive definite. This indicates that the algorithm has reached its limiting accuracy. The minimum eigenvalue is printed if tex2html_wrap_inline4515 . (The eigenvalues of tex2html_wrap_inline4367 (but not tex2html_wrap_inline4365 ) are required to compute the search direction.)

tex2html_wrap_inline4551
Termination occurred because the Schur complement was numerically singular, i.e. the Matlab routine lu generated a zero pivot, making the search direction undefined. The most likely explanation is that the matrix tex2html_wrap_inline4553 is rank deficient. The routine preproc.m can help to detect inconsistent constraints and eliminate redundant constraints (see Section 7). Otherwise, this is a rare situation which might occur close to the solution, if the termination criteria are too stringent.

tex2html_wrap_inline4555
Termination occurred because the progress made by the algorithm was no longer significant. See the description of the input options tex2html_wrap_inline4557 and tex2html_wrap_inline4559 . This indicates that the termination criteria may be too stringent. (If tex2html_wrap_inline4533 , then the initial point was probably already too close to the boundary.)

tex2html_wrap_inline4563
Termination occurred because either the primal or the dual steplength became too small. If tex2html_wrap_inline4325 , tex2html_wrap_inline4329 or tex2html_wrap_inline4285 is large, a restart is recommended, with either a reduced value of tex2html_wrap_inline4283 , or with tex2html_wrap_inline4293 and tex2html_wrap_inline4295 reset using a larger value of tex2html_wrap_inline4381 , or both. Such a restart is done automatically when the driver script sql.m is used, but is the user's responsibility when the driver script is bypassed by a direct call to the function fsql.m. (If tex2html_wrap_inline4533 , then the initial guesses tex2html_wrap_inline4293 and tex2html_wrap_inline4295 were most likely too close to the boundary of the cone.)

tex2html_wrap_inline4585
Termination occurred because the maximum number of iterations was reached. (If tex2html_wrap_inline4587 , then the data passed the validation test.)

tex2html_wrap_inline4589
Termination occurred because data failed validation checks. This means that some input argument was not of the correct dimension or fsql.m was called with an incorrect number of arguments. If tex2html_wrap_inline4363 , this could alternatively mean that the initial tex2html_wrap_inline4293 or tex2html_wrap_inline4295 did not conform to the specified block structure.

tex2html_wrap_inline4597
Termination occurred because at least one of the components of tex2html_wrap_inline4343 (see (6)) exceeded tex2html_wrap_inline4601 , indicating possible dual infeasibility.

tex2html_wrap_inline4603
Termination occurred because at least one of the components of tex2html_wrap_inline4345 (see (6)) exceeded tex2html_wrap_inline4601 , indicating possible primal infeasibility.

The reader is encouraged to consult Appendix B which contains a sample Matlab session illustrating the use of the sql script.


next up previous contents
Next: Problems in Nonstandard Form Up: The Script sql.m and Previous: Invoking sql.m or fsql.m

Madhu Nayakkankuppam
Wed Jun 25 18:01:54 EDT 1997