Hi Troels,

You might get a better idea of the covariance matrix construction by
looking at http://www.orbitals.com/self/least/least.htm.  This
explains things quite well!  Note, you do not need QR decomposition to
calculate this.

Regards,

Edward


On 26 August 2014 14:37,  <[email protected]> wrote:
> Author: tlinnet
> Date: Tue Aug 26 14:37:28 2014
> New Revision: 25289
>
> URL: http://svn.gna.org/viewcvs/relax?rev=25289&view=rev
> Log:
> Added initial documentation for multifit_covar.
>
> task #7822(https://gna.org/task/index.php?7822): Implement user function to 
> estimate R2eff and associated errors for exponential curve fitting.
>
> Modified:
>     trunk/specific_analyses/relax_disp/estimate_r2eff.py
>
> Modified: trunk/specific_analyses/relax_disp/estimate_r2eff.py
> URL: 
> http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/relax_disp/estimate_r2eff.py?rev=25289&r1=25288&r2=25289&view=diff
> ==============================================================================
> --- trunk/specific_analyses/relax_disp/estimate_r2eff.py        (original)
> +++ trunk/specific_analyses/relax_disp/estimate_r2eff.py        Tue Aug 26 
> 14:37:28 2014
> @@ -422,6 +422,51 @@
>          return hessian_matrix
>
>
> +    def multifit_cova(self, matrix_X_J=None, epsrel=None, 
> matrix_X_covar=None):
> +        """This is the implementation of 'gsl_multifit_covar' from GNU 
> Scientific Library (GSL).
> +
> +        This function uses the Jacobian matrix J to compute the covariance 
> matrix of the best-fit parameters, covar.
> +        The parameter 'epsrel' is used to remove linear-dependent columns 
> when J is rank deficient.
> +
> +        The covariance matrix is given by,
> +
> +        covar = (J^T J)^{-1}
> +
> +        and is computed by QR decomposition of J with column-pivoting. Any 
> columns of R which satisfy
> +
> +        |R_{kk}| <= epsrel |R_{11}|
> +
> +        are considered linearly-dependent and are excluded from the 
> covariance matrix (the corresponding rows and columns of the covariance 
> matrix are set to zero).
> +
> +        If the minimisation uses the weighted least-squares function:
> +            f_i = (Y(x, t_i) - y_i) / \sigma_i
> +        then the covariance matrix above gives the statistical error on the 
> best-fit parameters resulting from the Gaussian errors \sigma_i on the 
> underlying data y_i.
> +        This can be verified from the relation \delta f = J \delta c and the 
> fact that the fluctuations in f from the data y_i are normalised by \sigma_i 
> and so satisfy <\delta f \delta f^T> = I.
> +
> +        For an unweighted least-squares function f_i = (Y(x, t_i) - y_i) the 
> covariance matrix above should be multiplied by the variance of the residuals 
> about the best-fit
> +            \sigma^2 = \sum (y_i - Y(x,t_i))^2 / (n-p)
> +        to give the variance-covariance matrix \sigma^2 C.
> +        This estimates the statistical error on the best-fit parameters from 
> the scatter of the underlying data.
> +
> +        See:
> +        U{GSL - GNU Scientific Library<http://www.gnu.org/software/gsl/>}
> +        U{Manual: Computing the covariance matrix of best fit 
> parameters<http://www.gnu.org/software/gsl/manual/gsl-ref_38.html#SEC528>}
> +        U{Manual: Computing the covariance matrix of best fit 
> parameters<http://www.gnu.org/software/gsl/manual/gsl-ref_38.html#SEC528>}
> +        U{Manual: 
> Overview<http://www.gnu.org/software/gsl/manual/gsl-ref_37.html#SEC510>}
> +
> +        @param matrix_X_J:      The vector of parameter values.
> +        @type matrix_X_J:       numpy rank-1 float array
> +        @param epsrel:          The vector of parameter values.
> +        @type epsrel:           numpy rank-1 float array
> +        @param matrix_X_covar:  The vector of parameter values.
> +        @type matrix_X_covar:   numpy rank-1 float array
> +        @return:                ?
> +        @rtype:                 ?
> +        """
> +
> +
> +
> +
>  # 'minfx'
>  # 'scipy.optimize.leastsq'
>  def estimate_r2eff(spin_id=None, ftol=1e-15, xtol=1e-15, maxfev=10000000, 
> factor=100.0, method='minfx', verbosity=1):
>
>
> _______________________________________________
> relax (http://www.nmr-relax.com)
>
> This is the relax-commits mailing list
> [email protected]
>
> To unsubscribe from this list, get a password
> reminder, or change your subscription options,
> visit the list information page at
> https://mail.gna.org/listinfo/relax-commits

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to