Choosing a Program for your Problem

We offer a set of several related programs that read your problem description from a text file named problem.csv.  All of these programs write all the output to an Excel-compatible file named solve*.csv for you to view and graph.   (Be sure to save the solve*.csv to a different name before rerunning if you want to keep the data.)  See Preparing Input for how to prepare your problem for solution by any of these programs.  For explanation of the output format, see Viewing the Solution.

Overview

 

Standard (non-regularized)

Auto-Regularized

Manually regularized

Algorithm advise (only)

advise  (exe   dat)

advise  (exe   dat)

advise  (exe   dat)

Scale rows as-is

solveS   (exe   dat)

solveSA   (exe   dat)

solveD   (exe   dat)

Scale to unit row norm

solveN   (exe   dat)

solveNA   (exe   dat)

 

Scaled rows to equal error estimate

solveW   (exe   dat)

solveWA   (exe   dat)

solveWD   (exe   dat)

Auto-row scaling

solveCA   (exe   dat)

 

Total least squares as-is

solveT   (exe   dat)

 

 

Minimize norm of first derivative

 

 

solveD1D   (exe   dat)

Minimize norm of second derivative

 

 

solveD2D  (exe   dat)

 

 

(To download an executable, click on “exe”.  If your security software prohibits download of executables, click on “dat” to load a solve*.dat file, then rename it to solve*.exe.)

1.      If you do not know where to start, please run advise.  This program will read your problem and try to analyze which solver/solvers best apply to your situation.

2.      If your problem is ready for solution, including the exact scaling of the equations that you want, and you want them solved exactly as is (no regularization, or “smoothing”) then use solveS. 

3.      If your problem is ready for solution, but the row scaling is not good, then choose solveN to scale the rows to unit norm, or solveW to scale them to equal error estimates.   You must have non-zero error estimates for all the equations to use solveW.  (However, remember you can use an equality constraint equation for an equation which really has no error, such as an equation requiring the unknowns to add to 1.) 

4.      If your matrix coefficients are no better known than the right-hand-side values, try solving with solveT, which uses “total least squares”.  This method finds the minimal perturbation of the total set of matrix coefficients plus right hand side values. 

5.      If your problem is ready for solution, including the exact scaling of the equations that you want, but the standard solution (from SolveS) is unstable, then try solveSA. SolveSA automatically applies a regularized solver if it can tell that the system is unstable.  

6.      If the equations are unstable but you want the equations scaled to equal error estimates, then use solveWA.  You must have non-zero error estimates for all the equations to use solveWA.  (However, remember you can use an equality constraint equation for an equation which really has no error, such as an equation requiring the unknowns to add to 1.)  Note: you could do this row scaling yourself in Excel and then use the simpler solveSA.) The scaling is just for convenience.

7.      If the equations are unstable but you want the equations scaled to all have equal row norms (that is, row norms of 1.0), then use solveNA.  Your error estimates are ignored in this case. 

8.      If you know the equations are badly scaled but solveNA does not produce good answers, try solveCA.  This is a somewhat experimental version so look closely at the results.  SolveCA uses a classic trick to estimate the relative variance of the unknowns (using the diagonal of the inverse of AT*A)  and then translates these estimates to estimates of the error in the right hand side values.  However, the actual scale of these estimates is not valid... only their relative sizes are worthwhile.  Thus, they can be used for scaling the equations, but not for estimating your actual resulting errors.  Your given error estimates are ignored in this case.  Otherwise. solveCA is very similar to solveWA.

9.      Lastly, if you have good error estimates, but the equations are unstable, and you do not like the autoregularized solutions, then you can use your error estimates to control the level of regularization by using solveD or solveWD or solveD1D or solveD2D.   The equations are regularized, or smoothed, to a degree consistent with your error estimates.  But there are variations of how to do that:

a)      SolveD minimizes the norm of the solution. 

b)      SolveWD first scales the equations to equal error estimates, then minimizes the norm of the solution. 

c)      SolveD1D minimizes the norm of the first derivative of the solution. 

d)     SolveD2d minimizes the norm of the second derivative of the solution.

 

Solution Methods

Here is a brief summary of the methods.  For more detail please see SevenSolutionMethodsFull.

In each case, we are talking about solving the ordinary equations portion of the three-way problem, which is

Ax = b

where A has m rows and n columns.

 

CLS, or Classical Least Squares.  This method solves the equations exactly as described in ThreeWaySolutionMethod.  No use is made of any error estimates, if provided.

 

WLS, or Weighted Least Squares.  This method computes the median error estimate from the scaled error estimates.  Each equation is then scaled to have its error estimate exactly equal to that median. The equations are then solved exactly as described in ThreeWaySolutionMethod. 

 

TLS, or Total Least Squares.  This method computes the minimal sum-of-squares perturbation of the complete set of coefficients --  both in the matrix and in the right hand side – that makes the equations consistent.  See Golub and Van Loan (second edition or later) for discussion of this method.  The algorithm as described in edition 2 was used here.

 

DIS, or Discrepancy method. This is a smoothing, or regularized, method.  In this method we adjust the right-hand-side values in such a way as to maximally reduce the norm of the solution for a given norm of the adjustment vector.  Specifically, we find the adjustment whose norm is equal to the norm of vector of estimated errors.  If your equations are well conditioned, this adjustment does not need to be done and should probably be ignored.

 

AUT, or Picard-Jones Auto-regularized method.  This method looks for evidence of serious ill-conditioning in your problem.  If it is diagnosed as being present, then the amount of error in the right-hand-side values can be estimated internally, without use of any error estimates which were provided.  This estimate is then used in a method equivalent to that in DIS.

 

Go back to our  main page.