Hi, Parameter scaling is a technique for better conditioning of the optimisation problem. Some minimisation algorithms significantly benefit from this whereas others are unaffected. An example is for model free analysis where S2 in on the order of 1 and te on the order of 1e^-12. The parameters are scaled so they are all on the order of 1. So S2 is unscaled and te is scaled by 1e12. Without this, the te dimension of the space is absolutely tiny compared to the S2 and Rex dimensions causing some optimisation algorithms to catastrophically fail (because of the algorithm, because of truncation artifacts, etc.). So for safety, you can just use scaling factors to get all relaxation dispersion parameters onto the order of ~1. I hope this clearly explains the concept.
Regards, Edward On Tue, Jan 13, 2009 at 4:26 AM, Sébastien Morin <[email protected]> wrote: > Hi Ed, > > I am not so familiar with scaling in minimization... > > How can I determine if a given parameter would benefit from scaling ? > Is only speed affected when scaling is used ? > > Thanks ! > > > Séb > > > > [email protected] wrote: >> Author: semor >> Date: Tue Jan 13 04:24:37 2009 >> New Revision: 8429 >> >> URL: http://svn.gna.org/viewcvs/relax?rev=8429&view=rev >> Log: >> Started to implement the scaling matrix for scaling the 'R2eff' values. >> >> This might change in the future as other possible curve fitting parameters >> ('R2', 'Rex', 'kex', >> 'R2A', 'kA', 'dw') might need some scaling. >> >> >> Modified: >> branches/relax_disp/specific_fns/relax_disp.py >> >> Modified: branches/relax_disp/specific_fns/relax_disp.py >> URL: >> http://svn.gna.org/viewcvs/relax/branches/relax_disp/specific_fns/relax_disp.py?rev=8429&r1=8428&r2=8429&view=diff >> ============================================================================== >> --- branches/relax_disp/specific_fns/relax_disp.py (original) >> +++ branches/relax_disp/specific_fns/relax_disp.py Tue Jan 13 04:24:37 2009 >> @@ -143,17 +143,17 @@ >> >> # Loop over the parameters. >> for i in xrange(len(spin.params)): >> - # Relaxation rate. >> - if spin.params[i] == 'Rx': >> - pass >> - >> - # Intensity scaling. >> elif search('^i', spin.params[i]): >> + # Effective transversal relaxation rate scaling. >> + if spin.params[i] == 'R2eff': >> # Find the position of the first CPMG pulse train frequency >> point. >> pos = cdp.cpmg_frqs.index(min(cdp.cpmg_frqs)) >> >> # Scaling. >> - scaling_matrix[i, i] = 1.0 / average(spin.intensities[pos]) >> + scaling_matrix[i, i] = 1.0 / average(spin.r2effs[pos]) >> + >> + # No scaling for other parameters. >> + else: >> + pass >> >> # Increment i. >> i = i + 1 >> >> >> _______________________________________________ >> relax (http://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://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://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

