Hi Edward. I see that I did the documentation wrong.
The implementation is as exactly as you describe. Best Troels On 28 Aug 2014 13:46, "Edward d'Auvergne" <[email protected]> wrote: > Hi, > > What happens if you construct the covariance matrix as: > > covar = (J^T.X.J)^-1 , > > Where X is a square matrix of dimension n, the number of data points > (here time points). All elements of X are zero except for the > diagonal which is equal to the intensity errors squared. I.e. this is > the peak intensity covariance matrix, where the covariances are zero > as the peak intensity errors are not dependent on each other and > diagonal is simply the peak errors squared or the variances. This is > from > https://en.wikipedia.org/wiki/Propagation_of_uncertainty#Non-linear_combinations > : > > cov(f) = J.cov(x).J^T. > > The J matrices might be transposed in Wikipedia's definition compared > to ours. Maybe this would solve the problem of the errors being too > high? > > Regards, > > Edward > > > > On 27 August 2014 11:41, Troels Emtekær Linnet <[email protected]> > wrote: > > Hi Edward. > > > > There is no scaling involved when calculating. > > > > What I meant with scaling is correction to the co-variance matrix. > > Related to errors, or similar. > > > > But I haven't figured it out yet. > > > > > > Best > > Troels > > > > 2014-08-27 11:33 GMT+02:00 Edward d'Auvergne <[email protected]>: > >> Does it give the same small result? Try turning off parameter scaling. > >> > >> Regards, > >> > >> Edward > >> > >> On 27 August 2014 11:29, <[email protected]> wrote: > >>> Author: tlinnet > >>> Date: Wed Aug 27 11:29:24 2014 > >>> New Revision: 25330 > >>> > >>> URL: http://svn.gna.org/viewcvs/relax?rev=25330&view=rev > >>> Log: > >>> Tried to implement the Jacobian from C-code. > >>> > >>> This though also report errors which are to small. > >>> > >>> Maybe some scaling is wrong. > >>> > >>> 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=25330&r1=25329&r2=25330&view=diff > >>> > ============================================================================== > >>> --- trunk/specific_analyses/relax_disp/estimate_r2eff.py > (original) > >>> +++ trunk/specific_analyses/relax_disp/estimate_r2eff.py Wed > Aug 27 11:29:24 2014 > >>> @@ -42,7 +42,7 @@ > >>> from specific_analyses.relax_disp.variables import MODEL_R2EFF > >>> from specific_analyses.relax_fit.optimisation import func_wrapper, > dfunc_wrapper, d2func_wrapper > >>> from target_functions.chi2 import chi2_rankN > >>> -from target_functions.relax_fit import setup > >>> +from target_functions.relax_fit import jacobian, setup > >>> > >>> > >>> # Scipy installed. > >>> @@ -734,7 +734,7 @@ > >>> E.set_settings_minfx(min_algor=min_algor) > >>> > >>> # Do C code > >>> - do_C = False > >>> + do_C = True > >>> > >>> if do_C: > >>> # Initialise the function to minimise. > >>> @@ -766,19 +766,27 @@ > >>> param_vector, chi2, iter_count, f_count, g_count, h_count, > warning = results_minfx > >>> > >>> # Get the Jacobian. > >>> - # First make a call to the Jacobian function, which store it in > the class. > >>> - E.func_exp_grad(params=param_vector) > >>> - jacobian_matrix = deepcopy(E.jacobian_matrix) > >>> - > >>> + if do_C: > >>> + # First make a call to the Jacobian function, which store it > in the class. > >>> + jacobian_matrix = transpose(asarray( jacobian(param_vector) ) > ) > >>> + > >>> + # Compare with python code. > >>> + #E.func_exp_grad(params=param_vector) > >>> + #jacobian_matrix2 = deepcopy(E.jacobian_matrix) > >>> + #print jacobian_matrix > >>> + #print " " > >>> + #print jacobian_matrix2 > >>> + else: > >>> + jacobian_matrix = deepcopy(E.jacobian_matrix) > >>> + > >>> + # Get the co-variance > >>> + pcov = E.multifit_covar(J=jacobian_matrix) > >>> + > >>> + # To compute one standard deviation errors on the parameters, > take the square root of the diagonal covariance. > >>> + param_vector_error = sqrt(diag(pcov)) > >>> # Set error to inf. > >>> #param_vector_error = [inf, inf] > >>> > >>> - # Get the co-variance > >>> - pcov = E.multifit_covar(J=jacobian_matrix) > >>> - > >>> - # To compute one standard deviation errors on the parameters, > take the square root of the diagonal covariance. > >>> - param_vector_error = sqrt(diag(pcov)) > >>> - > >>> # Pack to list. > >>> results = [param_vector, param_vector_error, chi2, iter_count, > f_count, g_count, h_count, warning] > >>> > >>> > >>> > >>> _______________________________________________ > >>> 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 > _______________________________________________ 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

