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

Reply via email to