ellipsoids
ellipsoids copied to clipboard
Improve numerically instable code connected to comparisons and CVX
- There are several places where comparison is performed. Among them are
-
getIsGoodDirMat
method ofGenEllipsoid
class -
calculation of rank in
ellunion_ea
method ofellipsoid
class -
`gras.la.ismatposdef' function checking positive definiteness of a matrix
It is necessary to make the corresponding code more numerically stable, especially with the corresponding inequalities are strict (some tolerances are to be used that separate left- and right-hand sides of these inequalities from being close to each other within given tolerances). This functionlity should be thoroughly covered by tests.
-
ellunion_ea
method ofellipsoid
class is very numerically instable (especially for bad conditioned shape matices of ellipsoids). This leads to highly instable performance of the testtestEllUnionEaSensitivity
fromelltool.core.test.mlunit.EllipsoidIntUnionTC
suite checking sensitivity ofellunion_ea
under small disturbances of shape matrices of ellipsoids. The problem is that CVX optimizition is highly instable what concerns the argument (may be it is better to check stability with respect to the functional being the optimal volume of the ellipsoid containing the union of given ellipsoids). Other thing is that for two ellipsoids the corresponding optimization problem may be significantly simplified by reducing the initial case to the case of diagonal shape matrices. But for more than two ellipsoids the problem should be better investigated. It is possible also to extract some abstract optimization problem that is solved instably and to send this problem to CVX development team for investigation.