xjiang4 / ellipsoids

Automatically exported from code.google.com/p/ellipsoids
Other
0 stars 1 forks source link

gras.ellapx.uncertcalc.test.regr.run_regr_tests('osc8') fails for calcPrecision=1e-5 #102

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
1) run gras.ellapx.uncertcalc.test.regr.editconf('osc8') and set 
calcPrecision=1e-5

2) gras.ellapx.uncertcalc.test.regr.run_regr_tests('osc8')

We need to figure out why the precision is so low. 

calcPrecision specifies a desired precision of calculation. To achieve such 
precision we ask ODE solver to solve matrix ODEs with much higher precision 
odePrec. odePrec is related ti calcPrecision via some formula (see 
products\+gras\+ellapx\+gen\ATightEllApxBuilder class) that incorporates 
MAX_PRECISION_FACTOR. The current value of this factor is

MAX_PRECISION_FACTOR=0.003;

which is specified as a constant in ATightEllApxBuilder 

Also, in 

\+gras\+ellapx\+lreachplain\+probdyn\AReachProblemDynamics.m

class we have constants that regulate a precision of fundamental matrix X(t,t0) 
calculation.

    properties (Constant,GetAccess=protected)
        N_TIME_POINTS=1000;
        ODE_NORM_CONTROL='on';
        CALC_PRECISION_FACTOR=0.0001;
    end

The meaning of the factor is the same while N_TIME_POINTS is the number of 
points for which we calculate X(t,t0) prior to interpolating.

Though MAX_PRECISION_FACTOR quite low (which make ODE solver to find the 
solutions with very high precision, the final precision with which the tubes 
are found is lower than calcPrecision. A natural way to achieve a higher 
precision is to lower MAX_PRECISION_FACTOR and possibly - CALC_PRECISION_FACTOR 
(though the latter doesn't have much effect the the resulting precision). But 
it looks like lowering the factor though has a positive effect still doesn't 
allow for achieving calcPrecision=1e-5.

We need to find a point when the precision is lost and fix it.

Original issue reported on code.google.com by heartofm...@gmail.com on 14 Apr 2013 at 10:48