Hi, I agree.
Séb :) Edward d'Auvergne wrote: > Hi, > > Half the code is in place for the exponential curve-fitting gradients, > as these are insanely basic to derive and code, but I just never got > around to it because relax returns the same results as Art Palmer's > CurveFit program > (http://cpmcnet.columbia.edu/dept/gsas/biochem/labs/palmer/software/curvefit.html) > using the unconstrained simplex minimisation. This optimisation > problem is very basic. But I might add it later if more complicated > exponential curve-fitting is found (in relaxation or another type of > analysis). There's no harm in having the functional code there, even > though it is not currently used. As for relaxation dispersion, this > might be more complicated but the gradients can be added later if > needed. > > Regards, > > Edward > > > On Tue, Jan 13, 2009 at 3:37 PM, Sébastien Morin > <[email protected]> wrote: > >> Hi Ed, >> >> Fine, thanks for the tips. >> >> I have a question, though. You say gradients are not used for relaxation >> exponential curve fitting. However, the code for the function >> linear_constraints() in present in 'specific_fns/relax_fit.py'... Is >> that normal ? Can this be used, i.e. are the partial derivatives of the >> chi-squared equation for relaxation (R1, R2) calculated ? >> >> If not used, should we remove the code ? >> >> Thanks. >> >> >> Séb :) >> >> >> >> >> Edward d'Auvergne wrote: >> >>> Hi, >>> >>> As an aside, these linear constraints can only be used if the >>> relaxation dispersion gradients are calculated. These gradients are >>> not present for the relaxation exponential curve-fitting as it is not >>> necessary. For model-free analysis, both the gradients and Hessians >>> have been calculated and are coded into python functions. At the >>> start, the relaxation dispersion may not need parameter constraints >>> but the gradient may be very useful for better optimisation. With no >>> gradients, only the simplex optimisation algorithm can be used. So in >>> the future if you'd like the gradients, you need to calculate the >>> first partial derivatives of the chi-squared equation/relaxation >>> dispersion equation for each parameter and code these as separate >>> functions. >>> >>> Regards, >>> >>> Edward >>> >>> >>> On Tue, Jan 13, 2009 at 4:13 AM, <[email protected]> wrote: >>> >>> >>>> Author: semor >>>> Date: Tue Jan 13 04:13:54 2009 >>>> New Revision: 8428 >>>> >>>> URL: http://svn.gna.org/viewcvs/relax?rev=8428&view=rev >>>> Log: >>>> Converted the function linear_constraints() for relaxation dispersion >>>> needs. >>>> >>>> >>>> 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=8428&r1=8427&r2=8428&view=diff >>>> ============================================================================== >>>> --- branches/relax_disp/specific_fns/relax_disp.py (original) >>>> +++ branches/relax_disp/specific_fns/relax_disp.py Tue Jan 13 04:13:54 2009 >>>> @@ -725,27 +725,34 @@ >>>> Standard notation >>>> ================= >>>> >>>> - The relaxation rate constraints are:: >>>> - >>>> - Rx >= 0 >>>> - >>>> - The intensity constraints are:: >>>> - >>>> - I0 >= 0 >>>> - Iinf >= 0 >>>> + The different constraints are:: >>>> + >>>> + R2 >= 0 >>>> + Rex >= 0 >>>> + kex >= 0 >>>> + >>>> + R2A >= 0 >>>> + kA >= 0 >>>> + dw >= 0 >>>> >>>> >>>> Matrix notation >>>> =============== >>>> >>>> - In the notation A.x >= b, where A is an matrix of coefficients, x >>>> is an array of parameter >>>> + In the notation A.x >= b, where A is a matrix of coefficients, x >>>> is an array of parameter >>>> values, and b is a vector of scalars, these inequality constraints >>>> are:: >>>> >>>> - | 1 0 0 | | Rx | | 0 | >>>> + | 1 0 0 | | R2 | | 0 | >>>> | | | | | | >>>> - | 1 0 0 | . | I0 | >= | 0 | >>>> + | 1 0 0 | . | Rex | | 0 | >>>> | | | | | | >>>> - | 1 0 0 | | Iinf | | 0 | >>>> + | 1 0 0 | | kex | | 0 | >>>> + | | | | >= | | >>>> + | 1 0 0 | | R2A | | 0 | >>>> + | | | | | | >>>> + | 1 0 0 | | kA | | 0 | >>>> + | | | | | | >>>> + | 1 0 0 | | dw | | 0 | >>>> >>>> >>>> @keyword spin: The spin data container. >>>> @@ -764,17 +771,25 @@ >>>> >>>> # Loop over the parameters. >>>> for k in xrange(len(spin.params)): >>>> - # Relaxation rate. >>>> - if spin.params[k] == 'Rx': >>>> - # Rx >= 0. >>>> + # Relaxation rates and Rex. >>>> + if search('^R', spin.params[k]): >>>> + # R2, Rex, R2A >= 0. >>>> A.append(zero_array * 0.0) >>>> A[j][i] = 1.0 >>>> b.append(0.0) >>>> j = j + 1 >>>> >>>> - # Intensity parameter. >>>> - elif search('^I', spin.params[k]): >>>> - # I0, Iinf >= 0. >>>> + # Exchange rates. >>>> + elif search('^k', spin.params[k]): >>>> + # kex, kA >= 0. >>>> + A.append(zero_array * 0.0) >>>> + A[j][i] = 1.0 >>>> + b.append(0.0) >>>> + j = j + 1 >>>> + >>>> + # Chemical exchange difference. >>>> + elif spin.params[k] == 'dw': >>>> + # dw >= 0. >>>> A.append(zero_array * 0.0) >>>> A[j][i] = 1.0 >>>> b.append(0.0) >>>> >>>> >>>> _______________________________________________ >>>> 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 >> >> > > _______________________________________________ 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

