mailRe: r8429 - /branches/relax_disp/specific_fns/relax_disp.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on January 13, 2009 - 09:36:
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
<sebastien.morin.1@xxxxxxxxx> 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



sebastien.morin.1@xxxxxxxxx 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
relax-commits@xxxxxxx

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
relax-devel@xxxxxxx

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




Related Messages


Powered by MHonArc, Updated Tue Jan 13 15:00:24 2009