Author: bugman Date: Wed Aug 27 18:26:22 2014 New Revision: 25342 URL: http://svn.gna.org/viewcvs/relax?rev=25342&view=rev Log: Merged revisions 25329-25336 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/trunk ........ r25329 | tlinnet | 2014-08-27 11:12:50 +0200 (Wed, 27 Aug 2014) | 6 lines Implemented the first try to compute the Variance of R2eff and i0, by the co-variance. This uses the Jacobian matrix. The errors calculated, are though way to small compared 2000 Monte-Carlo simulations. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25330 | tlinnet | 2014-08-27 11:29:24 +0200 (Wed, 27 Aug 2014) | 7 lines 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. ........ r25331 | tlinnet | 2014-08-27 11:49:21 +0200 (Wed, 27 Aug 2014) | 90 lines Modified profiling script to calculate timings. The timings for C-code are: Simplex, with constraints = 2.192 Simplex, without constraints = 0.216 BFGS, without constraints = 0.079 Newton, without constraints = 0.031 This is pretty pretty fast. To this profiling script, I would also now add some verification on calculations. Profile, with constraints, C code, Simplex Wed Aug 27 11:45:16 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmpvJSNrB 724946 function calls (723444 primitive calls) in 2.192 seconds Ordered by: cumulative time List reduced from 307 to 1 due to restriction <1> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 2.192 2.192 profiling_relax_fit.py:314(verify) Verify, without constraints, C code, Simplex Wed Aug 27 11:45:16 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmphJ9GV3 76042 function calls (74654 primitive calls) in 0.216 seconds Ordered by: cumulative time List reduced from 132 to 1 due to restriction <1> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.216 0.216 profiling_relax_fit.py:314(verify) Verify, without constraints, C code BFGS Wed Aug 27 11:45:16 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmp78MZjS 25618 function calls (24230 primitive calls) in 0.079 seconds Ordered by: cumulative time List reduced from 153 to 1 due to restriction <1> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.079 0.079 profiling_relax_fit.py:314(verify) Verify, without constraints, C code Newton Wed Aug 27 11:45:16 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmp2IPgFC 14572 function calls (13184 primitive calls) in 0.031 seconds Ordered by: cumulative time List reduced from 169 to 1 due to restriction <1> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.031 0.031 profiling_relax_fit.py:314(verify) Verify, with constraints, Python, Simplex Wed Aug 27 11:45:20 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmpQUUY4L 808444 function calls (806942 primitive calls) in 3.108 seconds Ordered by: cumulative time List reduced from 141 to 1 due to restriction <1> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 3.108 3.108 profiling_relax_fit.py:353(verify_pyt) Verify, without constraints, Python, Simplex Wed Aug 27 11:45:20 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmp3nFBTq 87492 function calls (86104 primitive calls) in 0.320 seconds Ordered by: cumulative time List reduced from 131 to 1 due to restriction <1> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.320 0.320 profiling_relax_fit.py:353(verify_pyt) Verify, without constraints, Python Scipy Wed Aug 27 11:45:20 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmpo1HoWn 6600 function calls (5212 primitive calls) in 0.020 seconds Ordered by: cumulative time List reduced from 137 to 1 due to restriction <1> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.020 0.020 profiling_relax_fit.py:388(verify_sci) task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25332 | tlinnet | 2014-08-27 13:22:41 +0200 (Wed, 27 Aug 2014) | 3 lines Tried to verify solution to profiling script. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25333 | tlinnet | 2014-08-27 13:22:43 +0200 (Wed, 27 Aug 2014) | 5 lines Set the constraints=False, when doing Monte-Carlo simulations for R2eff. This is to speed-up the Monte-Carlo simulations by a factor X10, when estimating the error for R2eff. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25334 | tlinnet | 2014-08-27 13:22:45 +0200 (Wed, 27 Aug 2014) | 9 lines Implemented the use of "Newton" as minimisation algorithm for R2eff curve fitting instead of simplex. Running the test script: test_suite/shared_data/dispersion/Kjaergaard_et_al_2013/2_pre_run_r2eff.py For 50 Monte-Carlo simulations, the time drop from: 3 minutes and 13 s, to 1 min an 5 seconds. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25335 | bugman | 2014-08-27 13:38:24 +0200 (Wed, 27 Aug 2014) | 6 lines Changed the relax_fit.py sample script to use Newton rather than Simplex optimisation. This can lead to significantly faster optimisation times, as shown in the commit message http://article.gmane.org/gmane.science.nmr.relax.scm/23081. ........ r25336 | bugman | 2014-08-27 13:42:43 +0200 (Wed, 27 Aug 2014) | 9 lines Changed the optimisation description in the relaxation curve-fitting chapter of the manual. The script example has been converted to match the sample script, replacing the Nelder-Mead simplex algorithm with Newton optimisation, and removing the argument turning diagonal scaling off. All the text about only the simplex algorithm being supported due to the missing gradients and Hessians in the C module have been deleted. The text that linear constraints are not supported has also been removed - but this was fixed when the logarithmic barrier constraint algorithm was added to minfx. ........ Modified: branches/frame_order_cleanup/ (props changed) branches/frame_order_cleanup/auto_analyses/relax_disp.py branches/frame_order_cleanup/docs/latex/curvefit.tex branches/frame_order_cleanup/sample_scripts/relax_fit.py branches/frame_order_cleanup/specific_analyses/relax_disp/api.py branches/frame_order_cleanup/specific_analyses/relax_disp/estimate_r2eff.py branches/frame_order_cleanup/specific_analyses/relax_disp/optimisation.py branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/profiling/profiling_relax_fit.py [This mail would be too long, it was shortened to contain the URLs only.] Modified: branches/frame_order_cleanup/auto_analyses/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/auto_analyses/relax_disp.py?rev=25342&r1=25341&r2=25342&view=diff Modified: branches/frame_order_cleanup/docs/latex/curvefit.tex URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/docs/latex/curvefit.tex?rev=25342&r1=25341&r2=25342&view=diff Modified: branches/frame_order_cleanup/sample_scripts/relax_fit.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/sample_scripts/relax_fit.py?rev=25342&r1=25341&r2=25342&view=diff Modified: branches/frame_order_cleanup/specific_analyses/relax_disp/api.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/specific_analyses/relax_disp/api.py?rev=25342&r1=25341&r2=25342&view=diff Modified: branches/frame_order_cleanup/specific_analyses/relax_disp/estimate_r2eff.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/specific_analyses/relax_disp/estimate_r2eff.py?rev=25342&r1=25341&r2=25342&view=diff Modified: branches/frame_order_cleanup/specific_analyses/relax_disp/optimisation.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/specific_analyses/relax_disp/optimisation.py?rev=25342&r1=25341&r2=25342&view=diff Modified: branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/profiling/profiling_relax_fit.py URL: http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/test_suite/shared_data/curve_fitting/profiling/profiling_relax_fit.py?rev=25342&r1=25341&r2=25342&view=diff